#include <ESP8266WiFi.h> // Подключаем библиотеку ESP8266WiFi
#include <OneWire.h> // Подключаем библиотеку Wire
#include <DallasTemperature.h> // Подключаем библиотеку DallasTemperature
const char* ssid = "Keenetic-3909"; // Название Вашей WiFi сети
const char* password = "12345678"; // Пароль от Вашей WiFi сети
#define ONE_WIRE_BUS 5 // Указываем, к какому выводу подключены датчики
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
DeviceAddress sensor1 = {0x28, 0xFF, 0x68, 0xCA, 0x22, 0x17, 0x03, 0xFE}; //Прописываем MAC адреса датчиков
DeviceAddress sensor2 = {0x28, 0xFF, 0x98, 0xCD, 0x22, 0x17, 0x03, 0xDE};
DeviceAddress sensor3 = {0x28, 0xFF, 0x34, 0xC9, 0x22, 0x17, 0x03, 0xC2};
WiFiServer server(80); // Указываем порт Web-сервера
void setup()
{
Serial.begin(115200); // Скорость передачи 115200
delay(10); // Пауза 10 мкс
DS18B20.begin(); // Инициализация DS18B20
Serial.println(""); // Печать пустой строки
Serial.print("Connecting to "); // Печать "Подключение к:"
Serial.println(ssid); // Печать "Название Вашей WiFi сети"
WiFi.begin(ssid, password); // Подключение к WiFi Сети
while (WiFi.status() != WL_CONNECTED) // Проверка подключения к WiFi сети
{
delay(500); // Пауза 500 мкс
Serial.print("."); // Печать "."
}
Serial.println(""); // Печать пустой строки
Serial.println("WiFi connected"); // Печать "Подключение к WiFi сети осуществлено"
server.begin(); // Запуск Web сервера
Serial.println("Web server running."); // Печать "Веб-сервер запущен"
delay(10000); // Пауза 10 000 мкс
Serial.println(WiFi.localIP()); // Печатаем полученный IP-адрес ESP
}
void loop()
{
WiFiClient client = server.available(); // Получаем данные, посылаемые клиентом
if (client){
Serial.println("New client"); // Отправка "Новый клиент"
boolean blank_line = true; // Создаем переменную, чтобы определить конец HTTP-запроса
while (client.connected()){ // Пока есть соединение с клиентом
if (client.available()){ // Если клиент активен
char c = client.read(); // Считываем посылаемую информацию в переменную "с"
if (c == '\n' && blank_line){ // Вывод HTML страницы
DS18B20.requestTemperatures(); // Запрос на считывание температуры
client.println("HTTP/1.1 200 OK"); // Стандартный заголовок HTTP
client.println("Content-Type: text/html");
client.println("Connection: close"); // Соединение будет закрыто после завершения ответа
client.println("Refresh: 10"); // Автоматическое обновление каждые 10 сек
client.println();
client.println("<!DOCTYPE HTML>"); // Веб-страница создается с использованием HTML
client.println("<html>"); // Открытие тега HTML
client.println("<head>");
client.print("<title>ESP8266 TEMP</title>"); // Название страницы
client.println("</head>");
client.println("<body>");
client.println("<h1>DISTILL3</h1>");
client.println("<h1>Temp 1 = <font color=#FF0000>");
client.println(DS18B20.getTempC(sensor1)); // Отображение температуры датчик1
client.println("*C</font></h1>");
client.println("<h1>Temp 2= <font color=#FF0000>");
client.println(DS18B20.getTempC(sensor2)); // Отображение температуры датчик2
client.println("*C</font></h1>");
client.println("<h1>Temp 3= <font color=#FF0000>");
client.println(DS18B20.getTempC(sensor3)); // Отображение температуры датчик3
client.println("*C</font></h1>");
client.println("</body>");
client.println("</html>"); // Закрытие тега HTML
break; // Выход
}
if (c == '\n'){ // Если "с" равен символу новой строки
blank_line = true; // Тогда начинаем новую строку
}
else if (c != '\r'){ // Если "с" не равен символу возврата курсора на начало строки
blank_line = false; // Тогда получаем символ на текущей строке
}
}
}
client.stop(); // Закрытие соединения
Serial.println("Client disconnected."); // Печать "Клиент отключен"
}
}