Stránka 1 z 1
ESP8266 odesilaní dat
Napsal: 20 zář 2019, 14:34
od Le-Ze
Zdravím.
By byl dotaz.
ESP8266 ESP-12E, která při připojení klienta, vypiše data přes client.println();
Každou minutu si ty hodnotu stahuje raspberry.
Šlo by to opačně?
Že by každou minutu ty data odeslala ta ESP8266 a na raspi se to uložilo někam do text souboru?
Na raspi mám Lighttpd servr.
Re: ESP8266 odesilaní dat
Napsal: 22 zář 2019, 09:50
od DavidO
Stručná odpověď: Ano.
Obšírnější odpověď: Můžeš použít třeba třídu EthernetClient, viz příklad WebClientRepeating.ino
Re: ESP8266 odesilaní dat
Napsal: 23 zář 2019, 17:07
od Le-Ze
Bych řek že by mi na to měl stačit WiFiClient.
https://arduino-esp8266.readthedocs.io/ ... mples.html
Potřebuji spustit toto stranku
http://192.168.1.5:8181/data.php
A nějak nevim jak na ten port?
Kód: Vybrat vše
const char* host = "http://192.168.1.5/data.php";
WiFiClient client;
if (client.connect(host, 8181))
{
client.println("jsem tu");
}
else
{
// connection failure
}
Zkoušim a někak se to nechce spojit.
Re: ESP8266 odesilaní dat
Napsal: 23 zář 2019, 18:11
od tomasp
S ESP jsem ještě nepracoval, ale podle tebou odkazované dokumentace pro connect se jako argument zadává pouze host z celé URL, tedy
Kód: Vybrat vše
const char* host = "http://192.168.1.5";
a po připojení se pak podle příkladu zavolá ta zbylá část URL, tedy "/data.php" viz upravený řádek z příkladu:
Kód: Vybrat vše
...
client.print(String("GET /data.php") + " HTTP/1.1\r\n" +
...
Ale upozorňuji, že ten příklad uvádí pouze HTTP GET požadavek. Tím si může
ESP vyžádat a stáhnout data z raspberry. Ale ty, jak jsem pochopil, chceš
poslat data data z ESP do raspberry. K tomu potřebuješ požadavek HTTP POST a rovnou do něj zabalit posílaná data (raspberry se je rozbalí a uloží, kam chce).
Takový příklad v dokumentaci není, a ačkoliv by to asi nebylo nemožné, dalo by to dost práce. Lepší by bylo použít nějakou knihovnu pro HTTP Clienta, která má rovnou pro POST podporu.
Re: ESP8266 odesilaní dat
Napsal: 23 zář 2019, 18:56
od DavidO
Nedalo by to moc práce - v GET se parametry píšou rovnou do URI, pro POST/PUT v těle, tj. přidá se jeden prázdný řádek a řádek s datama, baj voko nějak takhle:
Kód: Vybrat vše
POST /adresa/skriptu/na/serveru HTTP/1.1
Host: nazev.serveru.nekde
parametr=hodnota&jinej=jiná
Jestli mě paměť neklame, tak v hlavičce musí být jen řádek s metodou, měl by tam být host a to je snad všechno.
(dokonce by to nejspíš fungovalo i s GET, protože pochybuju, že by to server nebo klient kešoval. Rozdíl mezi POST a PUT v tomhle případě asi moc není, logicky to je podle mě spíš POST, když to je na časovač posílání nových a nových dat, ale prakticky to vyjde nastejno)