ESP8266 web server
ESP8266 web server
Zdravím.
https://randomnerdtutorials-com.transla ... _x_tr_hl=c
Takto mám 4 tlačitka.
Bud mužu GPIO přepinat přes ty tlačitka, nebo přes nějaký skript.
http://192.168.1.30/rele1/on
http://192.168.1.30/rele1/off
Jak k tomu dodělat, aby mi to vratili info o GPIO?
Když spustim web stranku takto http://192.168.1.30/info, aby se mi zobrazila prazdna stranka a v ní jen jeden řadek kde bude stav těch GPIO. (1011)
Vim jak na to, ale vždy se mi vykresli i stranka s těma tlačitky.
https://randomnerdtutorials-com.transla ... _x_tr_hl=c
Takto mám 4 tlačitka.
Bud mužu GPIO přepinat přes ty tlačitka, nebo přes nějaký skript.
http://192.168.1.30/rele1/on
http://192.168.1.30/rele1/off
Jak k tomu dodělat, aby mi to vratili info o GPIO?
Když spustim web stranku takto http://192.168.1.30/info, aby se mi zobrazila prazdna stranka a v ní jen jeden řadek kde bude stav těch GPIO. (1011)
Vim jak na to, ale vždy se mi vykresli i stranka s těma tlačitky.
Re: ESP8266 web server
Podívej se na Serial, co ti přesně leze z toho http://192.168.1.30/info za hlavičky, někde v tom bude to info, tak si tam připiš na to test.
Asi jak máš ty if (header.indexOf("GET /5/on") >= 0) { tak tam mužeš dát něco jako
Asi jak máš ty if (header.indexOf("GET /5/on") >= 0) { tak tam mužeš dát něco jako
Kód: Vybrat vše
if (header.indexOf(".../info...") >= 0) { // podle toho, co tam leze
hodnota="xxxx";// to si prostě poskládej nějak, treba
hodnota[0] = digitalRead(output1) ? '1' : '0';
hodnota[1] = digitalRead(output2) ? '1' : '0';
hodnota[2] = digitalRead(output3) ? '1' : '0';
hodnota[3] = digitalRead(output4) ? '1' : '0';
client.println(hodnota);
// The HTTP response ends with another blank line
client.println();
// Break out of the while loop
break;
};
Re: ESP8266 web server
No jo, něco takoveho jsem zkoušel.
Uplně nahoře ma stav těch GPIO a pak celou web stranku.
Ja potřebují aby po zadaní http://192.168.1.30/info, to vykreslilo prazdnou web stranku a jen ten stav GPIO.
Takže pod to cos tu dal přidat k IF else.
Pokud přijde info, vypiše stav GPIO, a pokud ne jde do else a vykresli web stranku.
Uplně nahoře ma stav těch GPIO a pak celou web stranku.
Ja potřebují aby po zadaní http://192.168.1.30/info, to vykreslilo prazdnou web stranku a jen ten stav GPIO.
Takže pod to cos tu dal přidat k IF else.
Pokud přijde info, vypiše stav GPIO, a pokud ne jde do else a vykresli web stranku.
Re: ESP8266 web server
Tak to funguje. Děkují
Re: ESP8266 web server
Zdar.
Ještě jeden dotaz.
Jak docilim toho, aby se mi ta web stranka načitala třeba každou vteřinu furt dokola?
Už jsem to kdysi řešil, ale nemohu najit.
Dik.
Ještě jeden dotaz.
Jak docilim toho, aby se mi ta web stranka načitala třeba každou vteřinu furt dokola?
Už jsem to kdysi řešil, ale nemohu najit.
Dik.
Re: ESP8266 web server
Do hlavičky stránky, tedy mezi <head> a </head> si přidáš
Hodnota atributu content udává čas v sekundách, v tomto případě tedy 10 s.
Kód: Vybrat vše
<meta http-equiv="refresh" content="10">
Re: ESP8266 web server
Děkují, funguje, ale je u toho problem.
Web server je na adrese 192.168.1.40
Zadam do prohližeče a co vteřinu se znovu načita 192.168.1.40.
Když kliknu třeba na 3 tlačitko tak se to v změní
http://192.168.1.40/rele3/off
A furt dokola se spošti http://192.168.1.40/rele3/off
Neda se to pořešit? Aby po kliknutí na ten button se ta stranka vratila na 192.168.1.40.
Děkují.
Web server je na adrese 192.168.1.40
Zadam do prohližeče a co vteřinu se znovu načita 192.168.1.40.
Když kliknu třeba na 3 tlačitko tak se to v změní
http://192.168.1.40/rele3/off
A furt dokola se spošti http://192.168.1.40/rele3/off
Neda se to pořešit? Aby po kliknutí na ten button se ta stranka vratila na 192.168.1.40.
Děkují.
Re: ESP8266 web server
Zkus tohle:
Mezi 10 a url je středník.
Kód: Vybrat vše
<meta http-equiv="refresh" content="10; url=http://192.168.1.40">
Re: ESP8266 web server
No nevim jestli je problem mezi židli a klavesnici, ale i to první mi nešlo.
client.println("<meta http-equiv="refresh" content="10">");
Compilation error: unable to find string literal operator 'operator""refresh' with 'const char [27]', 'unsigned int' arguments
Tak jsem hledal na netu podle toho cos tu dal a vyplivlo to toto a funguje to.
client.println("<meta http-equiv=\"refresh\" content=\"1\">");
U toho druheho je stejna chyba.
A toto projde ale nefunguje. Furt se to protači na http://192.168.1.40/rele3/off
client.println("<meta http-equiv=\"refresh\" content=\"1\"; URL='http://192.168.1.40'>");
client.println("<meta http-equiv="refresh" content="10">");
Compilation error: unable to find string literal operator 'operator""refresh' with 'const char [27]', 'unsigned int' arguments
Tak jsem hledal na netu podle toho cos tu dal a vyplivlo to toto a funguje to.
client.println("<meta http-equiv=\"refresh\" content=\"1\">");
U toho druheho je stejna chyba.
A toto projde ale nefunguje. Furt se to protači na http://192.168.1.40/rele3/off
client.println("<meta http-equiv=\"refresh\" content=\"1\"; URL='http://192.168.1.40'>");
Re: ESP8266 web server
skoro ...Le-Ze píše: ↑18 dub 2024, 10:46client.println("<meta http-equiv=\"refresh\" content=\"1\"; URL='http://192.168.1.40'>");
client.println("<meta http-equiv=\"refresh\" content=\"1; URL='http://192.168.1.40'\">");
když chceš do uvozovek napsat uvozovku, tak musíš rozlišit co je uvozovka od příkazu a co je uvozovka vypisovaného textu pomocí escape znaku \
Serial.print(" " "); <- špatně
Serial.print(" \" "); <- správně
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů