blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



MasterTherm - webscraper ESP32
pridal deadawp 25.11. 2023 o 9:33 (naposledy upravené 25.11. 2023 o 19:58)



Dnes si ukážeme zaujímavý web scraping dát pre tepelné čarpadlo AirMaster od MasterThermu. Dané čerpadlo disponuje webserverom s jednoduchou HTML stránkou, ktorá reportuje stavy a zároveň umožňuje nastavovať aj dáta. Samotná stránka obsahuje HTML element, ktorý vykonáva refresh celej stránky každých 30 sekúnd, ak to nevykoná používateľ tlačidlom. Rozhranie je veľmi jednoduché, avšak prehľadné. Webserver je štandardne prístupný z LAN siete na privátnej IPv4 adrese, pričom všetky úrovne pre zmeny, view vyžadujú HTTP Basic Auth autorizáciu klienta.

Samotný webový portál umožňuje však okrem čítania dát aj ich zmenu prostredníctvom podstránky. Pre zmenu týchto stavov je však vždy nutné byť pri počítači, či smartfóne pre nastavenie potrebných dát. Preto, pri potrebe riadenia napr. z externého teplomera, či podľa inej logiky môžeme využiť mikrokontróler ESP32, ktorým môžeme scrapovať aktuálne dáta a prenášať ich aj do iných platforiem (napr. Hassio, Thingspeak, Thingsboard, Blynk, či do vlastného portálu s databázou). Taktiež môže mikrokontróler aj zapisovať iné dáta, avšak toto nebudem pokrývať pre tento tutoriál.

ESP32 vyžaduje spustenie WiFi klienta, pričom vykonáva štandardný HTTP GET request na webstránku tepelného čerpadla AirMaster, musí sa však autorizovať cez HTTP Basic Auth s využitím mena a hesla. Dané údaje sú enkódované v tvare username:password do base64 reťazca, ktorý sa v príslušnej hlavičke Authorization: Basic posielajú serveru. Ak sa klient pripojí na server, začne sa načítavať webstránka riadok po riadku. Na každý riadok sa vykonáva parsing dát, pričom na základe štruktúry HTML kódu sa hierarchicky vypíšu číselné hodnoty jednotlivých nastavení.

Ukážka jednoduchosti štruktúry HTML kódu:
Teplota Nastriku:-2.6°C
Teplota Vytlaku Kompresoru:73.4°C
Zadana teplota topne vody:40.0°C

Nakoľko spracovávame dáta hierarchicky riadok po riadku, môžeme ich aj rovno v slučke odosielať na jednu z populárnych IoT služieb, kde budú zapísané do databázy. Žiadny riadok nie je preskočený a tak sa nestane, žeby sa dáta nezapísali, alebo v zlom poradí. Postupnosť koreluje s labelmi na stránke MasterThermu. Okrem ESP32 s WiFi môžete využiť aj ESP8266, či Arduino s Ethernetom. Možnosť použitia PHY Ethernetu platí aj pre ESP32.

Samotný parsing dát sa realizuje cez strtok() funkciu, ktorá umožňuje orezať načítaný reťazec, teda odstráni oba párové tagy td, medzi ktorými sa nachádza naša informácia - číslo int, respektíve float. Taktiež je nutné zbať pri výbere terminátorov pre strtok() funkciu aj to, či neobsahujú aj nejaké parametre, ktoré môžu uľahčiť parsing dát. 

V minulosti som už vytvoril scraper napr. aj pre overenie ŠPZ automobilu, či nie je v pátraní, ktorý mohol získavať dáta o ŠPZ cez UART, alebo aj s využitím OpenAI z kamery. Zdrojové kódy pre daný scraper nájdete na Githube: https://github.com/martinius96/WebScraper-ESP

 



Prístupov 5028
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Update grafov, ukážkových kódov - Hladin...
[ 16.11.2024] (príspevkov 0)
XIAO ESP32-C6 od Seeed Studio
[ 10.11.2024] (príspevkov 0)
ESP-IDF v4.4.2 prechod na v5.2
[ 5.11.2024] (príspevkov 0)
Krabička pre RFID DOMINATOR 2.0
[ 18.10.2024] (príspevkov 0)
Známe neduhy - Ecotec 1.6E Opel/GM Chevr...
[ 8.10.2024] (príspevkov 0)
Cold-start BQ25570 vs BQ25504 od Texas I...
[ 2.8.2024] (príspevkov 0)
EG21-G - MQTT pripojenie na Thingsboard
[ 5.6.2024] (príspevkov 0)
Quectel EG21-G - HTTP request
[ 17.5.2024] (príspevkov 0)
Tip na darček k jubileu 60
[ 29.4.2024] (príspevkov 0)