Arduino :: Lecture & TIPs

[미세먼지 측정기] IoT 공기질 측정기 만들기 (2)

IoT 장치용 부품 및 센서 선택하기.

앞서 미세먼지란 무엇인지, 미세먼지가 사람에 미치는 영향과 측정 단위는 무엇인지에 대해 알아보았습니다.

[미세먼지 측정기] IoT 공기질 측정기 만들기 (1)

1 급 발암물질을 포함하고 있는 미세먼지를 줄여나가기 위한 획기적인 정책들을 시행하면서 전국이 미세먼지와 전쟁중이라고 해도 과언이 아닙니다. 미세먼지는 입자의 크기에 따라 지름이 10 ㎛ 이하 (PM 10.0) 인 미세먼지와, 2.5 ㎛ 이하 (PM 2.5) 인 초미세먼지로 구분할 수 있습니다. 사람의 머리카락 굵기가 50~70 ㎛ 인 점을 고려하면 그 입자의 크기를 가늠할 수 있을 것으로 보이는데요. […]

이제 미세먼지 측정기를 제작하기 위해서 여러가지 모델 중 부품과 센서를 선택해서 주문해야 할텐데요. 대표적으로 알려진 몇 가지 센서들을 알아보고 어떤 것을 선택할지를 놓고 고민해보았습니다. 기왕 제작해보는만큼 실생활에서도 유용하게 사용할 수 있도록, 또 기록이나 측정하면서 재미를 느낄 수 있도록 기능적인 다른 요소들 보다 정확도나 신뢰성 확보를 목적으로 부품들을 선택해보려합니다.

미세먼지 측정 모듈

Nova SDS011PM2008PMS7003
PM 1.0XOX
PM 2.5OOO
PM 4.0XXX
PM 10.0OOO
자가 청소OOX
정격 전류4.7 ~ 5.3V DC4.5 ~ 5.5V DC4.5 ~ 5.5V DC
전력 소비70 mA ~ 80 mA (작동 중),
< 4mA (절전 모드)
<1 00 mA (작동 중),
0.02 mA (절전 모드)
< 100 mA (작동 중),
< 0.2mA (절전 모드)
제품 크기71.0 × 70.0 × 23.0 mm48.0 x 37.0 x 12.0 mm48.0 × 37.0 × 12.0 mm
권장 수명1 년4 년1 년
가격36,300 원25,000 원22,200 원

미세먼지 센서를 주문하기 전 가장 많이 사용하면서도, 신뢰도에 대한 정보가 많은 세 가지 모델을 선별한 후 해외나 국내 인터넷 커뮤니티에서 후기를 살펴보았습니다. Nova SDS011 센서의 경우, 정확도가 다른 제품에 비해 월등히 높았고, 실내에서 사용하기에 좋다는 후기글이 자자했습니다. 한 가지 단점이 존재한다면, 권장 수명이 1 년으로 타사의 모델에 비해 짧은 수명을 보장하고 있다는 점과 가격대가 조금 높게 형성되어 있었다는 점입니다. 수명이나 측정 환경 등을 고려하면 당연히 실내에서 사용하는 것이 보다 적합하겠지만, 테스트 해 본 결과 실외 장소에 놓고 사용하더라도 AirMapKorea 에서 제공하는 대기 중 미세먼지 측정 결과 값과 유사함을 확인할 수 있었습니다. (물론 바람의 세기가 세거나, 비 혹은 눈이 내리는 날에는 방수가 되지 않으므로 집 안에 들여놓는 것이 좋습니다.)

Nova PM Sensor SDS011 모델은 국내 쇼핑몰 기준, 36,000 원 ~ 60,000 원 선에서 판매되고 있습니다. SDS011 센서는 내부의 송풍기 (팬) 를 통해 공기를 흡입하고, 빨아들인 공기의 흐름에 레이저를 이용해 반사 면적을 인식하여 미세먼지를 측정합니다. 측정 결과는 PM 2.5 (초미세먼지) 와 PM 10.0 (미세먼지) 이렇게 두 가지 종류의 입자 크기 별로 측정이 가능합니다. 제조사에 따르면 레이저를 이용한 빛 산란 측정 방식으로 정확하고 신뢰성 있는 결과를 제공하며, 공기 변화에 빠른 응답이 가능하다고 하는데요, 변화 인지에는 약 10 초 이내의 응답 시간이 필요하다고 하는데요. 송풍기 (팬) 이 구동되면 공기 흡입 구멍을 통해 공기가 유입되기 시작합니다.

