ESP8266:Примеры/Считывание данных с датчика температуры и влажности DHT11/DHT22 подключенного к модулю ESP-01
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Проверка/Оформление/Редактирование: Мякишев Е.А.
![]() |
Черновик |
Считывание данных с датчика температуры и влажности 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
Необходимые компоненты
- Модуль с ESP-01, 1шт.;
- Источник питания 3,3 В, 1 шт.;
- Конвертер USB/TTL на базе чипа FT232RL от FTDI, 1 шт.;
- Датчик DHT11/DHT22, 1 шт.;
- Резистор 10кОм, 1 шт.;
Схема
Код
#include "ESP8266WiFi.h" // Подключаем библиотеку ESP8266WiFi
#include <aREST.h> // Подключаем библиотеку aREST
#include "DHT.h" // Подключаем библиотеку DHT
#define DHTPIN 2 // Номер вывода GPIO, в данном случае используем GPIO2
#define DHTTYPE DHT11 // Тип используемого датчика
aREST rest = aREST(); // Создаем объект aREST
DHT dht(DHTPIN, DHTTYPE); // Создаем объект датчика
const char* ssid = "название точки"; // Укажите здесь в кавычках название вашей точки доступа
const char* password = "пароль точки"; // Укажите здесь в кавычках пароль вашей точки доступа
#define LISTEN_PORT 80 // Номер входящего порта
WiFiServer server(LISTEN_PORT); // Создаем сервер
float temperature; // Переменная для хранения данных температуры
float humidity; // Переменная для хранения данных влажности
void setup(void)
{
Serial.begin(115200); // Инициализируем последовательный порт
dht.begin(); // Инициализируем датчик
rest.variable("temperature", &temperature); // Подключаем переменную температуры к REST API для удаленного доступа
rest.variable("humidity", &humidity); // Подключаем переменную влажности REST API для удаленного доступа
rest.set_id("1"); // Задаем модулю ID
rest.set_name("esp8266"); // Задаем модулю имя
// Подключаемся к точке доступа
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
server.begin(); // Запускаем сервер
Serial.println("Server started");
Serial.println(WiFi.localIP()); // Выводим в монитор порта IP адрес сервера
}
void loop() {
delay(2000); // задержка в 2 секунды между измерениями
humidity = dht.readHumidity(); // Считываем данные влажности
temperature = dht.readTemperature(); // Считываем данные температуры
// Обработка внешних запросов REST
WiFiClient client = server.available();
if (!client) {
return;
}
while (!client.available()) {
delay(1);
}
rest.handle(client);
}
См.также
Внешние ссылки
ESP8266 AT-команды | |
---|---|
Список AT-команд | |
Базовые команды |
|
Команды для WiFi |
|
Команды для TCP/IP |
|