К предыдущему проекту контроллера гроубокса добавим датчик температуры и влажности воздуха. Статья также может быть полезна, как пример аппаратного и программного подключения датчиков DHT22, DHT11 к микроконтроллеру ESP8266.
Предыдущая статья Список статей Следующая статья
Сейчас лето. Банан вырвался на свежий воздух, растет на даче. По 2 новых листа в неделю выпускает.
Гроубокс не нужен. Все отлично и в открытом грунте растет. Думал отложить продолжение разработки контроллера до осени, но она заинтересовала Игоря из Минска. Он собрал контроллер, активно эксплуатирует и дорабатывает его. В данный момент именно он является движущей силой проекта. Планы по расширению функций контроллера у Игоря большие. Также есть желание разработать новое устройство с гораздо большими функциональными возможностями.
Пока по его просьбе я добавил в контроллер датчик температуры и влажности воздуха, а затем и управление вентиляторами по этим двум параметрам. Эта статья посвящена первой части доработки контроллера.
Датчики температуры и влажности DHT22 (AM2302) и DHT11.
Удобные, недорогие, очень распространенные датчики для измерения температуры и влажности воздуха.
Главное для пользователя:
- выполнены в одном миниатюрном корпусе;
- передают данные измерений в цифровом коде;
- подключаются к микроконтроллеру по однопроводной линии связи;
- откалиброваны при производстве;
- имеют достаточно высокие метрологические параметры.
Различие датчиков DHT22 и DHT11 заключается в том, что DHT22 имеет более высокую точность и более широкий диапазон измерений по сравнению с DHT11. Подключение датчиков к микроконтроллеру, назначение выводов, протоколы обмена совершенно одинаковы.
Оба датчика производятся компанией Aosong(Guangzhou) Electronics Co.,Ltd. Официальную техническую информацию можно посмотреть по ссылкам: DHT22 и DHT11.
Я выделю главные параметры.
Параметры | DHT22 | DHT11 | Ед. изм. |
||||
Мин. | Тип. | Макс. | Мин. | Тип. | Макс. | ||
Измерение влажности | |||||||
Диапазон | 0 | 99,9 | 20 | 90 | % | ||
Разрешающая способность | 0,1 | 1 | % | ||||
Точность (при 25 C°) | ± 2 | ± 5 | % | ||||
Повторяемость | ± 0,3 | ± 1 | % | ||||
Стабильность за длительное время | ± 0,5 | ± 0,5 | %/год | ||||
Время отклика | 5 | 6 | сек | ||||
Измерение температуры | |||||||
Диапазон | - 40 | 80 | 0 | 50 | C° | ||
Разрешающая способность | 0,1 | 1 | C° | ||||
Точность (при 25 C°) | ± 0,5 | ± 1 | ± 2 | C° | |||
Повторяемость | ± 0,2 | 0,2 | C° | ||||
Время отклика | 10 | 10 | сек | ||||
Питание | |||||||
Напряжение | 3,3 | 5 | 5,5 | 3,3 | 5,5 | В | |
Потребляемый ток в режиме:
|
15 500 300 |
60 300 |
мкА | ||||
Сигналы интерфейса | |||||||
Выходное напряжение низкого уровня | 0 | 0,3 | В | ||||
Выходное напряжение высокого уровня | 90 | 100 | % Vdd | ||||
Входное напряжение низкого уровня | 0 | 30 | % Vdd | ||||
Входное напряжение высокого уровня | 70 | 100 | % Vdd | ||||
Сопротивление подтягивающего резистора | 30 | 45 | 60 | кОм | |||
Выходной ток | 8 | мА |
Контроллер допускает подключение датчиков обоих типов, но при использовании DHT22 измерения будут значительно точнее.
Подключение датчиков.
Данные измерений передаются микроконтроллеру цифровым кодом по однопроводной линии связи. Поэтому для подключения достаточно одного вывода микроконтроллера. Конечно, еще необходимо на датчик подать питание.
В протоколе обмена разбираться необходимости нет. Будем использовать готовые библиотеки.
Назначение выводов (распиновка) датчиков DHT22 и DHT11 совершенно одинаково.
Для отладки программы я использовал модуль Node MCU. Датчик подключил к выводу 12 (D6).
Вот полная схема контроллера.
Линия связи датчика имеет выход с “открытым коллектором”, поэтому необходим подтягивающий резистор 5,1 кОм.
Так у меня выглядит собранный макет устройства.
Установка библиотек для работы с датчиками.
В предыдущих уроках мы уже установили в Arduino IDE “Дополнительную ссылку для Менеджера плат”. Если нет, то сделайте это в закладках Файл-> Настройки->.
Чтобы установить библиотеки, необходимо перейти по закладкам Инструменты -> Управлять библиотеками и в открывшемся окне выбрать нужные библиотеки.
Нам необходимы следующие 2 библиотеки:
- Adafruit Unified Sensor;
- DHT sensor library.
Кстати. Я говорил, что у меня при подключении телефона к сети WiFi гроубокса иногда контроллер зависает на несколько секунд. Игорь из Минска советует установить старую библиотеку поддержки платы. С ней этой проблемы нет.
Теперь можно загружать код в микроконтроллер.
Резидентная программа контроллера.
Исходный код программы можно загрузить по ссылке.
Интерфейс программы изменился незначительно. В основном окне появились строки:
Полностью окно программы выглядит так.
Остается добавить, что при использовании датчика DHT11 надо строку
DHT dht(DHT_PIN, DHT22);
заменить на
DHT dht(DHT_PIN, DHT11);
Но точность измерений при этом упадет.
В следующей статье рубрики “Умное растениеводство” в контроллере появится функция автоматического включения вентиляторов для стабилизации температуры и влажности воздуха.
Como se llamo esto i am from SPAIN.
I registered a lot time ago. Can i see this web without adblocer?
thanks )
Hi!
Without an ad blocker? Sure. Without it and with a blocker, the site is available.
Интересный проект.
Будут ли в нем реализованы поддержание заданных промежутков температуры и влажности воздуха и влажности почвы на основе датчиков?
Сожно сделать чтобы время подтягивалось с интернета?
Или устанавливать время самому без датчика времени?
Здравствуйте!
Это значительная переделка программы. В реальных условиях чаще не бывает интернета, чем микросхемы-часов. Даже не знаю, чем помочь.