지난번 글에서는 LM35를 이용해서 간단하게 IoT 클라우드 서비스인 ThingSpeak.com 에 온도값을 올려 보았습니다. 이번에는 정밀한 측정이 가능한 DHT22(AM2302) 센서의 측정값을 ThingSpeak 에 올려보기로 합니다. DHT22 센서에 대해서는 [정밀한 온습도 센서 DHT22 (AM2302) 의 사용] 이라는 글에서 이미 다루어 본 적이 있습니다. 저가형 온습도 센서인 DHT11 의 상위 제품으로서 측정값의 범위가 넓고 오차가 적습니다. 대신 값은 좀 비싸죠. DHT11과 DHT22 의 특성은 다음과 같습니다.
DHT11
DHT22
온도 측정범위
0 ~ 50℃
-40 ~ 80℃
온도 측정오차
2℃
0.5℃
습도 측정범위
20 ~ 80%
0 ~ 100%
습도 측정오차
5%
2%
측정 간격
1초
2초
▲ DHT11 과 DHT22 (AM2302) 의 비교표
이를 이용해서 ThingSpeak.com 에 올려서 우리집의 온도와 습도의 정확한 값을 장소에 구애 없이 모니터링 해 보겠습니다.
먼저 아래의 내용을 구현 하려면 아래의 링크를 참조하여 ThingSpeak.com 에 온도와 습도를 저장할 field 2개 짜리 채널이 설정되어 있어야 하며 ESP8266 모듈에 AT Command 펌웨어가 올라가 있어야 합니다. 물론 와이파이도 필요 합니다.
USB to TTL 모듈이 있으면 첫번째 글을 참고해서 ESP8266 모듈의 펌웨어 업그레이드를 해 주시면 되고 아니라면 두번째 글을 참고, ThingSpeak 채널 설정은 4번째 글을 참고 하시면 됩니다. 쉽습니다. 물론 다 되어 있으면 아래 와이파이 설정 과정은 생략하셔도 됩니다.
ESP8266에 펌웨어 설치가 끝났으면 ESP8266을 와이파이에 연결을 해 주어야 합니다. 아래와 같이 해 주시면 됩니다.
ESP8266 와이파이 연결
아두이노와 ESP8266(ESP-01)의 연결은 위와 같이 합니다. 펌웨어 업데이트 시의 연결과 다른 점은 GPIO0 단자의 연결을 없앤 것입니다.
일단 시리얼 모니터를 열고 9600 보드레이트로 설정합니다.
1. 펌웨어 정상작동 확인
시리얼 모니터에 'AT' 를 입력합니다.
'OK' 가 나오면 펌웨어가 정상적으로 설치된 것입니다.
2. ESP8266 모드 세팅
'AT+CWMODE=1' 을 입력해서 ESP8266 을 Station (Client) 로 세팅 합니다.
3. 연결할 와이파이 찾기
'AT+CWLAP' 명령을 입력해서 연결 가능한 와이파이를 찾습니다. 자신이 연결하고자 하는 와이파이가 목록에 나오는지 확인 합니다.
4. 와이파이 연결
AT+CWJAP="연결할 와이파이 이름","패스워드" 를 입력해서 와이파이에 연결 합니다.
5. 와이파이 연결 확인
'AT+CIFSR' 명령을 이용해서 ESP8266에 할당된 IP 가 정상적으로 나오면 연결이 잘 된 것입니다.
※ 한 번 설정된 와이파이 연결 정보는 설정을 바꾸기 전 까지는 ESP8266의 전원을 끄더라도 계속 설정이 유지됩니다.
이상으로 DHT22, ESP8266 을 이용해서 센서의 값을 와이파이 연결을 통해서 IoT 클라우드 서비스인 ThingSepak 에 연동해 보았습니다.
이런 IoT 클라우드 연동은 많은 활용분야가 있을 것 같습니다. 지금까지는 온도, 습도 등을 연동해 보았지만 인체감지 센서를 사용해서 외부인 침입 모니터링, 화재 및 가스탐지 센서를 이용한 재난 모니터링도 충분히 가능 할 것 같습니다. 그것도 원격지에서 스마트폰을 이용해서 말이죠. 치매나 건망증이 심한 분들 집에 만들어서 놓아드리면 좀 더 안심이 될 것 같습니다.