You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
David Zálešák 809282ecd9 update README.md 1 year ago
data added favicon 1 year ago
imgs added http API 1 year ago
.gitignore Initial commit 1 year ago
ESPtermostat.ino otoceni logiky rele 1 year ago
README.md update README.md 1 year ago
config.h.example Added relay control 1 year ago

README.md

ESP8266 - Termostat

ESP8266 Termostat

Jedná se o termostat postavený na ESP8266 s možností připojení na Wi-Fi.

Díky Wi-Fi konektivitě lze termostat ovládat pomocí jakéhokoli jiného zařízení a také lze z termostatu exportovat metriky. Termostat nemusí sloužit pouze k regulaci kotle, ale i jako teplotní čidlo exportující své metriky. Toto lze nastavit v configu.

ToDo list:

  • Zabezpečení (API + JS app)
    • API
    • JS app
    • OTA update
  • API
  • JS app
    • v flash paměti
    • aktualizace
  • OTA update
  • Wi-Fi konektivita
  • Metric export

Hardware

Bylo zvoleno ESP-01. Tento model ESP má vyvedeny 2 GPIO piny.

Termostat obsahuje teplotní čidlo DS18B20, právě kvůli sběrnici OneWire, na kterou lze připojit více čidel.

Ke spínání kotle byl zvolen relay modul, který by bylo vhodné do budoucna nahradit nějakým polovodičem, aby termostat necvakal. Případně při návrhu boardu navrhnout osazení jak relé, tak nějakého polovodiče, který by sloužil ke spínání kotle (volba jumprem).

Termostat je napájen 230v, obsahuje trafo z 230v AC na 3.3v DC.

Config

Před nahráváním programu odmažte příponu .example z názvu souboru config.h.example

mv config.h.example config.h

Termostat může běžet ve dvou režimech, toto se dá nastavit před kompilací pomocí přepínače THERMOSTAT v config.h.

V případě, že je THERMOSTAT nastaveno na 0, tak termostat pouze odpovídá na teplotu a stav relátka pomocí API dotazu, stav relátka lze dotazem na API změnit.

V připadě, že je THERMOSTAT nastaveno na 1, tak termostat odpovídá na všechny API dotazy, ale nelze stav relátka libovolně změnit (ovládání relátka je v režii termostatu)

#define STASSID "SSID"		<- SSID sítě, ke které se má termostat připojit
#define STAPSK  "heslo"		<- heslo k síti, ke které se má termostat připojit

#define DS18B20_PIN 0		<- Číslo pinu, ke kterému je připojeno teplotní čidlo
#define RELAY_PIN 2			<- Číslo pinu, ke kterému je připojeno relé

#define METRICS_EXPORT 1	<- nastavení zda má čislo exportovat metriky (/metrics)
#define THERMOSTAT 1		<- nastavení režimu fungování viz. výše

#define CORRECTION 0		<- nastavení korekce teploty

HTTP API

Zde se „exportují“ metriky pro import do TSDB Prometheus:

http://<ip_address>/metrics

Získání aktuálních hodnot:

Aktuální teplota - vrací aktuální teplotu (float)

http://<ip_address>/get?temp

Požadovaná teplota - vrací nastavenou teplotu (float), pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/get?reqtemp

Rozmezí spínání - vrací v jakém rozmezí termostat spíná ± (float), pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/get?relay

Stav relé - vrací stav relé (boolean)

http://<ip_address>/get?relay

Nastavení hodnot:

Zvětšení požadované teploty - vrací požadovanou teplotu, požaduje float číslo, funguje pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/set?increasereqtemp=0.1

Zmenšení požadované teploty - vrací požadovanou teplotu, požaduje float číslo, funguje pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/set?decreasereqtemp=0.1

Zvětšení rozmení teplot - vrací požadované rozmezí, požaduje float číslo, funguje pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/set?increaseoffset=0.1

Zmenšení rozmení teplot - vrací požadované rozmezí, požaduje float číslo, funguje pouze pokud je nastavení THERMOSTAT 1

http://<ip_address>/set?decreaseoffset=0.1

Nastavení stavu relé - vrací potvrzení o nastavení, požaduje boolean (0/1), funguje pouze pokud je nastavení THERMOSTAT 0

http://<ip_address>/set?relay=0