Цель данного урока - показать, как подключить датчик DHT11 к ESP8266 и написать простую программу для измерения температуры и влажности. Будем использовать Arduino IDE для программирования ESP8266.
Для урока нам понадобиться модуль DHT11. Как подключить модуль DHT11 к Arduino у меня на сайте есть отдельный урок KY-015 - Модуль с датчиком температуры и влажности DHT11. Подключение к Arduino. Кроме этого вы можете найти подробный урок по выводу значений температуры и влажности с датчика DHT11 в браузер. А сегодня мы рассмотрим самый простой пример использования датчика DHT11 с отладочной платой ESP8266.
DHT11 может измерять как температуру, так и влажность, и идеально подходит для простых проектов по мониторингу окружающей среды. Он имеет точность измерения 1ºC для температуры и 1% RH (относительной влажности). И диапазон измерения температуры от 0 ° C до 50 ° C.
Подключение датчика к ESP8266 очень простое, как показано на рисунке ниже. В этом случае мы предполагаем использование GPIO2 (который является одним из немногих, доступных при использовании платы ESP-01 ). Тем не менее, вы можете подключить его к другому контакту GPIO. В случае использования платы NodeMCU примите во внимание, что порядок выводов на плате не соответствует выводам ESP8266, что может привести к ошибочным результатам (вы можете проверить распиловку ESP-01и NodeMCU здесь ).
Также примите во внимание, что разные модули DHT11 могут иметь разное расположение сигнального контакта «S».
Как указывалось ранее, предполагаем использование IDE Arduino для программирования ESP8266. Пожалуйста, ознакомьтесь с подробным руководством здесь, если вы еще не настроили его для поддержки плат ESP8266.
Существует несколько библиотек для Arduino, которые упрощают нашу задачу взаимодействия с DHT11. Библиотека датчиков Simple DHT очень проста в использовании и хорошо работает с ESP8266. Эту библиотеку можно легко установить с помощью диспетчера библиотек Arduino IDE Library, как показано на рисунке.
Чтобы импортировать только что установленную библиотеку, поместите следующий include в начало кода:
#include <SimpleDHT.h>
Также объявите глобальную переменную с номером вывода GPIO, чтобы упростить изменение. В этом примере будем использовать GPIO2:
int DHTpin = 2;
Чтобы разрешить отправку данных на компьютер, запустите последовательное соединение в функции настройки:
Serial.begin(115200);
В основном цикле объявим две байтовые переменные, одну для температуры, а другую для влажности:
byte temperature; byte humidity;
Мы используем байтовые переменные, поскольку DHT11 имеет разрешение всего 8 бит, как для температуры, так и для влажности.
Наконец, также в функции основного цикла считываем значения и отправляем их в последовательный порт:
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Serial.print("temperature: "); Serial.print((int)temperature); Serial.println("ºC"); Serial.print("Humidity: "); Serial.print((int)humidity); Serial.println("%"); } else { Serial.print("Failed."); }
Всегда проверяйте, возвращает ли функция чтения ошибку, прежде чем пытаться использовать или отправлять данные другому объекту. Кроме того, как указывалось ранее, дважды проверьте подключение датчика DHT11, особенно если вы используете nodeMCU. Например, в этом случае я тестировал код, используя именно плату NodeMCU, и номер контакта 4 («D4») платы - это тот, который соответствует GPIO2 ESP8266. Для NodeMCU можно использовать подключение к контакту 4, для этого в коде прописываем контакт подключения не «GPIO2», а «D4».
Кроме этого, не забудьте установить задержку между чтениями показаний с датчика.
delay(2000);
Если откроете последовательный монитор Arduino IDE, вы должны увидеть что-то похожее на это.
Важно отметить, что DHT11 выполняет измерения только по запросу подключенного к нему микроконтроллера. Таким образом, датчик остается в режиме низкого энергопотребления до получения сигнала запуска измерения температуры и влажности. После завершения измерений он возвращается в режим низкого энергопотребления, пока не будет получен новый сигнал запуска измерения.
Заключение.
Как видите, подключить DHT11 к ESP8266 довольно просто. Хотя в этом руководстве объясняется только, как отправлять данные на компьютер с помощью последовательного соединения, очень легко адаптировать код для отправки измерений на удаленный сервер, используя функции ESP8266. Вы можете посмотреть здесь, пример регистратора температуры, который отправляет данные на веб-сервер, используя ESP32, ESP8266 и DHT11.
Понравился Урок DHT11 Подключение к ESP8266? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
![]() |
Код для вывода температуры с датчика DHT11.ino | 1 Kb | 1214 | Скачать |
Уроки ESP8266 (заметки)
28 июня , 2021
Комментариев:0
Файлов для скачивания:1
Фото:4
Понравилась статья? Нажми
Виджеты для Easy HMI
Читайте также
Мы в соц сетях
Комментарии