Naša programová implementácia je špeciálne navrhnutá pre mikrokontrólery od renomovaného výrobcu Espressif Systems, ktoré disponujú WiFi konektivitou. Podporujeme mikrokontroléry ESP8266 a ESP32 s WiFi (2,4 GHz) technológiou. Náš WiFi termostat je ľahko prístupný prostredníctvom LAN siete, v ktorej sa nachádza. Je vybavený intuitívnym webovým rozhraním, ktoré umožňuje konfiguráciu všetkých parametrov termostatu a poskytuje vizuálny prehľad o aktuálnych stavoch. Termostat efektívne riadi kotol na základe nameranej teploty, cieľovej hodnoty a definovanej hysterézy, pričom je nezávislý od webovej aplikácie. Webová aplikácia slúži výhradne na konfiguráciu a stanovenie rozhodovacích prahov termostatu. Okrem jednoduchej dostupnosti termostatu na konkrétnej IP adrese je možné pridať mDNS záznam, ktorý vytvára lokálnu doménu (hostname.local). Táto doména je prístupná iba v rámci LAN siete, čo zvyšuje užívateľskú pohodlnosť v rámci multicastovej služby. Konfigurácia termostatu pre domácu WiFi LAN sieť je jednoduchá vďaka WiFiManagerovi, ktorý bezpečne ukladá údaje o WiFi sieti (SSID a heslo) priamo do flash pamäte mikrokontroléra. Tieto údaje sú uložené permanentne, umožňujúc termostatu automatické pripojenie po získaní IP adresy od vášho routra v domácej WiFi sieti. Náš HTTP webserver, bežiaci na mikrokontroléroch ESP8266 / ESP32, umožňuje simultánny beh viacerých nezávislých HTML stránok. Tieto stránky môžu slúžiť nielen informatívnym účelom, ale aj ako funkčné rozhranie, čím zvyšujú využiteľnosť nášho termostatu.
Po hardvérovej stránke projekt využíva:Senzor DS18B20 s rozlíšením 12 bitov poskytuje presné merania s minimálnym krokom teploty 0.0625 °C. Dáta získané cez OneWire zbernicu môžu byť prenesené do mikrokontroléra za 500 až 1000 ms, pričom doba odpovede závisí od počtu pripojených senzorov a dĺžky zbernice. V našom projekte využívame elektromagnetické relé SRD-5VDC-SL-C, ktoré dokáže spínať až 10A pri 230V, čo zodpovedá výkonu 2300W. Pre jednosmerný obvod je možné spínať 300W (10A pri 30V DC). V prípade potreby je možné použiť aj SSR relé OMRON G3MB-202P, ktoré je ideálne pre neindukčné záťaže a určené výhradne pre obvody so striedavým napätím. Jeho maximálny spínaný výkon je 460W (230V, 2A). Termostat, vybavený týmito komponentmi, je vhodný na celoročné používanie. V prípade nevyžadovaného riadenia je možné fyzicky odpojiť výstup a využívať termostat ako WiFi teplomer pre monitorovanie teploty v danej miestnosti.
V prípade, že používate firmware s možnosťou manuálneho ovládania GPIO výstupu mikrokontroléru ESP, je možné termostat fyzicky vypnúť bez nutnosti odpojenia zo svorkovnice relé. Logika termostatu sa vykonáva každých 10 sekúnd nezávisle na webserveri a pripojených klientoch, čo eliminuje potrebu udržiavať keep-alive spojenie. Po vykonaní každej logiky termostat vypíše informáciu o aktuálnej IP adrese a prípadne aj mDNS zázname (v prípade, že je firmware konfigurovaný s mDNS podporou). Týmto spôsobom poskytuje používateľovi údaje o dostupnosti termostatu so svojím webovým rozhraním v rámci LAN siete. Termostat navyše informuje o aktuálnom stave výstupu, vrátane oznamu o akýchkoľvek zmenách. Dynamická voľná pamäť (HEAP) termostatu sa pohybuje v rozmedzí 40 až 44 kB. Výstupná 3,3V operačná logika GPIO mikrokontrolérov ESP8266 a ESP32 postačuje pre digitálny signál zmeny. Je však dôležité mať na pamäti, že relé musí byť napájané 5V z VUSB alebo VIN pre správne fungovanie.
Webové rozhranie pre WiFi termostat umožňuje:V základnej verzii nášho WiFi termostatu (bez mDNS záznamu) sme integrovali manuálny režim ovládania s možnosťou jednoduchého prepínania medzi manuálnym a automatickým režimom. Webové rozhranie je flexibilné a prispôsobuje sa rôznym obrazovkám, či už ide o veľké monitory alebo malé mobilné zariadenia. Je plne responzívne, podporuje širokouhlé obrazovky s vysokým rozlíšením a zároveň je optimalizované pre používanie na mobilných zariadeniach. Rozhranie využíva importované CSS štýly z Bootstrap frameworku, ktoré sú načítané z externého CDN servera pri otvorení stránky bežiacej na mikrokontroléri ESP. Týmto spôsobom minimalizujeme výkonové a pamäťové zaťaženie mikrokontroléra, zabezpečujúc rýchlu a efektívnu funkcionalitu webového rozhrania.
Pre uchovanie nastavených hodnôt termostatu aj po výpadku napájania sme zvolili ukladanie do EEPROM pamäte ESP, ktorá je emulovaná vo flash pamäti. Táto voľba je nevyhnutná, keďže platforma neobsahuje fyzický EEPROM čip (pamäť). V EEPROM pamäti sú uložené referenčná teplota na offsete 10 a hodnota hysterézy na offsete 100. Každá z týchto hodnôt využíva maximálne 5 bajtov v EEPROM pamäti, vrátane ukončovacieho znaku. Dáta sa prepisujú iba pri odoslaní HTML formulára, čo minimalizuje záťaž na EEPROM pamäť a zabezpečuje maximálnu trvanlivosť. Prevádzka termostatu je šetrná k EEPROM pamäti. Stav výstupu existuje výhradne v RAM pamäti, kde sa prepisuje pri každej zmene. Hodnota sa neukladá do emulovanej EEPROM pamäte vo flash pamäti, čo zabezpečuje efektívne a spoľahlivé fungovanie termostatu.
Pri prvom spustení zariadenia bez existujúcich údajov na EEPROM offsetoch automaticky dochádza k zápisu predvolených hodnôt, a to s referenčnou teplotou 20.25 °C a hysterézou 0.00 °C. Toto fail-safe riešenie umožňuje bezproblémový chod termostatu aj na mikrokontroléroch, ktoré nemajú žiadne predchádzajúce údaje v EEPROM pamäti. Pre zápis do EEPROM pamäte používame funkciu EEPROM.put(), ktorá podporuje akýkoľvek dátový typ, a následné potvrdenie zápisu pomocou EEPROM.commit() na cieľový offset. Implementácia využíva dátový typ float() pre 32-bitové číslo, ktoré je uložené v EEPROM a korešponduje s referenčnou teplotou a hysterézou. Webserver vykonáva obnovu celej HTML stránky každých 30 sekúnd prostredníctvom meta tagu Refresh. Zároveň vypisuje pomocou Javascriptu orientačný čas do ďalšieho obnovenia do HTML stránky. Pre zachovanie zmeny pre termostat je dôležité stihnúť ju zapísať do EEPROM pred obnovením stránky, inak sa input okná pre číselné vstupy do formulára resetujú. Vzhľadom na to, že built-in knižnica Ethernet neumožňuje využitie asynchrónneho webservera (čo je možné pri mikrokontroléroch Espressif ESP8266 / ESP32), je nutné prepisovať celú stránku, pretože táto implementácia je 1:1 s pôvodným Ethernet termostatom.
Dynamický údaj, ktorý sa predovšetkým mení je aktuálna hodnota výstupu - Zapnutý / Vypnutý, ktorý informuje prevádzkovateľa o skutočnom stave výstupu spoločne aj s farebným označením. Vzhľadom na to, že logika systému operuje nezávisle na webserveri, môže dochádzať k odlišnému stavu výstupu pred refreshom oproti tomu, čo je aktuálne zobrazené v webaplikácii. Akákoľvek zmena výstupu je okamžite zaznamenaná, napríklad na UART monitore. Na webovej stránke termostatu nájde používateľ aj informácie o uptime zariadenia, teda o tom, ako dlho zariadenie beží, vyjadrené v dňoch, hodinách, minútach a sekundách. Termostat je špeciálne navrhnutý iba pre interiérové teploty nad 0°C, a táto charakteristika sa odráža aj v logike systému. Termostat ponúka možnosť nahradiť existujúci izbový termostat, prípadne dočasne zastúpiť ohrievač v akváriu/teráriu na udržiavanie konštantnej teploty. Je vynikajúcim riešením pre kontrolu a udržiavanie teploty vo vnútri prostredí.
Termostat spúšťa vykurovanie pri teplote 22.49 °C a nižšej. Po dosiahnutí teploty 23.01 °C sa výstup vypne, signalizačné relé sa rozpojí a plynový kotol zastaví vykurovanie. Následne prebieha fáza dobehu vykurovania, ktorá prispieva k chladnutiu miestnosti, kde sa merania vykonávajú. Termostat sa opäť aktivuje až pri dosiahnutí teploty 22.49 °C alebo nižšej, spúšťajúc ďalší cyklus vykurovania podľa nastavených parametrov.
Názov knižnice | Funkcia knižnice | Stiahnuť |
---|---|---|
Dallas |
Knižnica pre mikrokontroléry ESP8266 a ESP32. Umožňuje komunikáciu so senzorom Dallas DS18B20 na OneWire zbernici. Možnosť komunikácie po normálnom, alebo parazitnom zapojení. |
Stiahnuť |
WiFiManager |
Knižnica pre mikrokontroléry ESP8266 a ESP32. Vytvára prístupový bod (AP) a Captive portal pre konfiguráciu WiFi termostatu na domácu WiFi sieť. |
Stiahnuť |
DNS Server |
Knižnica pre mikrokontróler ESP32. Vyžaduje sa pre správne fungovanie knižnice WiFiManager. |
Stiahnuť |