#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
*/