Problém s odesíláním dat do Google Tabulek

Odpovědět
michalekuba
Příspěvky: 12
Registrován: 27 kvě 2018, 22:47
Reputation: 0

Problém s odesíláním dat do Google Tabulek

Příspěvek od michalekuba » 22 bře 2019, 15:06

Zdravím

předem se omlouvám, jestli jsem tento dotaz zařadil do nevhodné kategorie.

Rozhodl jsem se použít u své meteostanice (WeMos D1 Mini, BME280, CCS811, BH1750), která každých 15 minut odesílá data ze senzorů do Google Tabulky na mém Google Disku, knihovnu WiFiManager pro nastavení připojení k Wi-Fi síti, protože mi to přijde jako elegantnější řešení, než nastavovat SSID a heslo natvrdo v kódu.

Předtím jsem si ale chtěl knihovnu a její funkci vyzkoušet nanečisto v ukázce „AutoConnect,“ takže jsem si našel jeden volný ESP, který jsem zde měl, a pokusil jsem se do něj ukázku nahrát. Těsně před koncem kompilace programu na mě však vylezla tuna chyb, a vzhledem k tomu, že čím víc chyb v konzoli je, tím míň se mi je chce řešit, jsem je ani neřešil, co jsem ale zkusil, byla aktualizace podpory desek ESP v Arduinu IDE na verzi 2.5.0 (používal jsem starší verzi 2.3.0 kvůli nekompatibilitě knihoven). Po aktualizaci se překvapivě program přeložil bezchybně, já jej nahrál, otestoval jsem, že funguje a pak už jsem se jal tenhle kousek kódu dodat do kódu mé meteostanice (https://pastebin.com/jTm9rQvj).

Poté, co jsem kód meteostanice zkompletoval tak, že v něm byl WiFiManager, jsem kód nahrál do čipu. Vše proběhlo bez problémů, avšak po nastavení Wi-Fi připojení a otevření sériové linky na mě vyskočila zpráva, že se data nepodařilo odeslat do Tabulek (v kódu je to ta část „Chyba spojeni“ a „Nepodarilo se odeslat data do Google Tabulky“). Abych pravdu řekl, hned zpočátku jsem měl podezření na onu právě aktualizovanou podporu ESP desek, takže jsem zkusil zakomentovat WiFiManager, nastavit natvrdo Wi-Fi SSID a heslo, downgradnout ESP podporu na původní verzi 2.3.0 a znovu nahrát kód – heuréka, teď fungovalo odesílání do Tabulek bezchybně… ovšem nastal problém: pokud budu používat ESP core ve verzi 2.3.0, nebudu moct používat WiFiManager v aktuální verzi, neboť ten si se starší podporou ESPček prostě nerozumí.

Můj dotaz tedy zní: Jak docílit správného odesílání dat do Tabulek ve verzi 2.5.0? Podotýkám, že fingerprint jsem do kódu dodat zkoušel, stejně tak použít WiFiClientSecure.setInsecure(), bohužel ani jedna možnost nepomohla. Mohl bych Vás poprosit o radu, případně o nějaké vysvětlení, proč se to chová tak, jak se to chová?

Moc díky, JM.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Problém s odesíláním dat do Google Tabulek

Příspěvek od martinius96 » 22 bře 2019, 15:41

Ahoj. Verzia 2.5.0. pre ESP8266 je veľmi podobná s aktuálnym Arduino core pre ESP32. Fingerprint bol nahradený (ak aj zadáš zlý fingerprint na 2.3.0, pripojíš sa na akúkoľvek stránku na HTTPS). Cieľom bolo dosiahnuť vyššiu bezpečnosť a to možnosťou overenia certifikačnej autority (minimum, ktoré sa používa), alebo aj overenie klienta preukázaním jeho certifikátu. U ESP8266 sú to práve BearSSL knižnice, respektíve... skôr objekty pre WifiClientSecure knižnicu ale na nakonfigurovanie sú dosť obtiažne. Osobne s tým nemám skúsenosť. Ale zasiahlo ma to minulý týždeň, keď chcel pán vyskúšať projekt a odpoveďou bolo, že to nefunguje a že ESP sa na stránku nepripojí. Používam 2.5.0. a program pre 2.3.0. Pri prechode späť bez problému. Riešením by možno bolo vyskúšať HTTPClient.h knižnicu namiesto WifiClientSecure.h https://github.com/esp8266/Arduino/tree ... t/examples.

Ak sa nič nezmenilo u tejto knižnice, pripojíš sa na HTTPS i bez certifikátu, ktorý by si musel do kódu zadávať a následne ho aplikovať. Pri WifiClientSecure pre ESP8266 i pri ESP32 sa používa certifikát najvyššieho, teda certifikačnej autority. Certifikát certifikačnej autority sa dá nájsť v .pem formáte (ten portuješ) napríklad v tejto tabuľke prehliadača Mozilla, sú v ňom predinštalované, je tam 99% certifikačných autorít pre webové stránky: https://ccadb-public.secure.force.com/m ... portPEMCSV.

michalekuba
Příspěvky: 12
Registrován: 27 kvě 2018, 22:47
Reputation: 0

Re: Problém s odesíláním dat do Google Tabulek

Příspěvek od michalekuba » 22 bře 2019, 16:08

Abych pravdu řekl, takhle rozsáhlou odpověď jsem nečekal, trošku jsem se v ní ale poztrácel (občas je třeba mi některé věci vysvětlit trochu polopaticky). Každopádně, pokud jsem to tedy správně pochopil, tak nejsem jediný, komu se tohle děje a řešením by bylo použít knihovnu HTTPClient.h - nebyl by prosím nějaký odkaz k tomu odesílání do GS právě s touto knihovnou? Díky.

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Problém s odesíláním dat do Google Tabulek

Příspěvek od martinius96 » 22 bře 2019, 21:58

Skús sa odraziť od example predpisu pre HTTPS request s HTTPClient knižnicou: https://github.com/esp8266/Arduino/blob ... Client.ino
Zdá sa, že budeš potrebovať iba fingerprint.
Myslím si ale, žeby fungovalo i toto: https://github.com/esp8266/Arduino/blob ... Client.ino len namiesto http:// dáš https:// a možno by to šlo i bez fingerprintu a certifikátu, ale s verziou 2.5.0. nerobím, neviem ti dať presnú odpoveď.
V pôvodnom programe teda potrebuješ vyhodiť WifiClientSecure knižnicou, metódy typu: klient WifiClientSecure objektu, všetky klient.connect, klient.print funkcie a nahradíš to vlastne časťami z toho HTTPClient príkladu. Musíš si len dáta vložiť do https.begin funkcie.

michalekuba
Příspěvky: 12
Registrován: 27 kvě 2018, 22:47
Reputation: 0

Re: Problém s odesíláním dat do Google Tabulek

Příspěvek od michalekuba » 23 bře 2019, 14:42

No, vyzkoušel jsem obě z uváděných knihoven, ale bohužel ani u jedné se mi nepodařilo to odesílání dat do GS zprovoznit. Vypadá to, že od verze 2.4.0 v tom někdo něco změnil a upřímně, zkoumat, kde je co změněno tak, že to nefunguje, se mi moc nechce. Takže to prostě budu provozovat na verzi 2.3.0 se starším WiFiManagerem 0.12, technicky to ničemu nevadí a hlavně to spolehlivě funguje.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů