미세먼지 센서(GP2Y1010AU0F)
저항과 커패시터를 구성해서 사용해야 합니다.
먼지 농도 측정 시 충분한 시간을 두어야 정상적으로 작동합니다.
사양
- 작동전압 : 5V ~ 7V
- 작동전류 : 최대 20mA
- 작동온도 : -10 ~ 65 [섭씨]
- 측정범위 : 0 ~ 500 [ug/m3]
예제 사용 하드웨어
- 아두이노 보드
- 3색 신호등 LED 모듈
- 커패시터 220uF
- 저항 150옴
연결
신호등 LED | 아두이노 우노 | 콘덴서 | 저항 | 미세먼지 |
R | D5 | |||
Y | D6 | |||
G | D7 | |||
D2 | 3 | |||
A0 | 5 | |||
5V | 연결 | 6 | ||
GND | GND | - | 2,4 | |
+ | 연결 | 1 |
예제 코드
미세먼지 센서 값에 따라 RGB LED 색이 바뀌는 코드입니다.
int dust_sensor = A0; // 미세먼지 핀 번호
int rgb_red = 5; // rgb 핀 빨간색 핀
int rgb_yellow = 6; // rgb핀 노란색 핀
int rgb_green = 7; // rgb핀 녹색 핀
float dust_value = 0; // 센서에서 입력 받은 미세먼지 값
float dustDensityug = 0; // ug/m^3 값을 계산
int sensor_led = 2; // 미세먼지 센서 안에 있는 적외선 led 핀 번호
int sampling = 280; // 적외선 led를 키고, 센서 값을 읽어 들여 미세먼지를 측정하는 샘플링 시간
int waiting = 40;
float stop_time = 9680; // 센서를 구동하지 않는 시간
void setup() {
Serial.begin(9600);
pinMode(sensor_led, OUTPUT);
pinMode(4, OUTPUT);
pinMode(rgb_red, OUTPUT);
pinMode(rgb_yellow, OUTPUT);
pinMode(rgb_green, OUTPUT);
}
void loop() {
digitalWrite(sensor_led, LOW);
delayMicroseconds(sampling);
dust_value = analogRead(dust_sensor);
delayMicroseconds(waiting);
digitalWrite(sensor_led, HIGH);
delayMicroseconds(stop_time);
dustDensityug = (0.17 * (dust_value * (5.0 / 1024)) - 0.1) * 1000;
Serial.print("Dust Density [ug/m3]: ");
Serial.print(dustDensityug);
if (dustDensityug <= 30.0) {
digitalWrite(rgb_red, LOW);
digitalWrite(rgb_yellow, LOW);
digitalWrite(rgb_green, HIGH);
Serial.print(" ");
Serial.println("green");
} else if (30.0 < dustDensityug && dustDensityug <= 80.0) {
digitalWrite(rgb_red, LOW);
digitalWrite(rgb_yellow, HIGH);
digitalWrite(rgb_green, LOW);
Serial.print(" ");
Serial.println("yellow");
} else if (80.0 < dustDensityug && dustDensityug <= 150.0) {
digitalWrite(rgb_red, HIGH);
digitalWrite(rgb_yellow, LOW);
digitalWrite(rgb_green, LOW);
Serial.print(" ");
Serial.println("red");
} else {
digitalWrite(rgb_red, HIGH);
digitalWrite(rgb_yellow, HIGH);
digitalWrite(rgb_green, HIGH);
Serial.print(" ");
Serial.println("all");
}
delay(2000);
}
실행결과
추가 예정