ESP8266:Примеры/Считывание данных с датчика температуры и влажности DHT11/DHT22 подключенного к модулю ESP-01

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Считывание данных с датчика температуры и влажности 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 dht11 rest api 1.png


Pinout ESP8266.jpg

Код

 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 }

См.также

Внешние ссылки