안녕하세요~!
저번 시간에는 미세먼지 센서 사용법에 대해 알아보았는데요.
이때는 시리얼 모니터로만 측정값 확인이 가능해서
컴퓨터가 없으면 안 됐었습니다.
그래서 오늘은 미세먼지 측정값을 보기 위해 I2C LCD 와 RGB LED를 추가해
눈으로 쉽게 볼 수 있도록 해보겠습니다.
위 움짤처럼 바로 볼 수 있게끔 말이죠
미세먼지 농도를 LCD, LED로 확인하기
회로도
위 회로를 따라 연결해 주세요.
선이 많아 보여도 막상 연결해보면 뚝딱!
아두이노 코딩하기
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 #include <LiquidCrystal_I2C.h>#include <Wire.h>#define BLUE 9 // RGB LED Module#define GREEN 10#define RED 11LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C LCD 주소값 확인int DustPin = 8; //먼지 센서unsigned long duration;unsigned long starttime;unsigned long sampletime_ms = 30000;unsigned long lowpulseoccupancy = 0;float ratio = 0;float concentration = 0;float ugm3 = 0;int redValue = 0; //RGB LEDint greenValue = 0;int blueValue = 0;void setup() {Serial.begin(9600);pinMode(DustPin ,INPUT); // 먼지센서starttime = millis();lcd.init(); // LCDlcd.backlight();lcd.setCursor(0,0); //lcd.print(" Dust Density ");pinMode(RED, OUTPUT); // RGB LEDpinMode(GREEN, OUTPUT);pinMode(BLUE, OUTPUT);digitalWrite(RED, LOW);digitalWrite(GREEN, LOW);digitalWrite(BLUE, HIGH);}void loop() {redValue = 0;greenValue = 0;blueValue = 0;duration = pulseIn(DustPin , LOW);lowpulseoccupancy = lowpulseoccupancy+duration;if ((millis()-starttime) > sampletime_ms){ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0=>100concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curveugm3= concentration * 100 /13000;Serial.print("ugm3 = " ); //미세먼지 시리얼모니터Serial.print(ugm3);Serial.println("ug/m3" );lcd.setCursor(0,1); //미세먼지 LCD 출력lcd.print(" ");lcd.print(ugm3);lcd.print(" ug/m3 ");if(ugm3<30) //각 수치에 따른 LED 색상{greenValue = 20;blueValue = 255;redValue = 0;analogWrite(GREEN, greenValue);analogWrite(BLUE, blueValue);analogWrite(RED, redValue);}else if(ugm3<80){greenValue = 255;blueValue = 20;redValue = 0;analogWrite(GREEN, greenValue);analogWrite(BLUE, blueValue);analogWrite(RED, redValue);}else if(ugm3<150){redValue = 250;greenValue = 60;blueValue = 0;analogWrite(RED, redValue);analogWrite(GREEN, greenValue);analogWrite(BLUE, blueValue);}else if(ugm3>150){redValue = 220;greenValue = 0;blueValue = 0;analogWrite(RED, redValue);analogWrite(GREEN, greenValue);analogWrite(BLUE, blueValue);}lowpulseoccupancy = 0;starttime = millis();}}
이제 이 소스를 업로드하면 결과가...!?
LED의 색상은 위의 기준을 적용했습니다
평소에는 정상적인 수치를 기록하지만 이물질이나 먼지를 넣게 되면
수치가 증가하는 것을 볼 수 있습니다.
여기까지 미세먼지 측정 센서 활용법을 알아보았고,
다음에는 블루투스를 통해 핸드폰으로 값을 받아보는 것을 차근차근 알아보겠습니다!!
전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.
▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net
'인투피온 강좌 > 아두이노 팁(Tip)' 카테고리의 다른 글
아두이노 앱인벤터 알아보기 (0) | 2021.12.10 |
---|---|
아두이노 블루투스 HC-06 (0) | 2021.12.10 |
아두이노 RGB LED 모듈 사용하기 (0) | 2021.11.26 |
아두이노 미세먼지 센서 PPD42NS (0) | 2021.11.26 |
아두이노 I2C LCD 모듈 라이브러리 코딩 (0) | 2021.11.26 |