Projekt k repozitáru - Github: WiFi termostat
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), ESP-WROOM32 (Espressif Systems) - (podmienené flash metódou DIO)

  • Rozdelenie firmvéru na základe funkcie


    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 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 pre port COM7 u ESP8266 a COM17 u 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ý 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é). 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. 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.

    XLoader - Arduino - AVRDUDE - Termostat - Ethernet
    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 WiFi Manager, 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.


    WiFi sieť termostatu v AP režime - Windows Client


    ESP - WiFi termostat - vysielanie SSID pre konfiguráciu na existujúcu WiFi sieť

    WiFi sieť termostatu v AP režime - Android Client


    WiFi termostat - ESP8266 AP - Android - pripojenie k sieti

    WiFi sieť termostatu v AP režime - Captive portal - presmerovanie na konfiguráčnu stránku WiFi Managera


    WiFi termostat - ESP8266 AP - Captive Portal

    WiFi Manager - konfigurácia WiFi siete - hlavné menu - WiFi termostat


    WiFi termostat - WiFi Manager - konfigurácia existujúcej WLAN siete

    WiFi Manager - výber WiFi siete so silou signálu - RSSI - nastavenie hesla


    WiFi termostat - WiFi Manager - konfigurácia existujúcej WLAN siete

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


    Fungujúci WiFi termostat na IP adrese v lokálnej WiFi sieti

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


    ESP - WiFi termostat - UART výpis - logika systému - ovládanie kotla, pridelená IP adresa v domácej LAN sieti