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.
ESP8266 odesilaní dat
Re: ESP8266 odesilaní dat
Stručná odpověď: Ano.
Obšírnější odpověď: Můžeš použít třeba třídu EthernetClient, viz příklad WebClientRepeating.ino
Obšírnější odpověď: Můžeš použít třeba třídu EthernetClient, viz příklad WebClientRepeating.ino
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Re: ESP8266 odesilaní dat
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?
Zkoušim a někak se to nechce spojit.
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
}
Re: ESP8266 odesilaní dat
S ESP jsem ještě nepracoval, ale podle tebou odkazované dokumentace pro connect se jako argument zadává pouze host z celé URL, tedy
a po připojení se pak podle příkladu zavolá ta zbylá část URL, tedy "/data.php" viz upravený řádek z příkladu:
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.
Kód: Vybrat vše
const char* host = "http://192.168.1.5";
Kód: Vybrat vše
...
client.print(String("GET /data.php") + " HTTP/1.1\r\n" +
...
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
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:
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)
Kód: Vybrat vše
POST /adresa/skriptu/na/serveru HTTP/1.1
Host: nazev.serveru.nekde
parametr=hodnota&jinej=jiná
(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)
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.