#include #include ESP8266WebServer server(80);//Создадим веб сервер на 80 порту bool LEDstatus = LOW; byte led_brightness = 0; void setup() { Serial.begin(9600);// Настроим частоту Serial порта delay(100); pinMode(3, OUTPUT);// Настроим ножку светодиода на выход, чтобы управлять им Serial.println("Connecting to "); Serial.println("node"); //connect to your local wi-fi network WiFi.mode(WIFI_STA);// Режим подключения к сторонней сети wi-fi WiFi.begin("adm2", "98765432110"); // Ждем пока статус соеденения не будет равен WL_CONNECTED , что означает что еsp успешно подключена к сети while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected..!"); Serial.print("Got IP: "); Serial.println(WiFi.localIP());// Вывод ip esp //Настройка путей и их обработчиков server.on("/status", handle_status); server.on("/ledon", HTTPMethod::HTTP_POST, handle_ledon); server.on("/ledoff", HTTPMethod::HTTP_POST, handle_ledoff); //Настройка обработчика ненайденного пути server.on("/slider", HTTPMethod::HTTP_POST, handle_slider); server.onNotFound(handle_NotFound); //Запуск сервера server.begin(); Serial.println("HTTP server started"); } void loop() { //Обработка запросов server.handleClient(); //Включение/Выключение светодиода. Помните у esp инвертированная логика светодиода на плате, поэтому LOW означает включить светодиод /*if(LEDstatus) {analogWrite(6, LOW);} else {analogWrite(6, HIGH);} */ } void handle_status() { Serial.println("LED: "); Serial.println(LEDstatus); //Отправка server.send(200, "text/plain", String(not(LEDstatus))+" "+String(led_brightness));} void handle_slider(){ if(!server.hasArg("brightness") or floor(atof(server.arg("brightness").c_str())) <= 0 or floor(atof(server.arg("brightness").c_str())) >= 256 ){ server.send(400, "texp/plain", "Brightness argument must be 0 0) ? floor(atof(server.arg("brightness").c_str())) : 255; analogWrite(3, led_brightness); server.send(200, "text/plain", String(not(LEDstatus))); }else{ Serial.println("LED: 1"); Serial.println(server.arg("timeout").c_str()); LEDstatus = 0; analogWrite(3, 255); delay(atof(server.arg("timeout").c_str())*1000); //Отправка LEDstatus = 1; analogWrite(3, 0); server.send(200, "text/plain", String(not(LEDstatus))); // } } void handle_ledoff() { if( ! server.hasArg("timeout")){ LEDstatus = 1; led_brightness = 0; analogWrite(3, led_brightness); server.send(200, "text/plain", String(not(LEDstatus))); }else{ Serial.println("LED: 0"); Serial.println(server.arg("timeout").c_str()); LEDstatus = 1; analogWrite(3, 0); delay(atof(server.arg("timeout").c_str())*1000); //Отправка LEDstatus = 0; analogWrite(3, led_brightness); server.send(200, "text/plain", String(not(LEDstatus))); //Код состояния 200 - OK, тип - text/plain, cами данные - String(LEDstatus) } } //Код состояния 200 - OK, тип - text/plain, cами данные - String(LEDstatus) void handle_NotFound(){ //Отправка server.send(404, "text/plain", "Not found"); //Код состояния 404 - не найдено, тип - text/plain, cами данные - "Not found" }