06 Feb 2017

DHT11
    Влажность 20-80% +- 5%
    Температура 0-50 °С+- 2%
    Данные считываются в целых единицах.
DHT22
    Влажность 0-100% +- 5%
    Температура -40-125 °С +- 0.5%
    Данные считываются с точностью до десятых.

Подключение


Подключение к Raspberry Pi особой сложности не представляет: подключаем + от датчика к +5V на Raspberry Pi, "-" — к земле, и сигнал к одному из GPIO выводов.

Устанавливаем ПО

Оба датччика используют свой протокол вместо стандартизированного 1 wire, поэтому программное обеспечение для снятия показаний датчика тоже будет отличаться. Сначала установим библиотеку на С для работы с GPIO www.open.com.au/mikem/bcm2835/index.html
    wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.15.tar.gz
    tar xzf bcm2835-1.15.tar.gz
    cd bcm2835-1.15/
    ./configure
    make
    make install
Для чтения данных с датчика за основу был взят файл на С Adafruit_DHT_Driver. Без внесения некоторых изменений работать с DHT22, этот код отказывался, пришлось немного изменить.
Файл readDHT.c
Компилируем
    gcc readDHT.c -lbcm2835 -lrt -o readDHT
Пробуем считывать данные
    ./readDHT {тип датчика 11 или 22}  {номер GPIO вывода Raspberry PI}
Например DHT11 подключен к GPIO4
    root@raspberrypi /var/www/application/scripts/DHT # ./readDHT 11 4
    Using pin #4
    Data (40): 0x23 0x0 0x17 0x0 0x3a
    Temp = 23 *C, Hum = 35 %
или DHT22 подключен к GPIO17
    root@raspberrypi /var/www/application/scripts/DHT # ./readDHT 22 17
    Using pin #17
    Data (40): 0x1 0x75 0x0 0xea 0x60
    Temp = 23.4 *C, Hum = 37.3 %
linux
наверх