본문 바로가기
모두의 아두이노 환경 센서/2장 미세먼지 측정 센서

PPD42NS 미세먼지 아두이노 센서 - LCD16X2 동작 확인

by 로니킴 2021. 3. 22.


본 절은 LCD16X2 아두이노 실드를 이용해 실시간으로 PPD42NS 미세먼지 센서의 측정값을 화면에 표시할 수 있다.  [모두의 아두이노 환경 센서] 책에서 설명하지 않았지만   LCD16X2 키패드 실드를 이용해 실시간으로 측정이 가능하고 센서 응용 동작을 구성할 수 있다. 

 

 

목차

     

     


    PPD42NS 아두이노 센서와 LCD16X2 실드 활용

    PPD42NS-아두이노-센서-LCD키패드
    PPD42NS-아두이노-센서-LCD키패드

     

     


     

     

     

    LCD16X2 아두이노 키패드실드

    Arduino 호환 보드 용 LCD 키패드 실드이다. 아두이노 호환 보드 용 LCD 키패드 실드이다. 
    HD44780 병렬 인터페이스 칩셋과 4 비트 Arduino LCD 라이브러리를 사용한 16 행 2 열의 흰색 문자와 파란색 백라이트의 LCD 디스플레이이다. 키패드 구성은 select, up, right, down, left로 되어 있다.

     

    LCD16X2-아두이노-키패드실드-화면
    LCD16X2-아두이노-키패드실드-화면

     

     


     

    LCD 1602 Keypad shield 

    LCD1602 keypad sheild 는 알리익스프레스, 네이버 쇼핑몰, 아마존 등에서 센서를 구입할 수 있다

     

    LCD-1602-Keypad-shield 
    LCD-1602-Keypad-shield 

    특성 
    운영 전압: 4.5-5.5V 
    작동 현재: 2.0mA (5.0V) 
    모듈 최고의 작동 전압: 5.0V

     

     

     

     

    PPD42NS LCD16X2 하드웨어 구성

    다음과 같이 연결 한다. 

     

     

    PPD42NS-미세먼지-아두이노-센서-LCD키패드-연결화면
    PPD42NS-미세먼지-아두이노-센서-LCD키패드-연결화면

     

     

     

    PPD42NS LCD16X2 소프트웨어 코딩

    다음과 같이 코딩한다.  

    /*
      PPD42NS Sensor
    
       @ 2018.07.10
       @ author STEAMEDU123 <steamedu123@gmail.com>
    */
      
    #include <LiquidCrystal.h>
    
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    
    unsigned long duration;
    unsigned long starttime;
    unsigned long sampletime_ms = 5000;
    unsigned long lowpulseoccupancy = 0;
    float ratio = 0;
    float concentration = 0;
    float pcsPerCF = 0;
    float ugm3 = 0;
    
    int redPin = A1;
    int greenPin = A2;
    int bluePin = A3;
    
    int ppdPin = 3;
    
    void setup() {
      lcd.begin(16, 2);
      initSensor();
    }
    
    void loop() {
      ppd42ns_read();
    }
    
    void initSensor() {
    
      pinMode(ppdPin, INPUT);
      starttime = millis();
    
      lcd.clear();
      lcd.print("PPD42NS Sensor");
      delay(5000);
    
      if ( ugm3 == 0) {
        lcd.clear();
        lcd.print("Analysing Sensor");
        lcd.setCursor(0, 1);
        lcd.print("................");
        lowpulseoccupancy = 0;
        starttime = millis();
      }
    }
    
    void ppd42ns_read() {
      duration = pulseIn(ppdPin, LOW);
      lowpulseoccupancy = lowpulseoccupancy + duration;
    
      if ((millis() - starttime) >= sampletime_ms)  {
        ratio = lowpulseoccupancy / (sampletime_ms * 10.0);
        concentration = 1.1 * pow(ratio, 3) - 3.8 * pow(ratio, 2) + 520 * ratio + 0.62;
        pcsPerCF = concentration * 100;
        ugm3 = pcsPerCF / 13000;
    
        displayPPD_LCD(ugm3);
      }
    }
     
    void displayPPD_LCD(float pm25) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Dust:");
    
      if (pm25 <= 15) {
        lcd.print("Good! ^v^");
      }  else if (pm25 <= 35) {
        lcd.print("Normal! ^ ^;");
      }  else if (pm25 <= 75) {
        lcd.print("Bad! T.T");
      }  else {
        lcd.print("Very Bad! @.@");
      }
    
      lcd.setCursor(0, 1);
      lcd.print("PM2.5:");
      if (pm25 > 0.01 ) {
        if (pm25 < 10) lcd.print("00");
        else if (pm25 < 100) lcd.print("0");
    
        lcd.print(pm25, 0);
      } else {
        lcd.print("000");
      }
      lcd.print(" ug/m3");
      lowpulseoccupancy = 0;
      starttime = millis();
    }

     

     

     

     

    PPD42NS 아두이노 센서 동작 확인

    [모두의 아두이노 환경 센서] 책에서 설명하지 않았지만, LCD16X2 아두이노 쉴드를 이용해 실시간으로 Shinyei PPD42NS 미세먼지 센서의 측정값을 화면에 표시할 수 있다. 

     

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 라이브러리 복사 
     libraries\Steamedu123_Sensor-master 폴더는 아래 폴더에 복사 

     * 아두이노 설치후 자동으로 생기는 폴더 
     C:\Users\s\Documents\Arduino\libraries 

    02 *.ino 파일 실행 
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 



    03 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.

    PPD42NS-아두이노-센서-컴파일화면
    PPD42NS-아두이노-센서-컴파일화면

     

    04 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 


    05 동작 확인

    다음과 같이 동작을 확인할 수 있다.

    PPD42NS-미세먼지-아두이노-센서-LCD키패드-연결
    PPD42NS-미세먼지-아두이노-센서-LCD키패드-연결

     

     

     

    PPD42NS-미세먼지-아두이노-센서-LCD키패드-동작화면

     

     

     


    + 이 글도 읽어보세요. 

     

     

     

     


     

    모두의 아두이노 환경 센서 책

    [모두의 아두이노 환경 센서] 책은 예스24, 인터넷 교보문고, 알라딘, 영풍문고, 반디 앤 루니스 등에서 구입할 수 있다. 이 책에서는 PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 미세먼지 센서, DHT22 온습도 센서, MH-Z19B 이산화탄소 센서, ZE08-CH2O 포름알데히드 센서, CCS811 총휘발성유기화합물 TVOC, GDK101 방사선(감마선) 센서, MQ-131 오존(O3) 센서, MQ-7 일산화탄소, MICS-4514 이산화질소 센서, MICS-6814 암모니아 센서, DGS-SO2 아황산가스(SO2) 센서, BME280 기압 센서, GUVA-S12SD 자외선(UV) 센서, MD0550 기류 센서, QS-FS01 풍속 센서(Wind speed) 를 사용한다.  

     

     

    모두의 아두이노 환경 센서

    아두이노와 센서로 내 건강을 지킬 수 있다!다양한 환경 센서를 실생활 프로젝트에 응용해보자!시중에 판매되고 있는 간이측정기도 센서로 값을 측정합니다. 똑같은 센서를 아두이노에 연결하

    book.naver.com

     



    댓글