센서 수명은 지속적으로, 풀 타임 가동 시 약 8,000 시간 (약 333 일) 을 사용할 수 있습니다. 최대 절전 모드를 제공하고 있기에, 제조사에서는 센서 수명을 연장하는 방법으로 절전 모드를 적절히 활용하라고 권고하고 있습니다. 실시간 측정이 필요한 경우가 아니면, 측정 후 주기적으로 절전 모드를 설정할 수 있으며, 이는 30초 측정하고 5분 슬립 모드를 설정하고 다시 30초 측정을 진행하는 식입니다. 1 분 측정하고 5 분 슬립 모드를 설정하고 다시 1 분 측정을 진행하는 식입니다. 특정시에 1회성으로 동작시키지 않고 30초 가량을 하는 이유는 수치가 안정화 되기 까지 시간이 필요하기 때문인데요. SDS011 센서를 슬립모드에서 깨워서 구동하면 팬이 돌면서 공기를 유입하고 레이저로 미세먼지를 측정하게 되는데, 초반에는 공기 유입이 안정화되지 않아서 수치가 어느 정도 낮게 나오며, 10 초 정도 경과한 이후 측정 값이 보다 정확해집니다.

OLED / LCD 디스플레이

화면이 넓으면 배터리소모도 커집니다. 처음에는 많은 정보를 제공하는 것이 좋지 않을까 해서 2.4 인치 정도의 넓은 LCD 화면을 사용해볼까 고민했으나, 실외에서도 비치해두고 사용할 수도 있도록 구현하려니 배터리 수명이 단축될 것으로 예상되었기에, 결국 0.96 인치 I2C 방식의 저전력 OLED 디스플레이 (128 px × 96 px) 를 선택하게 되었습니다.

GPS 위치 센서

미세먼지 농도를 측정한 위치를 실시간으로 기록하기 위해 추가했습니다. 실외 및 휴대용으로 사용할 경우 측정 장소를 수기로 기록하거나 직접 기록하지 않더라도 추후 측정 기록을 확인하거나 분석할 때 자동적으로 기록되게 하도록 하기 위함입니다. 모듈과 송신용 안테나를 연결하여 사용하며, 인공위성 신호를 직접 받아 처리하는 GPS 모듈로 야외에서는 오차 범위가 상당히 적은 편입니다. 단, 건물 안 실내나 지하에 한해 신호 수신이 되지 않거나 신호가 약한 관계로 오차가 커지거나 센서가 동작하지 않을 수 있습니다.

온습도 센서

DHT22 센서와 DS18B20 센서의 측정 결과 그래프. 육안으로 보더라도 변경폭과 범위가 큰 DHT22 센서에 비해 DS18B20 센서가 정확한 것을 파악할 수 있다. 그래프 제공 : Compare Digital Temperature Sensor DHT11 & DS18B20 | Sun Chunyang’s Blog (wordpress.com)

미세먼지 농도 측정 시 실외 온도도 측정할 수 있도록 온도 센서를 추가하였습니다. 온도와 더불어 습도까지 측정 가능한 센서들도 시중에 판매되고 있습니다만, 역시나 온도 측정 결과값에 대한 신뢰성 확보를 위해, 습도 측정이 불가능하다는 단점에도 불구하고 보다 정확한 온도 측정 값을 제공하는 DS18B20 센서를 선택하게 되었습니다.

DS18B20 온도 센서의 경우 두 가지 종류가 있으며, 방수 기능이 있는 모델과 없는 모델로 구분됩니다. 실내가 아닌 실외의 공기질을 측정하는 경우, 방수되는 모델과 함께 터미널 모듈을 사용하여 연결하면 외부 환경적 요인들로부터 약간의 보호성을 확보할 수 있을 것으로 예상됩니다. 물론, 습도까지 측정 가능한 DHT22 온습도 센서를 사용하면 미세먼지 센서의 습도량에 따른 오차율 측정이 가능합니다. SDS011 센서의 정확도가 타사 센서 모델들에 비해 높은 측면이 있습니다만, 레이저를 이용해 반사 면적을 인식하여 미세먼지를 측정하는 빛 산란 방식의 미세먼지 센서 특성상 대기 중의 습도가 높은 상태 (70% 이상) 인 경우에 한해 공기중의 수분을 미세먼지로 오측정하여 정확도에 영향을 미치는 현상이 발생하는 경우가 종종 있습니다. 이러한 경우를 파악할 수 있다는 장점이 있지만, 온도 측정 신뢰도가 부정확하다는 단점에 대해서는 어느 정도 감안하셔야 합니다.

