Подключение датчика влажности DHT11
"Играясь" с температурным датчиком DS18B20, попутно я обнаружил в интернет-магазинах не слишком дорогой приборчик для измерения температуры и влажности DHT11. Не слишком "крутой" по параметрам, но довольно интересный в плане использования в домашних самоделках. Простой интерфейс и алгоритм работы. Датчик хорошо "прописан" в интернете.
В работе я использовал хорошие статьи "безымянного автора" и ... еще одного "анонима". Надо сказать что целью было не столько подключить датчик, сколько продолжить работу с ЖКИ из электросчетчика в плане упрощения программирования. В качестве базы для работы я использовал Arduino UNO и ЖКИ с контроллером на HT-1621B.
В работе я использовал хорошие статьи "безымянного автора" и ... еще одного "анонима". Надо сказать что целью было не столько подключить датчик, сколько продолжить работу с ЖКИ из электросчетчика в плане упрощения программирования. В качестве базы для работы я использовал Arduino UNO и ЖКИ с контроллером на HT-1621B.
Первым делом, мне захотелось упростить процедуру вывода информации на экран ЖКИ. Хотелось создать процедуру типа print() - чтоб строку вывел и она "засветилась". В примере обратите внимание на процедуры writeString(char Str[25]) и writeSymbol(byte pos, byte val, byte und, byte pnt). Первая выводит на индикатор восемь символов из строки Str. Вторая выводит символ val в заданную позицию pos. Если pnt = 1, то в разряде "включается" точка; если und = 1, то в данном разряде "включается" нижний элемент - подчеркивание/указатель (этот сегмент - особенность имевшегося у меня ЖКИ).
В строке, выводимой на индикатор процедурой writeString() можно управлять "этим подчеркиванием" - для его включения перед выводимым символом надо поставить восклицательный знак! Процедура рассчитана на вывод символов из первой части таблицы ASCII с кодами от 0х20 до 0х5F, конечно "в меру возможностей семисегментного индикатора" (это можно посмотреть в массиве byte arrASCII[48][3]). Пример выводит на индикатор мигающую надпись "HELLO I " и ничего не значащие цифры...
В строке, выводимой на индикатор процедурой writeString() можно управлять "этим подчеркиванием" - для его включения перед выводимым символом надо поставить восклицательный знак! Процедура рассчитана на вывод символов из первой части таблицы ASCII с кодами от 0х20 до 0х5F, конечно "в меру возможностей семисегментного индикатора" (это можно посмотреть в массиве byte arrASCII[48][3]). Пример выводит на индикатор мигающую надпись "HELLO I " и ничего не значащие цифры...
Теперь, собственно, о DHT11...
Схема подключения датчика DHT11 показана слева. Так как шина данных напоминает 1-Wire, то требуется подтягивающий резистор около 5КОм. Пять вольт - вполне комфортное для датчика напряжение питания.
Библиотеку для работы с DHT11 я брал тут. Впервые (!) библиотека заработала сразу - никакой доработки или исправлений не потребовалось... Пример скетча я взял готовый с упомянутого выше сайта...
Подключил, залил, включил монитор СОМ порта и... узнал какая в комнате температура и влажность! (Оказалось слишком сухо для комфортного обитания...)
Схема подключения датчика DHT11 показана слева. Так как шина данных напоминает 1-Wire, то требуется подтягивающий резистор около 5КОм. Пять вольт - вполне комфортное для датчика напряжение питания.
Библиотеку для работы с DHT11 я брал тут. Впервые (!) библиотека заработала сразу - никакой доработки или исправлений не потребовалось... Пример скетча я взял готовый с упомянутого выше сайта...
Подключил, залил, включил монитор СОМ порта и... узнал какая в комнате температура и влажность! (Оказалось слишком сухо для комфортного обитания...)
Дальше я подключил к Arduino UNO жидкокристаллический индикатор с контроллером HOLTEK HT-1621B как описано в предыдущей статье. Добавил в скетч библиотеку для HT-1621, вышеописанные процедуры вывода данных и получился такой примерчик. Результат работы программы показан на фото справа. На соседней картинке видны провода схемы подключения. ... получился готовый прибор для измерения температуры и влажности... |
На достигнутом останавливаться не стал. Вспомнил, что есть еще Bluetooth модуль HC-06, описанный ранее...
Подключаем модуль к последовательному интерфейсу Arduino UNO: Pin 0(Rx) и Pin 1(Tx). Скетч даже переписывать не нужно (хотя "служебный мусор" не мешало бы убрать). Теперь наша "метеостанция" не только "измеряет и показывает", но и по Bluetooth передает данные любому желающему при наличии у него "блютусовского терминала". На фото показан Android телефончик с открытой терминальной программой и результатами замера температуры и влажности... |
опубликовано 28.02.2014