오늘은 미세먼지 측정 키트에 대해서 알아보는
마지막 시간입니다!
미세먼지 측정 키트에 대한 강의는 1편과 2편이 있으며
아직 보지 않으셨을 경우 아래 링크를 통해 먼저 읽어주시기 바랍니다.
▼ ▼ ▼
[미세먼지 측정 키트 1편]
https://intopionshop.tistory.com/513?category=1021753
아두이노 매뉴얼 [미세먼지 측정 키트] - 1
안녕하세요! 오늘은 미세먼지 센서 키트에 대해서 알아보도록 하겠습니다. 미세먼지 센서 모듈을 이용해 미세먼지 값을 측정하는 키트입니다. 구성품은 아래 사진들을 참고해주시기 바랍니다.
intopionshop.tistory.com
[미세먼지 측정 키트 2편]
https://intopionshop.tistory.com/514
Chapter 5. LED + LCD 완성
Chapter 4, 5 에서 확인한 LED 와 LCD 를
미세먼지에 추가해 보겠습니다.
선이 너무 많다고 어려워하지 마세요.
아래 표를 보고 참고하여 차근차근 연결해주세요!
RGB LED 모듈 | 아두이노 우노 |
- | GND |
R | D11 |
G | D10 |
B | D9 |
LCD 모듈 | 아두이노 우노 |
- | GND |
+ | 5V |
SDA | A4 |
SCL | A5 |
미세먼지 측정 모듈 | 아두이노 우노 |
1번 핀 | GND |
3번 핀 | 5V |
4번 핀 | D8 |
완성 소스 코드
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();}}
위 소스를 업로드 해주시면
아래의 영상처럼 ! !
미세먼지 센서는 30초 주기로 샘플링이 이루어지기 때문에
영상은 4배속~ 입니다.
의도적으로 먼지를 발생 시키기 위해 휴지를 넣었어요.
여기까지 '미세먼지 측정 키트' 였습니다!
추가적으로 블루투스 모듈이 있으면
앱 인벤터를 이용해 어플을 만들어
핸드폰으로 미세먼지 값을 체크할 수 있습니다.
이렇게 측정값에 따라서 캐릭터도 바꿀 수 있습니다!
전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.
▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net
'인투피온 강좌 > 아두이노 팁(Tip)' 카테고리의 다른 글
크롬, 웨일, 윈도우 기본 테마 바꾸기 (2) | 2022.09.16 |
---|---|
아두이노 매뉴얼 [미세먼지 측정 키트] - 2 (0) | 2022.08.19 |
아두이노 매뉴얼 [미세먼지 측정 키트] - 1 (0) | 2022.08.18 |
아두이노 매뉴얼 [화분 물공급 키트] - 3 (0) | 2022.08.03 |
아두이노 매뉴얼 [화분 물공급 키트] - 2 (0) | 2022.08.01 |