Projekt k repozitáru - Github: WiFi termostat
Podporte projekt WiFi termostat cez PayPal. Podpora umožní pridať nové funkcionality v budúcnosti a otvorenie zdrojového kódu aplikácie: PayPal donate
ESP8266 ESP32 WiFi DS18B20 OneWire Dallas HTML Webserver WebSocket JSON mDNS UART

Spustenie projektu WiFi termostat - ESP8266 / ESP32


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.

Free verzia je dostupná iba vo forme skompilovaného - binárneho programu bez prístupu k aplikácii napísanej v .ino formáte.


Rozdelenie firmvéru na základe podporovaných WiFi platforiem


  • ESP8266 - cieľová platforma s čipom ESP8266 vo verzii 12E až 12F (napr. Wemos D1 Mini, NodeMCU) - (podmienené flash metódou DIO)
  • ESP32 - cieľová platforma s čipom ESP-32S (AI-Thinker), ESP32-WROOM-32 (Espressif Systems) - (podmienené flash metódou DIO)

  • Rozdelenie firmvéru na základe funkcie


    Dostupný firmvér (.bin) pre mikrokontroléry ESP8266 a ESP32. Nahrávanie firmvéru sa realizuje cez nástroj esptool - súčasť stiahnutého .zip archívu firmvéru.
    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.

    Správca zariadení v systéme Windows - dostupný mikrokontróler ESP32 na COM porte 17

    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.

    ESPTOOL - nástroj pre nahratie firmvéru do mikrokontroléra ESP8266 / ESP32
    Po úspešnom nahratí binárneho programu - firmvéru je termostat plne pripravený na prevádzku.

    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í.

    Funkcia termostatu je spustená až po pripojení ESP8266 / ESP32 mikrokontroléru do vašej LAN siete! Po pridelení IP adresy pre konektivitu vo vašej sieti.

    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.


    Služba mDNS funguje až po pripojení k existujúcej WiFi sieti. V momente, kedy termostat vysiela vlastné SSID, nie je možné na zariadenie pristúpiť cez doménové meno. V operačnom systéme Windows je nutné povoliť mDNS (Multicast DNS), aby bolo možné na doménové meno s postfixom local pristúpiť! V prípade MacOS je možné službu využívať mDNS doménové meno po doinštalovaní aplikácie Bonjour! Program funguje na základe schémy zapojenia projektu a logiky z popisu.


    Nastavenie WiFi termostatu (ESP8266 / ESP32) cez WiFiManager


    WiFi termostat - ESP8266 AP - Android - pripojenie k sieti

    WiFi termostat - HTTP webserver - funkčný termostat po pripojení k LAN sieti


    Refresh webového rozhrania automaticky každých 30 sekúnd
    Fungujúci WiFi termostat na IP adrese v lokálnej WiFi sieti

    WiFiManager - UART výstup - systémové informácie a výpis logiky


    Výstup na UART automaticky každých 10 sekúnd + meranie teploty na OneWire zbernici senzorom DS18B20
    ESP - WiFi termostat - UART výpis - logika systému - ovládanie kotla, pridelená IP adresa v domácej LAN sieti