NodeMCU ESP8266 v2.

NodeMCU 는 ESP8266 칩셋 기반의 저렴한 SoC 를 중심으로 구축된 오픈소스 하드웨어 및 소프트웨어 개발 플랫폼입니다. Espressif Systems 사 (社) 에서 설계하고 제조한 ESP8266에는 CPU, RAM, 네트워킹 (Wifi), 최신 운영 체제 및 SDK 등 최신 컴퓨터의 모든 중요한 요소가 포함되어 있습니다. 독립적인 칩 자체에서 제공하는 Wifi 기능으로, Arduino 에서 Wifi 기능을 이용하려면 별도의 모듈을 추가적으로 연결해주어야 하는데, 이러한 작업이 필요치 않아 부피도 줄일 수 있고 설계도 보다 간단하게 진행할 수 있어 훨씬 효율적입니다.

정리하면, IoT 환경을 위해서는 Wifi 통신기능이 필수인데 기존의 Arduino 에 별도의 Wifi 장치를 부착하는 것보다 NodeMCU 하나를 사용하는 것이 다음과 같은 장점이 존재합니다.

  • Arduino + Wifi 통신장치 보다 NodeMCU 한 개를 사용하는 것이 가격도 저렴하고 부피도 적다.
  • 하나의 모듈안에서 Wifi 를 기본 지원하므로 사용하기 간편하다.  
  • NodeMCU 에 내장된 프로세서 (80MHz 대) 가 Arduino (16MHz 대) 와 비교해 속도가 훨씬 빠르다 (성능적인 측면에서 우월하다).

NodeMCU 플랫폼을 이용하였을 때의 단점들은 다음과 같습니다.

  • 입출력 핀 수가 Arduino 와 비교해 적다. 아날로그 입력핀은 1 개 밖에 없으며 디지털 입출력핀은 5~8개 밖에 사용할 수 없어 센서 등 여러 장치를 연결할 수 없다.(Arduino Nano 의 경우 아날로그 6 개, 디지털 14 개)
  • Wifi 가 구동될 때 전력소비가 상대적으로 크므로, 배터리 환경에서 오래 가동시킬 수 없다. (절전 Sleep 모드를 사용하면 어느 정도 선에서 타협이 가능하다.)

휴대용 배터리 / 전원

앞에서 언급해드렸던 ESP8266 MCU 칩셋에 Micro-USB 단자가 탑재되어 있는 만큼, USB to Micro-USB 케이블을 이용하면 별다른 전원과 충전 모듈을 설계하실 필요 없이, 시중에 판매 중인 외장 배터리 연결만으로도 구동이 가능합니다. 앞서, 배터리 수명을 최대한 연장하기 위해 0.96 인치의 작은 화면의 부품을 선택한 바 있는데요. 이를 통해 시중에 판매되는 10000mAH 배터리와 연결하여 사용할 경우 연속 구동 시간 최대 약 35 시간을 보장합니다. 물론, 휴대용으로 사용하실 때에는 부피가 크므로 배터리 용량은 작지만 5000mAH 배터리를 연결하시면 휴대하기도 용이하고, 연속 구동 15 시간 정도를 이동하며 측정하실 수 있으니 이 점 또한 전원용 배터리 구입에 참고하시면 좋겠습니다.

이렇게 부품과 재료 선택을 마무리하셨다면! 납땜 작업과 점퍼케이블을 이용해 연결하는 작업, 그리고 측정기가 작동 할 수 있도록 Arduino IDE 를 활용한 코딩이 필요합니다. 다음 게시물에서는 이번 포스팅에서 다루어보지 못한 점퍼케이블을 이용해 연결하는 부분과 코딩에 대한 내용에 대해 다루어보도록 하겠습니다.

고맙습니다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: