#define VERSION "24-04-2022" #include "Arduino.h" #include #include #include #include const char* ssid ="ON_AIR2021"; const char* password = "cGT>1_@?LOdBqD6kd%s@v|.b5x^4PD|?s}uu*j4o)Uqpa|r1jftH+H>8_oG6}v4"; const int PWM_output = 4; // Lolin Pin D2 #define Led_Verte 12 // Lolin pin D6 #define Led_Rouge 15 // Lolin pin D8 #define Led_Bleue 0 // Lolin pin D3 #define Led_Bleue_Inbuilt 2 // Lolin pin D4 IPAddress local_IP(192, 168, 0, 110); // Set your Gateway IP address IPAddress gateway(192, 168, 0, 254); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(212,27,40,241); //optional IPAddress secondaryDNS(212,27,40,240); //optional String SlideValue = "0"; // init value String ConsigneValue = "0"; String pwmSliderValue = "0"; const char* PARAM_INPUT = "value"; const char* PARAM_INPUT1 ="value"; const char* PARAM_OUTPUT = "output"; const char* PARAM_STATE = "state"; unsigned int i,j,k; unsigned int Compteur; char RxBuffer[80]; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); const char index_html[] PROGMEM = R"rawliteral( // ESP Async.Web Server

ESP8266 Lolin Jaune Async.Web server


ESP8266_Jaune_Buttons_Slider_PWM_2022-04.ino

Cde PWM D2 -- > %PWMSLIDERVALUE%

CONSIGNE.Vitesse --> %CONSIGNEVALUE%

Cde Sorties GPIO

%BUTTONPLACEHOLDER%
)rawliteral"; String outputState(int output){ if(digitalRead(output)){ return "checked"; } else { return ""; } } String processor(const String& var) { Serial.println("Processor");Serial.println(var); if(var == "BUTTONPLACEHOLDER") { String buttons = ""; buttons += "

D6 Led Verte GPIO 12

"; buttons += "

D8 Led Rouge GPIO 15

"; buttons += "

D3 Led_Bleue GPIO 0

