본문 바로가기

Arduino

미세먼지 측정기 Nova PM sensor SDS011

요새 미세먼지 때문에 큰일입니다. 청소 때문에 환기를 안할수도 없고 환기를 하자니 미세먼지 때문에 걱정되고…

그래서 미세먼지 측정기를 만들어서 실내 공기 상태를 확인해 봅니다.

버튼을 누르면 5초 동안 팬이 돌아서 공기를 흡입한 다음에 측정을 합니다. 좀 더 정확한 측정을 원하시면 10초 정도로 조정해 주시면 됩니다.

제가 가지고 있는 센서중에서 제일 가격이 비싼 센서인 Nova PM sensor SDS011은 공기중에 파티클을 레이저 센서로 측정합니다. 배송비까지 하면 2만원정도 드네요. 저가의 공기청정기에는 이정급의 센서는 비싸서 안들어갈거 같네요.


사용부품:

  • Arduino Nano
  • 1602 i2c lcd
  • Nova PM sensor SDS011

주의 : SDS011의 최대 전류가 80mA이기 때문에 전원 공급을 따로 해야 합니다.

SDS011 Datasheet 다운: http://weallplay.co.kr/wp-content/uploads/2018/11/SDS011_laser_PM2.5_sensor_specification-V1.3.pdf


#include 
#include 
#include 
#include 
 
// Set the LCD address to 0x38 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x38, 16, 2);
 
SDS011 my_sds;
 
const byte ON_PIN = 8;
Button onBtn(ON_PIN);
 
float p10, p25;
int error;
 
void setup() {
  my_sds.begin(5, 4); //RX, TX
  
  onBtn.begin();
  
  lcd.begin(); 
  lcd.backlight();
  lcd.print("PM Sensor Starts");
 
}
 
void loop() {
   onBtn.read();
  if (onBtn.wasPressed()) 
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Wait 5 Seconds");
    pmRead();
    delay(1000);
  }
   delay(100);
}
 
void pmRead(){
  my_sds.wakeup();
  delay(5000);
  
  error = my_sds.read(&p25, &p10);
  if (!error) {
    printData();
  }
    
}
 
void printData(){
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("PM 2.5 : " + String(p25));
  lcd.setCursor(0,1);
  lcd.print("PM 10  : " + String(p10));
  my_sds.sleep();
}

'Arduino' 카테고리의 다른 글

VS1053 MP3 Shield  (0) 2019.01.07
아두이노 RTC 시계 PCB 제작 후기  (0) 2019.01.07
알콜센서 MQ-3 사용하기  (0) 2019.01.07
Arduino Nano 시계 PCB  (0) 2019.01.07
PC 전원 관리 장치 만들기  (0) 2018.12.26