Projekt WiFi termostat existuje existuje vo viacerých verziách, ktoré sú dostupné na Githube v repozitári celého projektu. Verzie sa funkčnosťou líšia iba v možnosti prístupu k WiFi termostatu cez doménové meno v mDNS službe a v možnosti manuálneho režimu ovládania výstupu - GPIO. Firmvér je dostupný v skompilovanom - binárnom tvare, ktorý je spustiteľný pre cieľovú platformu. Tým pádom je vopred otestovaný a vyskúšaný pre cieľovú platformu. Firmvér je univerzálny, čo zaručuje, že bude fungovať s klonovaným - binárnym programom na všetkých mikrokontroléroch rovnako. Prístupové údaje k WiFi sieti sú uložené v pamäti ESP32, stačí raz nakonfigurovať, ak už nie je daný záznam uložený z predchádzajúcich projektov.
Názov zložky firmvéru | Funkcie firmvéru | ESP8266 | ESP32 |
---|---|---|---|
WiFi_TERMOSTAT | Termostat s možnosťou nastavenia cieľovej teploty a hysterézy cez webové rozhranie, riadený automaticky | ESP8266 firmvér | ESP32 firmvér |
WiFi_TERMOSTAT_mDNS | Termostat s možnosťou nastavenia cieľovej teploty a hysterézy cez webové rozhranie, riadený automaticky. Možnosť využiť doménové meno v rámci LAN siete (mDNS záznam) | ESP8266 firmvér | ESP32 firmvér |
WiFi_TERMOSTAT_MANUAL_experimental | Termostat s možnosťou nastavenia cieľovej teploty a hysterézy cez webové rozhranie, riadený automaticky. Experimentálna možnosť manuálneho ovládania výstupu SW tlačidlom z webservera. Prepínanie režimov riadenia vykurovania automat / manual. | ESP8266 firmvér | ESP32 firmvér |
Pre nahratie binárneho programu do platformy ESP je potrebné použiť nástroj ESPTOOL. Nástroj využíva napríklad aj prostredie Arduino IDE pre nahratie programu po kompilácii, alebo aj vývojový framework od Espressif Systems - ESP-IDF. Pri platforme ESP32 je potrebné do začiatku procesu nahrávania "Connecting........_____....." držať tlačidlo BOOT, respektíve urobiť pulldown na GPIO 0 (ak doska nemá BOOT tlačidlo vyvedené). V priečinku každého firmvéru je pripravený automatizovaný - spustiteľný .bat script (vzorovo má nastavený COM port mikrokontroléra na COM7 pre ESP8266 a COM17 pre ESP32), ktorý spustí priložený ESPTOOL a vykoná nahratie programu s konkrétnym firmvérom, ktorý sa v danej zložke nachádza.
Cieľový COM port je nutné pozmeniť na základe COM portu, na ktorom sa prihlási vaša doska / mikrokontróler - (možno zistiť cez Správcu periférii a ovládačov, na ktorom COM porte je ESP prihlásené). Mikrokontróler ESP8266 na vývojových kitoch NodeMCU / Wemos D1 Mini má najčastejšie USB-UART prevodník CH340 a pod týmto názvom aj vystupuje v správcovi zariadení. V prípade mikrokontroléru ESP32 je najčastejšie použitý USB-UART prevodník CP2102 od Silicon Labs - označený ako CP210X USB UART Bridge. Programová implementácia pre ESP8266 predpokladá, že má doska nahraté základné časti flash pamäte - tabuľka partícii a podobne... Binárny program je výlučne aplikáciou termostatu bez ďalších pribalených častí programu. Po nahratí programu sa okno programu ESPTOOL automaticky vypne a vykoná softvérový reštart ESP platformy, ktorá následne bootuje nový firmvér a pripravuje WiFi termostat na použitie. Pre mikrokontróler ESP8266 sa firmvér zapisuje na štandardný ofset 0x00000 - (tabuľka partícii nie je súčasťou firmvéru, nie je potrebná). Firmvér pre ESP32 obsahuje naviac aj tabuľku partícii, ktorá sa zapisuje na ofset 0x8000, bootloader na ofset 0x1000. Samotný firmvér je zapísaný na štandardný ofset 0x10000.
V prípade, že v jeho flash pamäti nie sú uložené údaje k existujúcej WiFi sieti (napríklad aj zo sketchu nahratého predtým), začne vysielať vlastné SSID - WiFi_TERMOSTAT_AP. Po pripojení smartfónom / počítačom do tejto WiFi siete je na adrese 192.168.4.1 dostupné webové rozhranie WiFiManager, ktoré poskytuje možnosť konfigurácie WiFi termostatu pre vašu domácu WiFi sieť. V rozhraní je možné zadať meno a heslo existujúcej WiFi siete, na ktorú sa WiFi termostat pripojí.
Po pripojení na domácu WiFi sieť ESP prestáva vysielať SSID, prepne sa do STA (Station) módu a funguje už v režime termostatu, ktorý je možné plne využívať. Zadané údaje o WiFi sieti sú uložené do flash pamäte termostatu a už ich nie je nutné zadávať znova pri opätovnom spustení termostatu, výpadku napájania, reštartu zariadenia. V prípade, že daná sieť nie je dostupná, začne ESP opäť vysielať vlastné SSID: WiFi_TERMOSTAT_AP a opätovne je možné zadať prihlasovacie informácie. Termostat je dostupný na svojej IP adrese (ktorú vypíše každých 10 sekúnd aj na UART), respektíve aj na lokálnom mDNS --> http://wifi-termostat.local za predpokladu, že je použitý mDNS firmvér.