Подключение датчика влажности и температуры DHT22 к микроконтроллеру ESP8266, вывод данных в браузер.

В данном уроке мы подключим датчик DHT22 к микроконтроллеру ESP8266 и выведем его данные в браузер.

Основной целью урока — вывод данных в браузер через 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");
}
Когда мы выполним данный код, на экране мониторинга мы должны увидеть следующее:
 
Вставляем в браузер полученный нами IP и на экране наблюдаем значения температуры и давления: