아두이노 미세먼지 측정기

 

센서 저널리즘이란 센서로 저널리즘 행위를 실천한다는 의미입니다. 근래들어 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 전체 회로도

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

dust sensor

 

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

 

 

3. 스케치 업로드

 

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

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

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

 

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

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

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

 

 

4. 동작 모습

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

arduino

IMG_2985

 

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

 

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

7 thoughts on “아두이노 미세먼지 측정기

    이승준

    (2016년 3월 13일 - 2:10 오후)

    저 궁금한게 있는데 랜선은 어디에다 연결하는 건가요?

      TORTUGA

      TORTUGA

      (2016년 4월 11일 - 12:24 오전)

      이더넷 모듈에 랜선을 연결하는 포트가 있습니다.

    이승준

    (2016년 5월 26일 - 10:37 오전)

    안녕하세요 질문이 있어서 글 올립니다. 여기 보면 fritzing 프로그램으로 회로도를 제작하셨는데 구체적인 제작 방법좀 알 수 있을까요?

    이동훈

    (2016년 7월 15일 - 2:58 오후)

    안녕하세요. 이 먼지센서 동작이 어떻게 되는 것인가요? 동영상이 아니라 사진이라 모습을 알기 힘드네요. 먼지 측정 기준에 따라 oled 불빛이 들어오는건가요?

    김민지

    (2016년 9월 9일 - 6:08 오후)

    아두이노를 이용해 미세먼지 센서를 만들어 측정 값을 LED가 아닌 LCD에 출력하려면 어떤 코드를 이용해야 하나요??

    박민석

    (2016년 10월 27일 - 5:44 오후)

    안녕하세요 블로그를 보고 따라서 제작을 하게 되었는데요.. 측정기 oled 이더넷 각 부품을 예제로 실행하면 작동이 되는데, 소스코드를 받아서 한번에 실행하려하니 아무것도 반응하지 않습니다. 무엇이 문제인지 알려주실 수 있나요??

    김기석

    (2017년 7월 27일 - 4:15 오후)

    안녕하세요?
    처음으로 블로그를 따라 제작을 하고 있습니다.
    그런데 결선은 맞게 된 것 같은데
    시리얼 모니터로 확인 해 보면 미세먼지 측정이 되는 것 같은데
    OLED에는 표시가 되질 않습니다.

    그리고 OLED 예제 프로그램으로 해 보면 글씨는 나타나며
    소스코드를 컴파일 하면 다음과 같은 오류메시지가 나타납니다.

    폴더:C:\Users\KIM\Documents\Arduino\libraries\U8glib (legacy)의 라이브러리 U8glib 사용
    폴더:C:\Users\KIM\Documents\Arduino\libraries\ethercard-master (legacy)의 라이브러리 ethercard-master 사용
    exit status 1
    variable ‘bitmap_array’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’

    잘못된 라이브러리가 C:\Users\KIM\Documents\Arduino\libraries\Dust-Sensor-Example-master에서 발견: C:\Users\KIM\Documents\Arduino\libraries\Dust-Sensor-Example-master

댓글 남기기

이메일은 공개되지 않습니다.