Основной целью урока — вывод данных в браузер через WiFi используя микроконтроллер ESP8266.
Перед тем как мы начнем писать код, необходимо убедиться, что у нас установлены необходимые библиотеки: DTH.h, если они еще не установлены, тогда необходимо перейти в раздел управление библиотеками:
Далее в поле поиска библиотек написать нужную библиотеку, после чего установить ее:
Датчик подключаем к 5 ножке. Расположение выводов датчика:
Параметры датчика:
Источник питания: 3.3-6V DC
Измерение влажности: 0-100% с погрешностью ±2%
Увеличение погрешности: ±0.5%/час
Влажность гистерезиса: ±0.3%
Измерение температуры: -40…+125°C, погрешность ±0.5°C
Программный код для вывода данных в браузер:
#include <ESP8266WiFi.h> #include "DHT.h" // DHT22 #define DHTPIN 5 // номер ножки куда подключать датчик #define DHTTYPE DHT22 //определяем тип датчика // Инициализируем DHT сенсор. DHT dht(DHTPIN, DHTTYPE); // WiFi параметры const char* ssid = "****";// свои данные const char* password = "****";// свои данные // Работаем через 80 порт //Создаем сервер WiFiServer server(80); // Переменные, которые будут представлены API float temperature; float humidity; void setup(void){ Serial.begin(115200); // Инициализация датчика dht.begin(); // Подключаемся к WiFi 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"); // Выводим IP адрес в мониторинг Serial.println(WiFi.localIP()); } void loop() { // ПРОВЕРКА ПОДКЛЮЧЕНИЯ КЛИЕНТА WiFiClient client = server.available(); if (!client) { return; } // ЖДЁМ КЛИЕНТА Serial.println("new client"); while(!client.available()){ delay(1); } client.flush(); //Читаем температуру и давление humidity = dht.readHumidity(); temperature = dht.readTemperature(); // ПОДГОТОВКА HTML-страницы String s = "<!DOCTYPE HTML>\r\n<meta http-equiv='content-type' content='text/html; charset=UTF-8'>\r\n"; s += "<html>"; s += " <HEAD>"; s += " <title>DHT-22</title>"; s += " <BODY>"; s += " <CENTER>"; s += " <H3>DHT-22</H3><br>"; s += " <H4>temperature=+"+String(temperature, DEC) +"</H4><br>"; s += " <H4>humidity=+"+String(humidity, DEC) +"</H4><br>"; s += " </CENTER>"; s += " </BODY>"; s += "/<html>"; // ОТПРАВКА СТРАНИЦЫ КЛИЕНТУ client.print(s); Serial.println("Client disonnected"); }