scusate il ritardo, ma viene prima la famiglia,
non ne combino una di giusta,
grazie Guglielmo di aver sistemato,
bene veniamo al problema della riconnessione posto il file
/***************************
Telecomando con ESP32
via WiFi
****************************/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#define I2C_ADDR 0x27 // <<- indirizzo del PCF8574
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin,
D7_pin);
#define btn1 5
#define btn2 23
#define btn3 14
#define btn4 12
#define led 18
boolean PB1_Flag;
boolean PB2_Flag;
boolean PB3_Flag;
boolean PB4_Flag;
unsigned long headLunga = 0;
unsigned long totLunga = 0;
// WiFi parametri
const char* ssid = "Mia_Linea"; // <<- definite la vostra rete WIFI
const char* password = "Mia_Password"; // <<- e la vostra password
// Si crea un' instance di server
WiFiServer server(80);
void DisplayClear(void) {
int i;
for (i = 0; i < 4; i++) {
lcd.setCursor(0, 0);
lcd.print(" ");
}
}
//*******************************************************************
void setup() {
// Viene inizializzato il display
lcd.begin(20, 4, LCD_5x10DOTS); // LCD 16x4 e formato caratteri
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH); // accende Bachkight
// Si definiscono le porte e le condizioni iniziali
pinMode(btn1, OUTPUT);
digitalWrite(btn1, LOW);
pinMode(btn2, OUTPUT);
digitalWrite(btn2, LOW);
pinMode(btn3, OUTPUT);
digitalWrite(btn3, LOW);
pinMode(btn4, OUTPUT);
digitalWrite(btn4, LOW);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
// Start Seriale
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, password); // inizializza la connessione WIFI
// Verifica lo stato fino a connessione avvenuta.
while (WiFi.status() != WL_CONNECTED) {
lcd.setCursor(0, 0);
lcd.print(" CONNESSIONE ");
lcd.setCursor(0, 1);
lcd.print(" IN CORSO ");
Serial.print(".");
delay(500);
}
DisplayClear();
lcd.setCursor(0, 0);
lcd.print("CONNESSO A: ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(ssid);
lcd.setCursor(0, 2);
lcd.print("INDIRIZZO IP: ");
lcd.setCursor(0, 3);
lcd.print(WiFi.localIP());
// Start del server
server.begin();
}
void loop() {
while (WiFi.status() != WL_CONNECTED) {
WiFi.reconnect();
digitalWrite(led, HIGH);
}
digitalWrite(led, LOW);
// Verifica se un client si è connesso
WiFiClient client = server.available();
if (!client) {
return;
}
// Attende di ricevere qualche dato
while (!client.available()) {
delay(1);
}
// Legge la richiesta fino a r, poi con client.flush elimina eventuali caratteri
// ricevuti ma non letti.
String req = client.readStringUntil('\r');
client.flush();
Serial.println(req);
//se viene ricevuta "GET/favicon.ico HTTP/1.1" risponde che non trova jl file
if (req.indexOf("favicon.ico") != -1) {
client.flush();
client.print("HTTP/1,1 404 Not Found\r\n");
Serial.println("Non Trovato");
delay(1);
} else {
if (req.indexOf("PB1ON") != -1) {
digitalWrite(btn1, HIGH);
PB1_Flag = true;
}
if (req.indexOf("PB1OFF") != -1) {
digitalWrite(btn1, LOW);
PB1_Flag = false;
}
if (req.indexOf("PB2ON") != -1) {
digitalWrite(btn2, HIGH);
PB2_Flag = true;
}
if (req.indexOf("PB2OFF") != -1) {
digitalWrite(btn2, LOW);
PB2_Flag = false;
}
if (req.indexOf("PB3ON") != -1) {
digitalWrite(btn3, HIGH);
PB3_Flag = true;
}
if (req.indexOf("PB3OFF") != -1) {
digitalWrite(btn3, LOW);
PB3_Flag = false;
}
if (req.indexOf("PB4ON") != -1) {
digitalWrite(btn4, HIGH);
PB4_Flag = true;
}
if (req.indexOf("PB4OFF") != -1) {
digitalWrite(btn4, LOW);
PB4_Flag = false;
}
String buff = "HTTP/1.1 200 OK\r\n Content-Type:text/html\r\n content-lenght:2166\r\n\r\n";
headLunga = buff.length();
buff += "<html>";
buff += "<head><title>TETECOMANDO</title>";
buff += "<style type=\"text/css\">";
buff += "td{align:center;width:auto;height:70px;}";
buff += "</style></head>";
buff += "<body style=\"width:99,99%;height:99,99%\">";
buff += "<div align=\"center\">";
buff += "<table style=\"width:auto;background-color:#dcdcdc\">";
buff += "<thead style=\"width:100%;background-color:#6699FF\">";
buff += "<tr><th colspan=\"5\"style=\"font-weight:bold;font-size:2em\">TELECOMANDO</th></tr></thead>";
buff += "<tr>";
if (PB1_Flag) {
buff += "<td><a href=\"/?PB1ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b> ON </font></button></a></td>";
buff += "<td><a href=\"/?PB1OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font> </button></a></td>";
} else if (!PB1_Flag) {
buff += "<td><a href=\"/?PB1ON\"> <button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b> ON </font></button></a></td>";
buff += "<td><a href=\"/?PB1OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
}
buff += "<td><h3>LUCE GIARDINO</h3></td></tr>";
buff += "<tr>";
if (PB2_Flag) {
buff += "<td><a href=\"/?PB2ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB2OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
} else if (!PB2_Flag) {
buff += "<td><a href=\"/?PB2ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB2OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
}
buff += "<td><h3>LUCE INGRESSO</h3></td></tr>";
buff += "<tr>";
if (PB3_Flag) {
buff += "<td><a href=\"/?PB3ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB3OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
} else if (!PB3_Flag) {
buff += "<td><a href=\"/?PB3ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB3OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
}
buff += "<td><h3>LUCE NOTTURNA</h3></td></tr>";
buff += "<tr>";
if (PB4_Flag) {
buff += "<td><a href=\"/?PB4ON\"><button style=\"background-color:#008000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB4OFF\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
} else if (!PB4_Flag) {
buff += "<td><a href=\"/?PB4ON\"><button style=\"background-color:#ffff66;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>ON</font></button></a></td>";
buff += "<td><a href=\"/?PB4OFF\"><button style=\"background-color:#cc0000;width:99%;height:99%;border-radius:15px\">";
buff += "<font size=\"6\"><b>OFF</font></button></a></td>";
}
buff += "<td><h3>LUCE SCALA</h3></td></tr>";
buff += "</table></div></body></html>";
totLunga = buff.length();
Serial.print("lunghezza intestazione = ");
Serial.println(headLunga);
Serial.print("lunghezza totale = ");
Serial.println(totLunga);
// Invia la risposta al client
client.print(buff);
delay(1);
}
}
spero che qualcuno mi possa dare qualche dritta
toni