아두이노 + PMS5003 센서로 미세먼지 측정하기
아두이노

아두이노 + PMS5003 센서로 미세먼지 측정하기

반응형

비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준다.

 

국내에서 구입하는 것보다 알리가 좀 더 저렴한 듯싶다.

반응형
 

5409.0₩ 22% OFF|PMS5003 PMS7003 PMS7003T PMS5003ST PMS3003 PMSA003 센서 모듈 PM2.5, 공기 입자 먼지 디지털 온도

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

 

다만 로직 레벨이 3.3V이기 때문에 일반적인 아두이노에서 사용하기 어렵다. 따라서 nodemcu를 이용해 센서의 값을 읽는 것이 더 편하다. 그리고 이러한 센서는 대부분 IOT 기기 구축을 위해 많이 사용하기 때문에 WIFI가 내장된 nodemcu와 궁합이 좋다. 연결 방법은 아래 그림을 참고하자.

 

 

필자의 경우 그림의 RSV 핀이 각각 G (GND), VU (5V 출력)이므로 혹시 다른 버전의 nodemcu를 가지고 있는 경우 참고하면 된다. 코드는 다음과 같다.

 

#include <SoftwareSerial.h>

SoftwareSerial mySerial(5, 4);
unsigned char  pms[32];

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  mySerial.begin(9600);
}

void loop() {
  if(mySerial.available()>=32){

    for(int j=0; j < 32; j++){
      pms[j] = mySerial.read();
    }
    
    int PM1_0 = (pms[10] << 8) | pms[11];
    int PM2_5 = (pms[12] << 8) | pms[13];
    int PM10  = (pms[14] << 8) | pms[15];
    
    Serial.printf("PM1.0 : %d,  PM2.5 : %d,  PM10 : %d  \r\n", PM1_0, PM2_5,PM10);
  }
}

 

코드를 업로드한 뒤 시리얼 모니터를 확인해보면 정상적으로 PM1.0, PM2.5, PM10이 측정되는 것을 확인할 수 있다.

 

 

조만간 OLED 모니터를 장착하여 휴대용 미세먼지 측정기를 만들어볼 계획이다.

반응형
    # 테스트용