미세먼지 센서(GP2Y1010AU0F)

아두위키 : Arduwiki

저항과 커패시터를 구성해서 사용해야 합니다.

먼지 농도 측정 시 충분한 시간을 두어야 정상적으로 작동합니다.

사양

  • 작동전압 : 5V ~ 7V
  • 작동전류 : 최대 20mA
  • 작동온도 : -10 ~ 65 [섭씨]
  • 측정범위 : 0 ~ 500 [ug/m3]

예제 사용 하드웨어

연결

신호등 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);
}

실행결과

추가 예정

구매 링크