added all info here

This commit is contained in:
Qangan
2024-02-23 10:00:48 +07:00
commit b6156ae81d
19 changed files with 1035 additions and 0 deletions
+112
View File
@@ -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"
}