[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 11.01.21
Príspevky: 433
Témy: 188 | 188
Bydlisko: Poprad

WiFi termostat postavený na platforme ESP8266 vznikol ako WiFi variant termostatu k existujúcemu Ethernet termostatu postavenom na platforme Arduino + Ethernet. Cieľom je tak na platforme ESP8266 (testované na platformách NodeMCU v3 Lolin, Wemos D1 Mini) priniesť rovnakú funkčnosť po stránke termostatu a logiky ako takej. WiFi termostat prišiel na konci roku 2020 vo verzii 1.0.2.1, čo je posledná stable verzia termostatu, ktorá vyriešila chyby a umožnila plnohodnotné využitie termostatu.

Do projektu bol integrovaný WiFiManager, ktorý umožňuje nakonfigurovať termostat pre domácu WiFi sieť a spustiť tak aj riadiacu funkcionalitu. Termostat sa snaží o pripojenie na domácu WiFi sieť s údajmi, ktoré má uložené vo flash pamäti - SSID a heslo. V prípade, že tieto údaje nemá, alebo predmetná WiFi sieť nie je v dosahu, prepne sa do režimu AP - prístupový bod a vysiela SSID: WiFi_TERMOSTAT_AP bez hesla (Open WiFi) a umožňuje sa tak pripojiť akémukoľvek zariadeniu v dosahu.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
ESP8266 má aj integrovaný DHCP server, ktorým pridelí IP adresu z rozsahu 192.168.4.0 / 24 (pričom 192.168.4.1 je IP adresa ESP8266 - zároveň brána) a poskytuje na tejto IP adrese HTTP webové rozhranie - Captive Portal pre konfiguráciu WiFi siete v dosahu. Captive portal vie používateľa okamžite po pridelení IP adresy presmerovať na danú IP adresu a to notifikáciou.

Konfigurácia môže prebiehať úplne manuálne - zadaním SSID a hesla manuálne, alebo zvolením si WiFi siete v dosahu (dynamicky obnovuje a vizualizuje webaplikácia WiFiManagera aj s hodnotou RSSI) a zadaním hesla. Nakonfigurovať je možné WEP, WPA / WPA2 - PSK sieť. Podnikové siete štandardu 802.1X (WPA / WPA2 Enterprise) nie je možné konfigurovať cez webové rozhranie WiFiManagera.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
Po nakonfigurovaní a pridelení IP adresy pre termostat v domácej LAN sieti prestáva ESP8266 vysielať vlastnú SSID, prechádza do režimu STA - STATION, teda termostat je plne funkčný a prístupný na príslušnej IP adrese. Výpis je realizovaný v pravidelných intervaloch na UART rozhranie, kde je možné okrem aktuálnej IP adresy priradenej z DHCP vidieť aj informácie o voľnej dynamickej RAM pamäti (Free HEAP), mDNS zázname (tento výpis iba pre mDNS firmvér) a aktuálnej hodnote výstupu.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
Pri prvom spustení termostatu - keď sa v (softvérovo emulovanej) EEPROM pamäti ešte nenechádzajú riadiace informácie, teda hodnota z EEPROM je NaN - Not a number je vykonaný automatický zápis do EEPROM pamäte. Na offset 10 je zapísaná cieľová teplota 20.25 °C, na offset 100 je zapísaná počiatočná hodnota hysterézy 0.25°C. Táto logika pre zápis bola upravená vo verzii 1.0.2.1, nakoľko v predchádzajúcej verzii fungovala zle a nedokázala porovnať float s hodnotou NaN.

Termostat meria teplotu prostredníctvom teplotného senzora Dallas DS18B20 na OneWire zbernici v parazitnom / normálnom zapojení (Normálne zapojenie použité v schéme zapojenia projektu). Rozlíšenie senzora DS18B20 pri meraní je 12-bitov, čomu rozpovedá rozlíšenie na 0.0625 °C. Dáta po OneWire zbernici môžu prísť do mikrokontroléru po ich vyžiadaní za 500 až 1000 ms pri 12-bit rozlíšení.

Logika termostatu sa vykonáva každých 10 sekúnd nezávisle na webovom rozhraní / pripojení klienta. Termostat umožňuje iba prevádzku v automatickom režime, vypnutie / zapnutie termostatu natvrdo - tzv. manuálny režim nie je v tejto free verzii dostupný. Logikou sa porovnáva nameraná teplota s cieľovou teplotou so zohľadnením hysterézy. Termostat vykonáva iba ZAP / VYP reguláciu kotla, nerieši výkonovú reguláciu. Prostredníctvom relé spína riadiaci kontakt pre kotol - nahrádza izbový termostat.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
Ukážkové dáta - logika systému WiFi termostat:
    Cieľová teplota: 22.75 °C
    Hysteréza: 0.25 °C
    Namerané dáta z DS18B20: 21.69 °C
Výstup (výsledok logiky - teplota neklesla pod threshold), ostáva výstup v stave v akom bol t.j. ZAPNUTÝ od dosiahnutia 21.49 °C
Termostat vykuruje od nameranej teploty 22.49 °C a nižšej. V prípade dosiahnutia teploty 23.01 °C sa výstup vypne, signalizačné relé sa rozpojí a plynový kotol prestáva kúriť. Nastáva dobeh vykurovania a chladnutie miestnosti v ktorej sa vykonávajú merania. Termostat sa opäť aktivuje až pri dosiahnutí teploty 22.49 °C, alebo nižšej.

Pre signálový vodič je možné využiť elektromagnetické relé SRD-05VDC-SL-C (max 10A pri 230V), prípadne SSR relé OMRON G3MB-202P (max 2A pri 230V) - možno použiť iba na AC obvody! Pri oboch typoch relé sa využíva active-low signál z mikrokontroléru, ktorý relé zopne. Logický signál 3V3 (operačná logika ESP8266) je dostačujúci pre rozopnutie relé, i keď je relé 5V.

Príklad ZAP / VYP regulácie kotla (vizualizácia z iného projektu):
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
Termostat má vo webovom rozhraní niekoľko webových stránok, ktoré umožňujú výpis dát, prípadne majú jednoduchý backend, ktorý umožňuje spracovať dáta z HTML formuláru, kde je možné zadať nové údaje o cieľovej teplote a hysteréze. Webové rozhranie má tak predovšetkým informatívny charakter, ktorý informuje používateľa o aktuálnom stave výstupov, nameraných hodnôt a taktiež aj o uptime zariadenia, kde je možné vyčítať, koľko hodín, dní zariadenie beží nepretržite.

Stránky bežiace na platforme ESP8266 pre termostat:
    / - root stránka obsahujúca formulár, aktuálny výpis logického výstupu pre relé, teplotu
    /action.html - spracúvava hodnoty z formulára, zapisuje ich do EEPROM pamäte, presmeruje používateľa späť na root stránku
    /get_data.json - distribuuje dáta o aktuálnej teplote, referenčnej teplote a hysteréze tretej strane (počítač, mikrokontróler, iný klient...) v JSON formáte
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
WiFi termostat pre ESP8266 nemá softvérovú podporu pre OTA Web Updater, ktorý umožňuje nahrávať binárny firmvér - skompilovaný program. Z toho dôvodu sa OTA v projekte WiFi termostatu pre platformu ESP8266 nevyskytne, nakoľko je nepoužiteľný s binárnym firmvérom, vyžaduje .ino aplikáciu. Pre ESP32 bude táto možnosť dostupná, firmvér je zatiaľ vo vývoji. Program pre WiFi termostat je šírený zdarma pod MIT licenciou iba v binárnej verzii, t.j. v skompilovanom - spustiteľnom programe .bin.

To znamená, že používateľ môže celú funkcionalitu termostatu využívať, ale nemá prístup k Arduino .ino aplikácii, ktorá je napísaná autorom. Z toho dôvodu sa do verzie WiFi termostatu zdarma nedostala Basic OTA, ktorá umožňuje nahrávať .ino aplikáciu po kompilácii na sieťový COM port. Je súčasťou vyššej verzie, ktorá má viac funkcionalít a prístup k .ino aplikácii.

Nahrávanie programu
Program je možné do ESP8266 nahrať prostredníctvom nástroja ESPTOOL. Nástroj je súčasťou repozitáru projektu WiFi termostat a je pripravený v štýle plug n' play. Nie je potrebná jeho inštalácia. ESPTOOL využíva aj prostredie Arduino IDE pre nahrávanie programu do ESP8266, ESP32 mikrokontrolérov. Firmvér pre termostat je vyhotovený v mDNS a bez mDNS verzie. Firmvér s mDNS verziou obsahuje naviac oproti štandardnej verzii termostatu aj mDNS záznam, čo umožňuje pristúpiť na lokálnej doménové meno a používateľ tak nemusí poznať aktuálnu IP adresu termostatu z DHCP servera.

Doménové meno je wifi-termostat a má postfix .local (v mDNS), teda na termostat s týmto firmvérom je možné pristúpiť prostredníctvom http://wifi-termostat.local/. mDNS služba však musí byť spustená aj na sieti a musí ju podporovať aj zariadenie, ktoré daný request vykonáva! Nástroj ESPTOOL ako Windows aplikácia (.exe) je obsiahnutá vo všetkých firmvéroch. Súčasťou firmvéru je aj .bat spustiteľný súbor, ktorý má prednastavený script a spustenie nástroja ESPTOOL. Dokáže tak plne automatizovane nahrať program do mikrokontroléru.

V spustiteľnom .bat súbore je prednastavený COM port COM7. V prípade potreby je ho nutné prepísať na COM port, ktorý je priradený vášmu ESP8266 (možné zistiť v Správcovi zariadení). Aplikácia sa zapisuje do flash pamäte z offset 0x0. Po nahratí firmvéru sa okno nástroj ESPTOOL automaticky uzavrie. Termostat je pripravený na použitie, stačí nakonfigurovať cez WiFiManager a prevádzkovať.

JSON clients
JSON je formát dát, ktorý distribuuje WiFi termostat na sieťovom umiestnení (screenshot vyššie pre ukážku a formát dát) http://IP_ADRESA_ESP8266/get_data.json. Tieto dáta reprezentujú aktuálnu hodnotu cieľovej - referenčnej teploty, hysterézy a aktuálne nameranej teplote. Dáta môžu byť využité v rôznych ďalších systémoch pre domácu automatizáciu (s pridaním callbackov by bolo možné i termostat ovládať z týchto systémov), napríklad:
    HomeAssistant
    Loxone
    Domoticz
    MQTT Broker - napríklad slovenský Broker zdarma pre vývojárov - IoT Industries Slovakia
Taktiež môžu byť dáta využité iným mikrokontrolérom pre samostatné riadenie na základe získaných dát. Dáta môžu byť odosielané a archivované, napríklad v MySQL databáze. Programová implementácia pre mikrokontrolérové platformy pracujúce v režime JSON clientov sú dostupné pre:
    Arduino + Ethernet Wiznet W5100 / W5500
    ESP8266
    ESP32
Všetky platformy využívajú HTTP GET spojenie prostredníctvom websocketu. Dokážu načítať payload s JSON dátami. Pre Arduino sa využíva 128 B JSON buffer, pre ESP platformy štandardný 512 B - payload má veľkosť cca 80B. Dáta sú po stiahnutí deserializované a hodnoty priradené ku kľúčom sú extrahované a vypísané na UART, čo je celá funkčnosť JSON clienta. Client môže byť rozšírený o používateľskú aplikáciu, ktorá môže dáta odosielať do spomenutého systému s ukladaním dát do MySQL databázy, alebo so zápisom aktuálnych dát do topicu MQTT služby (PubSubClient). Pre všetky platformy existuje programová implementácia so zdrojovým kódom, teda .ino aplikáciou, ktorá môže byť ľubovoľne modifikovaná.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
Webové stránky projektu
Github repozitár projektu WiFi termostat má aj svoje webové stránky hostované cez Github Pages. Táto služba umožňuje hostovať vlastné HTML stránky k projektu pre jeho prezentáciu, ukážku. Stránky obsahujú popis termostatu, príklad ZAP/VYP regulácie s ukážkovým výpočtom, kedy termostat kúri / nekúri. Súčasťou stránok je aj ukážka JSON výstupu, screenshotov z UART monitoru, webaplikácie termostatu.
WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients
V príslušnej podstránke je dostupná elektrotechnická schéma zapojenia spoločne s tabuľkovým zapojením vývodov (vhodné pre laikov, ktorí sa v čítaním schém neorientujú). Ukážka podporovaných senzorov a možných prevedení Dallas DS18B20, popis puzdra, vývodov. Kontaktné informácie na autora WiFi termsotatu, preklik na Ethernet termostat na platforme Arduino. Jednoduchý - heslovitý návod, ako nahrať firmvér projektu do mikrokontroléru na platforme ESP8266. Popis dostupných firmvérov a opis funkcií a podporovaných senzorov plnej verzie projektu WiFi termostat.



Webstránka projektu WiFi termostat: https://martinius96.github.io/WiFi-termostat/index.html
Github repozitár projektu (obsahuje zložku webovej stránky, firmvér pre ESP8266 v .bin, zdrojové kódy pre JSON clientov, schému zapojenia exportovanú z Autodesk Eagle, README popis projektu, licenciu): https://github.com/martinius96/WiFi-termostat/


 [ Príspevok: 1 ] 


WiFi termostat - ESP8266 - 1.0.2.1 - JSON clients



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PCI-e 16x 1.0 1.1 2.0

v Ostatné grafické karty

27

3269

12.02.2010 20:18

P€PoX

V tomto fóre nie sú ďalšie neprečítané témy.

pojdu AMD k. PCIe16 2.0 a 2.1 na doske s PCIe16 1.0 slotom ?

v ATI/AMD grafické karty

0

357

17.12.2011 9:37

CrosS_VamP

V tomto fóre nie sú ďalšie neprečítané témy.

ZMENA USB PORTU Z 1.1 NA 2.0

v Ostatné

4

818

30.12.2008 20:43

Jaro

V tomto fóre nie sú ďalšie neprečítané témy.

PCIe 1.1 vs 2.0

v ATI/AMD grafické karty

6

590

06.03.2010 20:20

eXistenZ

V tomto fóre nie sú ďalšie neprečítané témy.

Repro do 110€ (dilema medzi 2.0, 2.1)

v Ostatné

22

581

12.05.2013 15:44

seco08

V tomto fóre nie sú ďalšie neprečítané témy.

repro 2.1,2.0 akekolvek do 25 eur

v Ostatné

3

420

26.08.2010 19:50

chup44

V tomto fóre nie sú ďalšie neprečítané témy.

2.0 alebo 2.1 kvalitne repro do 4000Sk

v Ostatné

18

1165

24.06.2008 18:01

tommy1104

V tomto fóre nie sú ďalšie neprečítané témy.

Repro 2.1 alebo 2.0 do 35 €

v Audio programy

5

559

05.11.2009 21:22

Respect

V tomto fóre nie sú ďalšie neprečítané témy.

repro 2.0 alebo 2.1 do 4000sk

v Ostatné

5

467

16.01.2009 16:41

MartiN935

V tomto fóre nie sú ďalšie neprečítané témy.

Repro - Soundbar/ 2.1 / 2.0 K TV

v Externé zariadenia

10

1176

03.06.2014 20:52

Smith Wesson

V tomto fóre nie sú ďalšie neprečítané témy.

Reproduktory 2.0 alebo 2.1 ku notebooku

v Zvuk

4

284

13.10.2014 19:23

Patoz

V tomto fóre nie sú ďalšie neprečítané témy.

Reproduktory k NTB 2.1 resp. 2.0

v Zvuk

3

343

12.12.2011 21:54

Qpkqkma

V tomto fóre nie sú ďalšie neprečítané témy.

Repro k PC 2.0 alebo 2.1

v Externé zariadenia

3

380

16.11.2017 19:23

M_i_s_o

V tomto fóre nie sú ďalšie neprečítané témy.

grafika PCI express x16 2.1 na matičnú 2.0

v ATI/AMD grafické karty

3

466

03.03.2012 19:11

Millfox

V tomto fóre nie sú ďalšie neprečítané témy.

2.1 alebo 2.0 k pc 100-150 eur

v Zvuk

18

625

04.04.2013 23:11

Smith Wesson

V tomto fóre nie sú ďalšie neprečítané témy.

Ake repro ? 2.0 alebo 2.1 ?

v Ostatné

1

489

25.10.2012 10:37

brmbo



© 2005 - 2021 PCforum, edited by JanoF