ESP8266:Примеры/Считывание данных с датчика температуры и влажности DHT11/DHT22 подключенного к модулю ESP-01
Перейти к навигации
Перейти к поиску
Поддержать проект | Содержание | Введение | Модули | AT-команды | Прошивки | Примеры | Проекты | Типовые проблемы | Библиотеки |
Проверка/Оформление/Редактирование: Мякишев Е.А.
![]() |
Черновик |
Содержание
Считывание данных с датчика температуры и влажности DHT11 подключенного к модулю ESP-01
В этом примере демонстрируется cчитывание данных с датчика температуры и влажности DHT11 подключенного к модулю ESP-01.
Для выполнения этого примера вам необходимо:
- Установить аддон ESP8266 для IDE Arduino;
- Установить библиотеки: ESP8266WiFi, aREST, DHT и Adafruit sensor;
- Собрать схему и подключить конвертер USB FTDI к компьютеру, но не подключайте пока перемычку идущую на вывод VCC модуля ESP-01;
- Вставить код программы в Arduino IDE;
- Выбрать в меню Иструменты->Порт: соответствующий COM-порт;
- Выбрать в меню "Инструменты->Плата" плату "Generic ESP8266 Module";
- Нажать кнопку "Загрузка";
- Подключить перемычку идущую на вывод VCC модуля ESP-01. Т.к. вывод GPIO0 подключен к земле, модуль при включении перейдет в режим загрузки;
- Дождаться загрузки;
- Открыть монитор порта и наблюдать за успешным подключением модуля к точке доступа, скопировать IP-адрес;
- Открыть браузер и перейти по следующему адресу(без "<>") и получить данные температуры: <IP-адрес модуля>/temperature
- Перейти по следующему адресу(без "<>") и получить данные влажности: <IP-адрес модуля>/humidity
- Примечание: Если после загрузки скетча и открытия монитора порта, модуль не может подключиться и вы видите много "." просто отключите и подключите обратно перемычку идущую на вывод VCC модуля ESP-01.
- Примечание: Если вы перезагрузили модуль и обнаружили в мониторе порта иероглифы, а сам модуль отказывается подключаться, проверьте отключили ли вы перемычку идущую от GPIO0 к земле(желательно подключить GPIO0 через 10кОм резистор к 3.3В). Отключите перемычку и снова перезагрузите модуль.
Необходимые компоненты
- Модуль с ESP-01, 1шт.;
- Источник питания 3,3 В, 1 шт.;
- Конвертер USB/TTL на базе чипа FT232RL от FTDI, 1 шт.;
- Датчик DHT11/DHT22, 1 шт.;
- Резистор 10кОм, 1 шт.;
Схема
Код
1 #include "ESP8266WiFi.h" // Подключаем библиотеку ESP8266WiFi
2 #include <aREST.h> // Подключаем библиотеку aREST
3 #include "DHT.h" // Подключаем библиотеку DHT
4
5 #define DHTPIN 2 // Номер вывода GPIO, в данном случае используем GPIO2
6 #define DHTTYPE DHT11 // Тип используемого датчика
7
8 aREST rest = aREST(); // Создаем объект aREST
9
10 DHT dht(DHTPIN, DHTTYPE); // Создаем объект датчика
11
12 const char* ssid = "название точки"; // Укажите здесь в кавычках название вашей точки доступа
13 const char* password = "пароль точки"; // Укажите здесь в кавычках пароль вашей точки доступа
14
15 #define LISTEN_PORT 80 // Номер входящего порта
16
17 WiFiServer server(LISTEN_PORT); // Создаем сервер
18
19 float temperature; // Переменная для хранения данных температуры
20 float humidity; // Переменная для хранения данных влажности
21
22 void setup(void)
23 {
24 Serial.begin(115200); // Инициализируем последовательный порт
25
26 dht.begin(); // Инициализируем датчик
27
28 rest.variable("temperature", &temperature); // Подключаем переменную температуры к REST API для удаленного доступа
29 rest.variable("humidity", &humidity); // Подключаем переменную влажности REST API для удаленного доступа
30
31 rest.set_id("1"); // Задаем модулю ID
32 rest.set_name("esp8266"); // Задаем модулю имя
33
34 // Подключаемся к точке доступа
35 WiFi.begin(ssid, password);
36 while (WiFi.status() != WL_CONNECTED) {
37 delay(500);
38 Serial.print(".");
39 }
40
41 Serial.println("");
42 Serial.println("WiFi connected");
43
44 server.begin(); // Запускаем сервер
45 Serial.println("Server started");
46
47 Serial.println(WiFi.localIP()); // Выводим в монитор порта IP адрес сервера
48
49 }
50
51 void loop() {
52 delay(2000); // задержка в 2 секунды между измерениями
53
54 humidity = dht.readHumidity(); // Считываем данные влажности
55 temperature = dht.readTemperature(); // Считываем данные температуры
56
57 // Обработка внешних запросов REST
58 WiFiClient client = server.available();
59 if (!client) {
60 return;
61 }
62 while (!client.available()) {
63 delay(1);
64 }
65 rest.handle(client);
66
67 }
См.также
Внешние ссылки