"; return buttons; } if ((var == "PWMSLIDERVALUE") or (var == "CONSIGNEVALUE")) { if (var == "PWMSLIDERVALUE") return pwmSliderValue; if (var == "CONSIGNEVALUE") return ConsigneValue; } } void setup(){ // Serial port for debugging purposes Serial.begin(115200); delay(200); Compteur=0; Serial.println(); pinMode(Led_Verte, OUTPUT); pinMode(Led_Bleue, OUTPUT); pinMode( Led_Bleue_Inbuilt, OUTPUT); pinMode(Led_Rouge, OUTPUT); // led rouge externe sur Lolin pin D6 (GPio 12) digitalWrite(Led_Rouge, LOW); digitalWrite(Led_Verte, LOW); digitalWrite(Led_Bleue, LOW); digitalWrite(Led_Bleue_Inbuilt, LOW); Serial.print(" ESP8266MOD Lolin NodeMCU Jaune 2x15 pins \r\n Test PWM rev "VERSION"\r\n"); Serial.println(" ESP8266_Jaune_Slider_PWM_2022-04.ino"); Serial.println(" Led Bleue sur D3 (GPIO 0) "); Serial.println(" Led Verte sur D6 (GPIO 12) pull down"); Serial.println(" Led Rouge sur D8 (GPIO 15) pull Down"); Serial.println(" PWM output sur D2 ( GPIO 4) "); Serial.println(" Led Bleue inbuilt (D4 GPIO 2) module LILO (pull-up) sur D4"); // sortie PWM analogWriteRange(1023); analogWrite(PWM_output, SlideValue.toInt()); // Lolin pin D2 analogWriteFreq(2000); // Configures static IP address if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println("STA Failed to configure"); } // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi.."); } // Print ESP Local IP Address Serial.println(WiFi.localIP()); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { // request->send_P(200, "text/html", index_html, Bouttons); request->send_P(200, "text/html", index_html, processor); }); // Send a GET request to /slider?value= server.on("/consigne", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage; // GET input1 value on /consigne?value= if (request->hasParam(PARAM_INPUT1)) { inputMessage = request->getParam(PARAM_INPUT1)->value(); ConsigneValue = inputMessage; analogWrite(PWM_output, ConsigneValue.toInt()); // Serial.print( " Consigne=");Serial.println(inputMessage); } else { inputMessage = "No message sent"; } Serial.print( " Consigne=");Serial.println(inputMessage); request->send(200, "text/plain", "OK"); }); // Send a GET request to /slider?value= server.on("/pwmSlider", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage; // GET input value on /slider?value= if (request->hasParam(PARAM_INPUT)) { inputMessage = request->getParam(PARAM_INPUT)->value(); SlideValue = inputMessage; analogWrite(PWM_output, SlideValue.toInt()); // Serial.print( " Slider=");Serial.println(inputMessage); } else { inputMessage = "No message sent"; } Serial.print( " Slider=");Serial.println(inputMessage); request->send(200, "text/plain", "OK"); }); // Send a GET request to /update?output=&state= server.on("/update", HTTP_GET, [] (AsyncWebServerRequest *request) { String inputMessage1; String inputMessage2; // GET input1 value on /update?output=&state= if (request->hasParam(PARAM_OUTPUT) && request->hasParam(PARAM_STATE)) { inputMessage1 = request->getParam(PARAM_OUTPUT)->value(); inputMessage2 = request->getParam(PARAM_STATE)->value(); digitalWrite(inputMessage1.toInt(), inputMessage2.toInt()); } else { inputMessage1 = "No message sent"; inputMessage2 = "No message sent"; } Serial.print("GPIO: "); Serial.print(inputMessage1); Serial.print(" - Set to: "); Serial.println(inputMessage2); request->send(200, "text/plain", "OK"); }); // Start server server.begin(); } void loop() { Serial.printf ("Cp1t= %05d",Compteur); Serial.printf(" PWM Value %05d ",SlideValue.toInt() ); Serial.printf(" Consigne value %05d",ConsigneValue.toInt() ); Serial.println(); delay(1500); Compteur++; if (Compteur & 0x0001==1) digitalWrite( Led_Bleue_Inbuilt,HIGH); else digitalWrite(Led_Bleue_Inbuilt,LOW); // Serial.readBytesUntil('\r',RxBuffer,32); // if (sizeof(RxBuffer)>0) Serial.println(RxBuffer); } /* --------- sur terminal YAT 115200 bds COM6 ----------- ESP8266MOD Lolin NodeMCU Jaune 2x15 pins Test PWM rev ESP8266_Jaune_Slider_PWM_2022-xxxx.ino Led Bleue sur D4 pull down (et in-built pull up) Led Verte sur D3 (GPIO 0) pull down Led Rouge sur D6 (GPIO 12) pull Down Init PWM (GPIO 15) => sortie sur Pin D8 module Lolin Connecting to WiFi.. Connecting to WiFi.. Connecting to WiFi.. Connecting to WiFi.. 192.168.0.111 Cp1t= 00000 PWM Value 00000 Consigne value 00000 Processor PWMSLIDERVALUE Processor PWMSLIDERVALUE Processor CONSIGNEVALUE Processor CONSIGNEVALUE Processor BUTTONPLACEHOLDER Cp1t= 00001 PWM Value 00000 Consigne value 00000 Cp1t= 00002 PWM Value 00000 Consigne value 00000 Cp1t= 00003 PWM Value 00000 Consigne value 00000 Cp1t= 00004 PWM Value 00000 Consigne value 00000 Consigne=188 Cp1t= 00005 PWM Value 00000 Consigne value 00188 Cp1t= 00006 PWM Value 00000 Consigne value 00188 Slider=416 Cp1t= 00007 PWM Value 00416 Consigne value 00188 Cp1t= 00008 PWM Value 00416 Consigne value 00188 Cp1t= 00009 PWM Value 00416 Consigne value 00188 Consigne=416 Cp1t= 00010 PWM Value 00416 Consigne value 00416 Cp1t= 00011 PWM Value 00416 Consigne value 00416 GPIO: 0 - Set to: 1 Cp1t= 00012 PWM Value 00416 Consigne value 00416 GPIO: 0 - Set to: 0 Cp1t= 00013 PWM Value 00416 Consigne value 00416 GPIO: 12 - Set to: 1 Cp1t= 00014 PWM Value 00416 Consigne value 00416 GPIO: 12 - Set to: 0 Cp1t= 00015 PWM Value 00416 Consigne value 00416 Cp1t= 00016 PWM Value 00416 Consigne value 00416 GPIO: 14 - Set to: 1 GPIO: 14 - Set to: 0 Cp1t= 00017 PWM Value 00416 Consigne value 00416 Cp1t= 00018 PWM Value 00416 Consigne value 00416 */