IoT 온습도 기록기

개요

  • 기간: 2015
  • 기술: Arduino, ESP8266, C, 소형 패키징, 저전력 설계, Python, MQTT, jQuery-Mobile, Google Chart API

01레고 피규어만큼 작다!

특징

  • 초저전력 구현으로 AA 3개 배터리로 3개월~6개월 동작. 딥슬립시 약 20uA 소모.
  • 10~20분간격 온도, 습도, 전압, Wifi 신호세기를 기록
  • 1시간마다 서버로 누적된 데이터를 업로드
  • 서버에는 모바일 페이지로 최근 1일, 3일간의 측정 기록을 그래프로 조회 가능

02주요 부품은 고장시 교체 가능하도록 모듈화

재료

  • ESP-12
  • ESP-12 아답터보드
  • DHT-22 온습도 센서
  • 스위치, 소켓, PCB보드등
  • Mosquitto MQTT 브로커
  • MQTT 메시지 수신 및 파일로 저장할 파이썬 코드
  • 모바일 웹페이지 및 API를 서비스할 파이썬 코드
  • JQuery mobile 웹페이지와 Ajax를 위한 자체구현 SPA Framework
  • Google Chart API

03제품 자체로 디버깅과 펌웨어 업데이트가 가능

총평

나름 오랜시간 공들여 만든 온습도 측정기. 겨울엔 집이 너무 건조하고 춥고, 여름엔 너무 습하고 더운데.. 아직 어린 자녀들이 어떤 공기 상태에서 지내는지 궁금해져서 만들게 되었다. 물론 일반 온습도계도 있으나.. 히스토리가 없고 회사에 있을땐 확인이 불가능하므로..

04최대한 깔끔하게 노력했다

건전지 3개로 한 계절을 버틸 수 있다면 나름 합리적인 유지비로 구동이 가능할듯 하다. ESP8266은 정말 대단한 대륙의 실수..ㅋㅋ 아무것도 연결하지 않고 ESP8266 만으로 딥슬립에 들어가면 정말 20uA 밖에 소모되지 않는다. 물론 그 사이에 아무런 코드 동작도 되지 않고 지정된 시간 후에 리셋되는 기능이다. 이정도면 충분하지.

원랜 일정 주기로 측정후 바로 서버로 전송하도록 만들려 했으나.. Wifi 구동시에는 전류 소모가 상당하더라. 생각보다 DHT-22도 온습도 측정에 전류 소모가 크지 않더라. 측정 시간도 1~2초. 그래서 생각해낸게, 10분마다 딥슬립에서 깨어나 온습도 측정을 하고, 내부 플래시 메모리 공간에 저장해 둔 다음, 6번 간격마다 Wifi 모듈을 올리고 서버에 접속해서 데이타를 보낸다.

서버와의 인터페이스는 REST로 할까 하다가 한창 MQTT를 관심있게 살펴보던 와중이라 MQTT로 낙점. IoT인 만큼 서버->클라이언트, 클라이언트->서버 양방향 실시간 통신이 가능한게 확장성 있을것으로 생각. 서버엔 가벼운 MQTT 서버인 Mosquitto를 설치. 이넘은 브로커 역할만 하기 때문에 역시 서버단에 파이썬으로 메시지를 수신하고 저장할 로직을 구동. DB를 쓰자니 서버 메모리가 모자라서 일단 간단히 파일로 저장.

패키징도 나름 소형화 되어있어서 각설탕 2개 크기정도. 만약 상용화 한다면 단가는 잘하면 2만원대 미만으로도 가능하지 않을까... 2만원에 6개월 배터리로 구동되는 소형 온습도 측정기. 과거 기록 조회가 스마트폰 및 웹사이트에서 되는 장점이 있는데... 이정도면 셀링 포인트도 있다고 생각된다. IoT 스마트홈 솔루션의 한 부분이 될 수 있지 않을까?

아참, 상용화가 되려면 Wifi를 설정할 수 있도록 임시 웹서버 기능을 넣어야 할듯. Wifi 설정이나 기록기가 여러대 될때의 구별은 현재 하드코딩 상태. ESP8266 칩에 AP기능이 있으니 추가비용 없이 구현은 가능할 듯.

최종 수정: 2019-1-3 04:38:32