blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



Podpora ESP32 do projektu WiFi termostat
pridal deadawp 1.7. 2021 o 12:27



Projekt WiFi termostat vznikol pôvodne pre mikrokontrolérovu WiFi platformu ESP8266 od Espressifu ako ekvivalent k Ethernet termostatu, ktorý bol postavený na AVR mikrokontroléri ATmega328P použitom v Arduine UNO, na ktorý je možné nasunúť Ethernet shield.  Termostat umožňuje riadenie GPIO výstupu na základe nameranej teploty zo senzora Dallas DS18B20 (s 12-bitovým rozlíšením), cieľovej teploty a hysterézy. Cieľová teplota i hysteréza je konfigurovateľná cez webové rozhranie v HTML, ktoré na mikrokontorléri beží.

Pre WiFi mikrokontróler ESP8266 vznikla aj experimentálna verzia firmvéru termostatu s možnoťou manuálneho ovládania GPIO, čím je možné termostat deaktivovať a používať ho celoročne, napríklad ako teplomer dostupný na sieti na svojej link-local IP adrese, alebo na doménovom mene cez mDNS záznam.

Dlho v projekte nebola podpora pre ESP32, nakoľko bolo problémové na tento mikrokontróler skompilovať firmvér s knižnicou WiFiManager, ktorá je oficiálne dostupná iba pre ESP8266. Release verzie knižnice ani nepočítali s ESP32, avšak vo vývojárskej vetve na Githube je vytvorená zatiaľ neoficiálna podpora pre ESP32, ktorá však funguje bezproblémovo pre konkrétnu aplikáciu.

Úpravou niekoľkých hlavičkových súborov sa mi podarilo použiť identický zdrojový kód z pohľadu funkcií, ktorý je spustiteľný so správnymi hlavičkovými súbormi knižníc na oboch WiFi platformách bez nutnosti úprav v programe. Pre služby webservera som využil triedu Webserver, pozor, často si ju používatelia zamieňajú za WiFiServer, ktorá má pokročilé funkcie pre handling pripojenia ale aj pre prevzatie argumentov, podobne ako pri mikrokontroléri ESP32.

Firmvér pre WiFi termostat pod ESP32 je rovnako ako firmvér pre ESP8266 dostupný v skompilovanom kóde, ktorý stačí nahrať do mikrokontroléru cez nástroj ESPTOOL. Nástroj je možné spustiť ako .py script, alebo ako spustiteľnú .exe aplikáciu cez príkazový riadok, ktorá je dostupná v tomto prípade v priečinku každého firmvéru. 

Určitou zmenou je aj počet argumentov, ktoré sa pre mikrokontróler pri nahrávaní vyžadujú. Pri ESP8266 stačil samotný firmvér, v prípade ESP32 je to však komplikovanejšie a vyžadujú sa 2 binárne súbory bootloadera, tabuľka partícii a samotný firmvér. Každý súbor je zapísaný na určitý (štandardný ofset). Bootloader na 0x1000, tabuľka partícii na 0x8000 a aplikácia na ofset 0x10000. Keďže sa používa tabuľka partícii bez OTA partícii, iné aplikačné partície nie sú do flash pamäte zapísané.

Z pohľadu stability sa mi zdal WiFi termostat pod ESP8266 stabilnejší, nakoľko jeho dynamická pamäť HEAP nekolísala a mala stálu hodnotu. U ESP32 HEAP mierne kolíše v rádoch desiatok bajtov, avšak nakoľko má tento mikrokontróler až 500 kB RAM pamäte, nestalo sa mi, žeby termostat vykazoval známky zaseknutia, nakoľko by ho reštartoval HW watchdog a vynuloval by sa aj uptime na webstránke termostatu, ktorý je viazaný na funkciu millis(), ktorá vracia počet milisekúnd od štartu procesora. 

Od verzie termostatu 1.0.2.X z dôvodu, že prehliadač Google Chrome nedokáže v input poli HTML formulára rozlíšiť desatinné číslo a na mobilných zariadeniach neumožní vložiť čiarku (resp. bodku) pre desatinnú reprezentáciu čísla, využíva termostat naďalej dátový typ text pre pole, aby bol používateľ schopný zadať desatinné číslo.

Na webových stránkach WiFi termostatu pribudol preklik priamo na firmvér v časti "Spustenie WiFi termostatu" na základe cieľovej platformy ESP8266 / ESP32. Firmvér je plne pripravený na použitie, stačí si vybrať jednu z troch podporovaných verzií a postupovať podľa inštrukcií na stránke. Firmvér je validný pre Standalone ESP32 čipy, devkity a vývojové dosky osadené napr. s najpopulárnejším ESP-WROOM-32 / ESP32-S atď...

Aj s WiFi termostatom na ESP32 je možné využiť podporovaných JSON klientov pre pripojenie k tomuto termostatu a získané dáta pushovať na MQTT Broker, alebo do domácej automatizácie (Hassio, Domoticz, Loxone a iné...).

Viac o projekte WiFi a Ethernet termostat, vrátane inštrukcií s popisom možností termostatu môžete nájsť na jeho stránkach: https://martinius96.github.io/WiFi-termostat/



Prístupov 2023
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
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
ULP aplikácie - ESP8266 / ESP32
[ 14.11.2021] (príspevkov 0)
Detekčná charakteristika - MATLAB
[ 8.8.2021] (príspevkov 0)
Práca s obrázkami - MATLAB
[ 19.7.2021] (príspevkov 1)
Flash Encryption a jeho implementácia v ...
[ 18.7.2021] (príspevkov 0)
Secure Boot V1 a jeho implementácia v ES...
[ 13.7.2021] (príspevkov 0)
Senzor Bosch BME280 v prostredí ESP-IDF
[ 8.7.2021] (príspevkov 0)
Podpora ESP32 do projektu WiFi termostat
[ 1.7.2021] (príspevkov 0)
Beamforming vizualizácia - MATLAB
[ 29.6.2021] (príspevkov 0)
Výroba DPS - AISLER - RFID DOMINATOR
[ 18.6.2021] (príspevkov 0)