라즈베리파이 GPIO 활용강좌 : 온습도 센서 (DHT-11)
라즈베리파이 GPIO 활용강좌 : 온습도 센서 (DHT-11)
Created Date: 2014.05.12
Modified Date: 2014.05.12
revision 1.0
센서를 테스트 하는게 가장 기초적으로 사용해 본다는(지극히 개인적인 생각이다.) 온습도 센서를 사용해보도록 하겠다. 센서는 DHT-11을 사용하였다. Digital Temparature/Huminidity Sensor 되겠다. https://www.adafruit.com의 소스를 사용하였다.
1. Hardware의 연결
DHT 시리즈(DHT11, 22, AM2302)의 Pin 배치이다.
[출처] Electrow wiki
Pin 1 : VCC
Pin 2: Data ( Pull Up 저항 사용. 5k, 4.7k, 10k 중 1개 사용 )
Pin 3: Not Connect
Pin 4: GND
다음은 DHT 시리즈(DHT11, 22, AM2302)의 연결 방법이다.
2. Software
DHT 센서의 Data Pin을 통한 Data는 I2C, SPI등의 일반적으로 라즈베리파이에서 많이 사용되는 Protocol이 아니다. “Manchester-esque”라 불리우는 Protocol을 사용하고 있어서 라이브러리가 필요하다. 1개의 Data Pin에서 온도값과 습도값을 제공하고 있다. 우리는 Adafruit의 라즈베리파이 Example을 사용하겠다.
pi@rasplay ~ $ git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
pi@rasplay ~ $ cd Adafruit-Raspberry-Pi-Python-Code
pi@rasplay ~ $ cd Adafruit_DHT_Driver
pi@rasplay ~ $ sudo ./Adafruit_DHT 11 4
마지막 명령어에서 11은 DHT-11을, 4는 라즈베리파이의 GPIO No. 를 의미한다. 각자에 맞게 수정하여 실행하면 되겠다.
pi@esrc ~/esrc/tempMailAlarm $ sudo ../Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver/Adafruit_DHT 11 25
Using pin #25
Data (40): 0x22 0x0 0x1d 0x0 0x3f
Temp = 29 *C, Hum = 34 %
응용 프로젝트로 다음을 참조하기 바란다.
- [Adafruit] DHT Humidity Sensing on Raspberry Pi with GDocs Logging
- [Rasplay Wiki] ESRC 온도 상한 알람 eMail 송신
[참고사이트]
o http://www.elecrow.com/wiki/index.php?title=DHT11
o https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview