아두이노 미세먼지 측정기

센서 저널리즘이란 센서로 저널리즘 행위를 실천한다는 의미입니다. 근래들어 IoT(사물인터넷)이 주목받으면서 활용 방법의 일환으로 해외에서 시도되고 있습니다. 하지만 아직 국내에서는 관련 사례를 찾아보기 어렵습니다. ‘아두이노 미세먼지 측정기’는 센서 저널리즘을 실험하기 위한 시도로 ‘블로터 닷넷’과 함께 기획한 프로젝트 입니다.

근래들어 황사가 잦아지고 이젠 봄 뿐 아니라 계절에 관계없이 미세먼지가 생활에 위협을 주고 있습니다. 특히 실외 뿐 아니라 실내도 미세먼지에서 자유로울 수 없기 때문에 더 문제가 되고 있습니다. ‘아두이노 미세먼지 측정기’는 일반인도 직접 미세먼지 측정기를 만들어서 집 내외의 미세먼지를 확인하고 데이터를 공유할 수 있도록 하고자 합니다. 미세먼지에 대한 경각심을 일깨우고 실생활에의 위협을 직접 확인하세요. 물론 미세먼지 농도에 따라 공기청정기 등이 자동으로 동작하는 등의 응용도 가능합니다.

1. 준비물

아래와 같은 부품들이 필요합니다. 미세먼지 센서의 경우 국내에서 구하기가 어려워 해외 주문이 필요할 수 있습니다.

  • 아두이노 나노 보드
  • OLED 디스플레이 모듈 (없어도 가능)
  • ENC28J60 이더넷 모듈
  • GP2Y1010AU0F 미세먼지 센서 + 160옴 저항 + 220uF 커패시터
  • 브레드 보드, 랜선, 점퍼선 등등

GP2Y1010AU0F 미세먼지 센서를 구입할 때 160옴 저항, 220uF 커패시터가 세트로 포함되어 있는 것을 구매하는 것이 편리합니다.

IMG_2984-765x574

2. 연결 방법

2-1 미세먼지 센서 연결

가장 먼저 미세먼지 측정기를 아두이노 나노 보드와 연결해야 합니다. 미세먼지 측정기에 6개의 핀이 노출된 커넥터가 있는데 1~3번 핀이 적외선 LED 제어를 위한 핀입니다. 4~6 핀은 실제 측정된 값을 받아오는 핀입니다.

Dust sharpsensor

미세먼지 측정기는 아래와 같이 연결하면 됩니다.

sharpExternalCircuit

실제 아두이노에는 아래와 같이 연결됩니다. 주의하실 점은 아두이노 5V 핀이 먼지센서 1번  핀에 연결되기 전에 150ohm 저항을 거쳐야 합니다. 그리고 아두이노 5V, GND에 연결된 1번과 2번 핀 사이에 커패시터를 연결해줘야 합니다. (커패시터의 극성 주의하세요 – 커패시터 흰색 띠가 GND로 연결)

미세먼지 측정기 아두이노
1 Vled –> 5V (150ohm resistor)
2 LED-GND –> GND
3 LED –> Digital pin 2
4 S-GND –> GND
5 Vo –> Analog pin 0
6 Vcc –> 5V

GP2Y1010AU0F 미세먼지 센서에 대한 상세 내용은 링크에서 확인하실 수 있습니다.

2-2 OLED 연결

OLED 모듈은 I2C 인터페이스를 지원하는 모듈을 사용했습니다. OLED 모듈의 상세 사용법은 링크를 참고하세요.

OLED –> 아두이노d
GND GND
VCC 3.3V (또는 5V)
SDA A4 (아날로그 4번핀)
SCL A5 (아날로그 5번핀)

oledboard_back 

2-3 이더넷 모듈 연결

통신을 담당하는 이더넷 모듈입니다. 랜 케이블만 있으면 동작도 안정적이고 저렴해서 좋습니다.

ENC28j60 Ethernet Interface Module1

12개 핀 중 6개의 핀을 다음과 같이 연결합니다.

이더넷 모듈     –>     아두이노          
3.3V 3.3V
GND GND
MISO D12
MOSI D11
SCK D13
CS D8

2-4 전체 회로도

이상의 모듈들을 모두 연결하면 아래와 같이 됩니다.

IMG_2984-765x574

복잡해 보이지만 모듈은 순서대로 연결하면 할만합니다~

3. 스케치 업로드

스케치를 업로드하기 전에 라이브러리 설치가 필요합니다.

이더넷 모듈을 구동하기 위해서는 EtherCard 라이브러리가 필요합니다.

OLED 디스플레이 구동을 위해 U8glib 라이브러리 설치가 필요합니다. 라이브러리는 다음 링크에서 다운로드 받으실 수 있습니다.

이상이 준비되면 소스코드를 업로드하면 됩니다. 아래에서 소스코드를 다운로드 받으세요.

https://github.com/godstale/Dust-Sensor-Example

주의!!! 위 소스코드는 블로터 서버에 데이터를 보내도록 작성되어 있습니다. 본인만의 서버 공간에 저장하고 싶다면 thingspeak 서버에 채널을 생성해서 thingspeak 서버로 HTTP request를 보내도록 수정해주면 됩니다. 소스코드에서 sendData() 함수를 수정해주면 됩니다.

4. 동작 모습

조립과 소스 업로드가 완성되어 실제 동작하는 모습입니다.

arduino

IMG_2985

비록 이 프로젝트가 미세먼지 문제를 근본적으로 해결하지는 못하지만 문제에 대한 경각심을 환기시키고 다양한 해결책을 모색하는 기초가 될 수는 있을 것입니다.

You may also like...