added all info here
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266WebServer.h>
|
||||
|
||||
|
||||
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<br<256");
|
||||
}else{
|
||||
led_brightness = floor(atof(server.arg("brightness").c_str()));
|
||||
analogWrite(3, led_brightness);
|
||||
server.send(200, "texp/plain", "Changed brightness to "+String(led_brightness));
|
||||
|
||||
}
|
||||
}
|
||||
void handle_ledon() {
|
||||
if( ! server.hasArg("timeout")){
|
||||
LEDstatus = 0;
|
||||
led_brightness = (server.hasArg("brightness") and floor(atof(server.arg("brightness").c_str())) < 256 and floor(atof(server.arg("brightness").c_str())) > 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"
|
||||
}
|
||||
Reference in New Issue
Block a user