인투피온 강좌/아두이노 팁(Tip)

아두이노 매뉴얼 [미세먼지 측정 키트] - 1

인투피온 2022. 8. 18. 09:00

(이미지 클릭시 구매할 수 있는 링크로 이동됩니다)

 

 

 

 

안녕하세요!

오늘은 미세먼지 센서 키트에 대해서 알아보도록 하겠습니다.

 

 

 

 

 

미세먼지 센서 모듈을 이용해 미세먼지 값을 측정하는 키트입니다.

구성품은 아래 사진들을 참고해주시기 바랍니다.

 

 

 

 

 

 

아두이노 우노와 케이블

브레드보드, LCD 모듈, RGB LED 모듈

점퍼케이블 10m 암수, 수수와 20cm 암수

브레드보드 (일명 빵판)

 

그리고 가장 중요한

미세먼지센서 PPD42NS 모듈이 있습니다

 

 

 

 

Chapter 1. 미세먼지 센서

 

 

 

저희가 사용할 미세먼지 센서 PPD42NS 입니다.

 

 

 

 

PPD42NS 는 미세먼지 센서 중의 하나로 PM 1.0 또는 P.M 2.5 두 가지 모드 중

하나를 선택해 사용할 수 있는 것이 특징입니다.

 

이 센서는 적외선 센서(Infrared LED)가 불빛을 비추고

Photodiode Detector 가 Focusing Lend 를 통해

미세먼지를 측정하는 데 이 때 일정 시간동안 감지를 하여 측정값을 내는 방식을 사용합니다.

 

 

 

모델명 PPD42NS
무게 약 24g

 

감지 할 수 있는 입자 크기 약 . 1㎛ (최소값)
검출 가능한 농도 범위 리터당 약 0~28,000개 (0~8,000pcs/0.01 CF=283ml)
공급 전압 DC5V +/- 10% (CN1:Pin1=GND, Pin3=+5V)
30mV 이내 리플 전압
작동 온도 0 ~ 45℃
작동 습도 95% rh 이하 (결로가 없는 경우)
전력 소비량 90mA
보관 온도 -30 ~ 60˚
안정화 시간 전원을 켠 후 1분
규격  59(W) x 45(H) x 22(D) [mm]
출력 방식 네거티브 로직, 디지털 출력
Hi : 4.0V 이상 (Rev.2) /  Lo : 0.7V 이하
(입력 임피던스로: 200kΩ) OP-Amp 출력, 풀업 저항: 10

 

 

 

 

측정 펄스는 보통 HIGH를 유지하고 있습니다. 
센서에 먼지가 지나가는 것이 감지되면 신호는 HIGH에서 LOW로 바뀌게 되고 
샘플 타임에서 LOW 동작 시간의 비(ratio)를 구해 Concentration 을 구할 수 있습니다.

그래프를 보시면 단위가 pcs/283ml=0.01cf인 것을 볼 수 있습니다. 
이 단위를 우리가 평소에 보는 단위인 ug/m3로 변환해야 되는데 
누군가가 이에 대한 공식을 구해 놓았습니다. 
저희는 편하게 Concentration * 100 / 13000을 해주면 됩니다.

concentration = 1.1*pow(ratio, 3)-3.8*pow(ratio, 2)+520*ratio+0.62
ugm3= concentration * 100 /13000

 

 

 

 

 

Chapter 2. 미세먼지 센서 동작하기

 

 

 

자 !!

그럼 이제 미세먼지 센서가 제대로 동잘할 수 있게

코딩하고 결과를 확인해 봅시다.

 

 

 

미세먼지 측정 센서 모듈 연결 회로

 

 

핀 번호 왼쪽부터 5, 4, 3, 2, 1

 

1 : COMMON(GND)

2 : OUTPUT(P2)

3 : INPUT(5VDC 90mA)

4 : OUTPUT(P1)

5 : INPUT(T1)・・・ FOR THRESHOLD FOR [P2]

 

 

 

 

 

미세먼지 측정 모듈 아두이노 우노
1번 핀 GND
3번 핀 5V
4번 핀 D8

 

 

 

1번핀은 GND, 3번핀은 5V

5번핀은 디지털 8번핀에 연결해 주세요.

 

 

 

 

미세먼지 측정 센서 모듈 소스 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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;
 
 
void setup() {
  
  Serial.begin(9600);
  pinMode(DustPin ,INPUT);      // 먼지센서
  starttime = millis();
  Serial.println(" !! START !!  " );
}
 
void loop() {
  duration = pulseIn(DustPin , LOW);
  lowpulseoccupancy = lowpulseoccupancy+duration;
 
  if ((millis()-starttime) > sampletime_ms)
  {
    ratio = lowpulseoccupancy/(sampletime_ms*10.0);  // Integer percentage 0=>100
    concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62// using spec sheet curve
    ugm3= concentration * 100 /13000;
    
    Serial.print("ugm3 = " ); //미세먼지 시리얼모니터
    Serial.print(ugm3);
    Serial.println("ug/m3" );
    lowpulseoccupancy = 0;
    starttime = millis();
  }
 
 
}
 

 

 

 

이렇게 30초마다 측정된 값을 보여줍니다

매우 양호!!

 

 

다음 시간엔 챕터 2 로 RGB LED 를 추가하는 방법에 대한

강의를 이어나가도록 하겠습니다!

 

 

감사합니다.

 

 

 

 

 

 

전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.

▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net