Stránka 1 z 2
ESP8266 web server
Napsal: 19 úno 2024, 11:10
od Le-Ze
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.
Re: ESP8266 web server
Napsal: 19 úno 2024, 19:23
od gilhad
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
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
Napsal: 20 úno 2024, 07:48
od Le-Ze
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.
Re: ESP8266 web server
Napsal: 21 úno 2024, 08:02
od Le-Ze
Tak to funguje. Děkují
Re: ESP8266 web server
Napsal: 17 dub 2024, 21:56
od Le-Ze
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.
Re: ESP8266 web server
Napsal: 18 dub 2024, 08:55
od Pablo74
Do hlavičky stránky, tedy mezi <head> a </head> si přidáš
Kód: Vybrat vše
<meta http-equiv="refresh" content="10">
Hodnota atributu
content udává čas v sekundách, v tomto případě tedy 10 s.
Re: ESP8266 web server
Napsal: 18 dub 2024, 09:30
od Le-Ze
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í.
Re: ESP8266 web server
Napsal: 18 dub 2024, 09:38
od Pablo74
Zkus tohle:
Kód: Vybrat vše
<meta http-equiv="refresh" content="10; url=http://192.168.1.40">
Mezi 10 a url je
středník.
Re: ESP8266 web server
Napsal: 18 dub 2024, 10:46
od Le-Ze
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'>");
Re: ESP8266 web server
Napsal: 18 dub 2024, 14:35
od kiRRow
skoro ...
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ě