#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
// Настройки WiFi
const char* ssid = "TurkTelekom_TP277C_5GHz";
const char* password = "1234";
// Создание веб-сервера на порту 80
ESP8266WebServer server(80);
// Номер логического пина для управления
const int ledPin = D1;
void setup() {
// Настройка логического пина как выхода
pinMode(ledPin, OUTPUT);
// Подключение к WiFi-сети
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Обработчик для корневой страницы веб-сервера
server.on("/", []() {
// Отправка HTML-страницы с кнопкой
server.send(200, "text/html",
"<html><body><h1>Hello from ESP8266!</h1>"
"<button onclick=\"toggleLED()\">Toggle LED</button>"
"<script>"
"function toggleLED() {"
" var xhr = new XMLHttpRequest();"
" xhr.open('GET', '/toggle', true);"
" xhr.send();"
"}"
"</script></body></html>");
});
// Обработчик для запроса на изменение состояния логического пина
server.on("/toggle", []() {
// Изменение состояния логического пина
digitalWrite(ledPin, !digitalRead(ledPin));
// Отправка ответа клиенту
server.send(200, "text/plain", "LED state toggled.");
});
// Запуск веб-сервера
server.begin();
}
void loop() {
// Обработка клиентских запросов
server.handleClient();
}