Все своими руками » Датчик влажности и температуры DHT 11






Датчик влажности и температуры DHT 11

Рубрика: Справочник

Цифровой датчик влажности и температуры

     Датчик DHT11 является самым дешевым цифровым датчиком, позволяющий измерять температуру и влажность окружающей среды. При цене в 50 рублей на ебей конечно от него нельзя ожидать большой точности, но для инкубатора, дома, овощехранилища, они в самый раз.

Технические характеристики:
Предел измерения температур........ 0-50°С (±2°С)
Предел измерения влажности......... 20-80% ( ±5%)
Напряжение питания...................... 3-5,5V
Энергопотребление:
Измерение..................................... 0,5-2,5мА
Передача данных........................... 0,2-1мА
Ожидание...................................... 0,1-0,15 мА

Внешний вид датчик показан на рисунке 1.
Датчик влажности и температуры DHT ,dathic

     Для связи с контроллером используется однопроводная шина с открытым коллектором, поэтому обязательна подтяжка резистором 5-10кОм к плюсу питания. Очень удобно для организации такой связи использовать два вывода микроконтроллера, например RA4 и RA5. RA4 имеет выход с открытым стоком, который вместе подтягивающим резистором, можно использовать для коммутации уровня шины данных. При этом вывод RA5 будет постоянно сконфигурирован на прием данных. Это позволяет упростить программу – отпадает необходимость в постоянном переключении вывода контроллера с выхода на вход и обратно.

Цифровой датчик влажности DHT11, diagramma-1

     На диаграмме 1 показаны стартовые условия начала работы микроконтроллера с датчиком. Точка А – Шина отпущена, т.е. на ней напряжение 5 вольт, датчик в ожидании. Точка В – контроллер хочет получить данные с датчика и прижал шину. Датчик обнаружил запрос от микроконтроллера и начал считывание данных со своих сенсоров температуры и влажности с последующей оцифровкой их величин. В это время контроллер ждет, и ждать он должен не менее 20 миллисекунд. Я купил четыре DHT 11 и не все корректно выдавали информацию при 20ms. Поэтому я советую это время увеличить до 25 ms. После истечения этого времени, контроллер отпускает шину данных, точки С — D. Датчик оповещен, что контроллер готов к приему данных и в подтверждение этого сам прижимает шину на 80 us, точки E – F. Теперь контроллер знает, что датчик на линии и скоро будет передача от датчика. По истечению 80 us датчик формирует импульс длительность тоже 80 us, спад которого является начало передачи первого бита данных. Временная диаграмма передачи бита данных показана на диаграмме 2.

Работа датчика DHT11, diagramma-2

     Не трудно заметить, что передача нуля и единицы отличается длительностью импульсов при одинаковой по времени паузе между ними. Отсюда получается, что чем больше переданных «1», тем больше время передачи информации от датчика к микроконтроллеру, т.е. время передачи данных от раза к разу не одинаково. При написании программы с применение динамической индикации это может создать определенные трудности, что наблюдается, как мерцание разрядов светодиодных индикаторов. По крайней мере мне не удалось полностью развести по времени индикацию и считывание данных с датчика. Если применить ЖК дисплей, то ни каких проблем не будет, здесь за индикацию отвечает свой контроллер.

     В некоторых источниках указано, что опрос данного датчика можно осуществлять не чаще, чем один раз в секунду. За одну секунду процессор может выполнять миллион инструкций, зачем такая пауза нужна не совсем понятно. Я проверил все четыре присланных мне датчика и все они работали вообще без какой либо паузы, т.е. времени 25 ms, что ждет контроллер (точки В и С), вполне достаточно. Но при этом начинается частая смена показаний индикатора, для восприятия показаний это плохо. Секунда, две между сменой показаний на мой взгляд самое то. За один сеанс передачи данных датчик посылает сорок бит информации. Сначала передается старший байт влажности, потом ее младший байт, затем старший байт температуры…, младший байт и последним передается контрольная сумма. Передача каждого байта начинается с его старшего бита. Младшие байты влажности и температуры у этого датчика всегда равны нулю. Т.о. величины влажности и температуры не имеют десятичных значений. Хочу предложить подпрограмму получения данных с датчика DHT11 на микроконтроллер PIC16F628A.

Программа работы с DHT11 и PIC16F628A, programe

Скачать статью и файл asm.

Просмотров:6 856
Один комментарий




Метки:

Один комментарий к “Датчик влажности и температуры DHT 11”

  • алексей
    23 августа, 2015, 17:14

    один раз в секунду, это для того что бы более точно мерять. т.к влажность зависит от температуры, эти датчики имеют встроеный датчик температуры который при частых измерениях саморазогревается и начинает врать.

Оставить комментарий