Go Down

Topic: esp8266 wi-fi (Read 346 times) previous topic - next topic

openSUSE1

buonasera,
ho realizzato un prototipo wi-fi con il modulo esp 8266.
funzionante ed operativo,chiedevo un aiuto perche' sulla pagina web ho due stringhe on off e quando accendi un rele o l'altro,nn sai quale hai acceso o spento sulla pagina.
se e possibile aggiungere un led sulla pagina,su ogni rispettiva stringa per poter visualizzare lo stato dei rele',e se da due stringhe on off,si puo fare con unico pulsante?
grazie a tutti e scusate  se ho sbagliato qualcosa,sono nuovo ed e la prima volta che pubblico qualcosa.
Code: [Select]
/*
  Sketch: ESP8266_LED_Control_02
  Control an LED from a web browser
  Intended to be run on an ESP8266
  use web broswer to go to 192.168.4.1

*/


#include <ESP8266WiFi.h>
const char WiFiPassword[] = "Qwerty2019";
const char AP_NameChar[] = "LEDControl" ;

WiFiServer server(80);

String header = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
String html_1 = "<!DOCTYPE html><html><head><meta name='viewport' content='width=device-width, initial-scale=1.0'/><meta charset='utf-8'><style>body {font-size:140%;} #main {display: table; margin: auto;  padding: 0 10px 0 10px; } h2,{text-align:center; } .button { padding:10px 10px 10px 10px; width:100%;  background-color: #4CAF50; font-size: 120%;}</style><title>Domotics</title></head><body><div id='main'><h2>Domotics_By_Terrasi</h2>";
String html_3 = "<form id='F1' action='LED1OFF'><input class='button' type='submit' value='LED1 OFF' ></form><br>";
String html_4 = "<form id='F2' action='LED1ON'><input class='button' type='submit' value='LED1 ON' ></form><br>";
String html_5 = "<form id='F1' action='LED2OFF'><input class='button' type='submit' value='LED2 OFF' ></form><br>";
String html_6 = "<form id='F2' action='LED2ON'><input class='button' type='submit' value='LED2 ON' ></form><br>";
String html_7 = "</div></body></html>";

String request = "";
int Rl1_Pin1 = 0;
int Rl2_Pin2 = 2;


void setup()
{
  pinMode(Rl1_Pin1, OUTPUT);
  pinMode(Rl2_Pin2, OUTPUT);

  boolean conn = WiFi.softAP(AP_NameChar, WiFiPassword);
  server.begin();

} // void setup()



void loop()
{

  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client)  {
    return;
  }

  // Read the first line of the request
  request = client.readStringUntil('\r');

  if       ( request.indexOf("LED1OFF") > 0 )  {
    digitalWrite(Rl1_Pin1, LOW);
    client.print( html_3 );

  }
  else if  ( request.indexOf("LED1ON") > 0 ) {
    digitalWrite(Rl1_Pin1, HIGH);
  }

  client.flush();

  if       ( request.indexOf("LED2OFF") > 0 )  {
    digitalWrite(Rl2_Pin2, LOW);
  }
  else if  ( request.indexOf("LED2ON") > 0 ) {
    digitalWrite(Rl2_Pin2, HIGH);
  }

  client.flush();

  client.print( header );
  client.print( html_1 );
  client.print( html_3 );
  client.print( html_4 );
  client.print( html_5 );
  client.print( html_6 );
  client.print( html_7 );



  delay(5);
  // The client will actually be disconnected when the function returns and 'client' object is detroyed

} // void loop()

maubarzi

#1
Apr 06, 2019, 11:12 pm Last Edit: Apr 06, 2019, 11:22 pm by maubarzi
Ciao,
in qualità di temporaneo e parziale sostituto, senza portafoglio, del "Sommo moderatore" che si è concesso un po' di svago e di pazza gioia ;)

come prima cosa ti do il benvenuto e poi ti devo chiedere di espletare una piccola formalità che aiuterà tutti i volenterosi che vorranno rispondere al tuo quesito, di farlo nel migliore dei modi.

Lo faccio citando le sue parole:
Quote
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

openSUSE1

Ciao,nn c'è nessuno che mi può aiutare?

fabpolli

#3
Apr 08, 2019, 03:20 pm Last Edit: Apr 08, 2019, 03:22 pm by fabpolli
Se ho capito bene il risultato che vuoi ottenere invece di scrivere sempre queste quattro sezioni della pagina html:
Code: [Select]

  client.print( html_3 );
  client.print( html_4 );
  client.print( html_5 );
  client.print( html_6 );

in base allo stato attuale dei relé scrivi html_3 oppure html_4 e per l'altro relé o html_5 oppure html_6.
Per sapere lo stato dei due relé ti consigliop di usare due variabili booleane che andrai a valorizzare con lo stato attuale del relé e che contemporaneamente ti serviranno per decidere quale sezione di html stampare.

fabpolli

Mi son scordato che quello suggerito è un primo passo da li aggiungere un immagine con il relativo stato è molto semplice se conisci html

openSUSE1

No,linguaggio html no

fabpolli

Intanto inizia modificando il codice che usi in base al suggerumento che ho fornito e vedi se corrisponde alle tue aspettative, poi evoluzioni future si vedranno

Go Up