PhDr. Mgr. Jeroným Klimeš, Ph.D. 2025-06-12 Vyšlo v Hamíkovi č. 412
Obrázek vlevo je kompletní teplotní relé a vpravo jsou jeho vnitřnosti. To je vyrobeno z modulu ESP8266 (nahoře), relé (dole) a stykače (uprostřed). Jeho hlavní výhodou je, že se dá ovládat přes WIFI čili přes svou webovou stránku. Na ní pak vypisuje všechny potřebné údaje.
Ohřívání vody řeším v domě sériovým zapojením dvou ohřívačů vody, kde prvním je obyčejný bojler Dražice 160 l, který ohřívá vynikající fotovoltaický měnič Bel ing. Zdeňka Budínského z FV panelů. Tato voda teče do plynového kotle, který ji dohřeje, pokud je moc studená.
Problém s klasickým zapojením obyčejného bojleru bylo, že potřebuji tuto vodu ohřívat až 80 °C. Tato teplota není u bojlerů obvyklá. Obvyklá je 60° C, protože při této teplotě vám ještě nesleze kůže z ruky, když se takto horkou vodou polejete. U 80° už je to nebezpečné. Ale já tuto horkou vodu přepouštím do druhého, plynového ohřívače, který ji jen zchladí, stejně jako následné potrubí, takže není se čeho bát.
Zapojení běžného bojleru
|
Legenda 1 - Termostat 2 - Bimetalový tepelný vypínač na 90 - 95°C 3 - Topné těleso (1200 - 2000 W) 4 - Kontrolka provozu - doutnavka 5 - Svorkovnice L - Fázový vodič N - Nulový vodič ⏚ - Zemnící vodič |
V klasickém bojleru je několik pojistek na přehřátí. Jedna na 60° C (to je ten termostat, kterým nastavujete teplotu vody), pak havarijní pojistka, která je nastavená na 90° C. Ta, když se vypne, tak musíte bojler rozšroubovat a ručně ji zapnout. Třetí ochranou jsou různé přetlakové a zpětné ventily, aby bojler nepraskl parou, když selžou relátka a čidla.
Měl jsem problém s havarijní pojistkou, protože občas jsem měl na bojleru vodu přes 80°. Čidlo se vypnulo a mě nebavilo pořád kvůli němu bojler rozebírat. K tomu jsem rozjíveně chtěl mít nějaké pohodlné ovládání přes web, ale ne přes špionážní čínskou apku.
S vyšší teplotou bojleru jsou ještě další komplikace a těmi jsou ty šedé polypropylenové trubky, co vedou horkou vodu z bojleru do umyvadla. Při vyšší teplotě křehnou a mají sklon praskat, navíc při vyšší teplotě se rychleji usazuje vodní kámen. Takže vyšší teplotu než 80 °C nedoporučuji.
Ve spolku www.robodoupe.cz jsem se od chytrých kluků seznámil s ESP32 a ESP8266, viz třeba stránky Martina Lockera z Rychnova nad Kněžnou (https://robotika.vosrk.cz/cs). Já jsem ale nakonec nevyužil protokol ESP-NOW, ale komunikuji přes obyčejnou wifinu. Protokol ESP-NOW je ale zajímavější, protože je nezávislý na wifi routeru. To je tedy taková výzva do budoucna.
Schéma zapojení
Sice se dá koupit ESP8266 už společně s relé, ale já jsem je měl toliko oddělené. Zprvu jsem se bál, že nepůjde napojit 5V relé na ESP8266, které je na 3V logice, ale nakonec to nebyl problém. Příště ale si koupím rovnou ESP8266 s relé.
Relé a ESP mají stejnojmenné kontakty, takže tam bylo propojení přímočaré. Pozor u relé modulu jsou ale funkční jen tři piny: D1, G, 5V, ostatní je mrtvé. Tedy propojení následujících dvou modulů je jen přes tyto tři piny.
Do celého spínače tedy jde dvoje napájení - jednak 5V USB a pak síťové napětí ~240V. Jakmile kterékoli z nich chybí, tak se čidlo odpojí a nepouští do bojleru proud. Naproti tomu, když se jen nepodaří teplotnímu spínači se připojit k Wifině, tak sice nejde ovládat na dálku, ale přesto vykonává nahraný program, tzn. ohřívá vodu na maximálně 80 °C.
Schéma zapojení a úvahy nad stykačem
Měl jsem poněkud jinou verzi ESP8266, viz výše, zde na obrázku chybí 5V pin.
Třífázový stykač je ze šrotu a díky tomu je zcela předimenzovaný. Je v zapojení, které se obvykle používá pro zapojení stejnosměrného proudu, tzn. při vypnutí se dráha proudu trojmo přerušuje. Ale Bel měnič používá střídavý proud, takže toto ztrojení je zbytečné. Prostě kdybych někdy začal napájet bojler přímo z panelů stejnosměrným proudem, tak toto bude fungovat i takto. Jen bych k tomu dodal tento jednoduchý zhášeč oblouku podle Ampéráka:
Na této stránce jsem našel následující vzorce, jen ta kapacita mi přijde malá, vyšší určitě neuškodí:
Symbol |
Hodnota/Vzorec |
Jednotka |
Poznámka/Definice |
P= |
2000 |
W |
Výkon bojleru |
U= |
250 |
V DC |
Napětí FV provazce |
I= |
P/U |
A |
|
I= |
8 |
A |
Proud skrze bojler |
C= |
I^2/10 |
|
Empiricky vzorec (C. C. Bates) |
C= |
6,4 |
uF |
Kapacita kondenzátoru v RC členu |
R= |
U/(10*I*(1+50/U)) |
Ω |
Empiricky vzorec (C. C. Bates) |
R= |
2,6 |
Ω |
Odpor v RC členu (stačí tedy dioda) |
|
|
|
žluté jsou vstupní hodnoty |
|
|
|
zelené jsou vzorce a výstupy |
To tam ale teď nemám, do bojleru pouštím střídavý pulzní proud, ne stejnosměrný.
Když se podíváte na obrázek modrého relé výše, tak je na něm hodnota 10A. Mým bojlerem teče okolo 8 ampér. Takže teoreticky by mělo stačit jen toto relé. Nevím, posuďte sami. Já údaje z opět zas o trochu větší Číny vždy dělím dvěma. Takže 10/2=5A. Takže se bojím toto relé zapojit přímo na 8 A, proto tam mám ten stykač. Ale za zkoušku by to stálo.
Výroba teplotní sondy a čidla
Výroba a kalibrace teplotního čidla byla jednodušší, než jsem čekal, a za to velké díky
této stránce:
https://robotics.snowcron.com/robotics_hardware/ESP8266/06_thermistor_web.htm
Termistor+kabel=teplotní sonda. Sonda+odporový dělič=teplotní čidlo
Termistor je zcela nenápadný odpor (NTC Termistor, THT, 10k, Tmin: -40°C, Tmax: 120°C) za devět kaček. Ten se přiletuje na dvojlinku, sletovaná místa se zabalí do bužírek či teplem smršťovací folie. Na měření vzduchu by to stačilo, ale pokud jej chceme namáčet do vody, tak je třeba ho trochu ochránit.
Ze starého rádia mám ulomenou teleskopickou anténu. Vzal jsem vzal tu nejtenčí trubičku, do které šel zasunout termistor s dvojlinkou. Tu trubičku jsem zmáčkl kombinačkami a škvíru důkladně zaletoval. Zasunul termistor a druhý konec trubičky důkladně zaizoloval.
Bohužel nemám foto své sondy, protože je teď zastrčená do bojleru, ale vypadá skoro stejně jako ta komerční varianta na obrázku výše.
Na červeno-žlutý konec kabelu čidla jsem přidělal odporový dělič, viz schéma vpravo, kde černý drát od odporu 5k je Ground (G). Žlutý drát je pin A0 a červený je jen a pouze na 3,3V pinu ESP.
Kalibrace teplotního čidla metodou nejmenších čtverců
Obyčejný termistor má při teplotě 25 °C asi 10 000 Ω. S teplotou jeho odpor klesá, takže do děliče jsem mu dal druhý odpor o poloviční hodnotě, 5 000 Ω, protože budu měřit vyšší teploty. Střed děliče se zapojí na vývod A0 od ESP8266, čili na analogový vstup, který měří 0-3 V. Krajní póly děliče jsou na zemi (ground, minus) a druhý na 3,3 V.
Chování termistoru popisuje Steinhart-Hartova rovnice:
t = 1 / (A + B[ln(Rth)] + C[ln(Rth)]3) - 273,15 [°C]
kde A, B, C jsou koeficienty. ln je přirozený logaritmus. Rth je odpor termistoru, který se neustále mění podle teploty, proto se jeho hodnota musí dokolečka přepočítávat pomocí rovnice:
Rth=R2* ((Unapájecí / Uvýstupní) - 1);
Odvození rovnice děliče pomocí trojčlenky
Celkové napětí ku napětí na dolním odporu R2 se má jako celkový odpor ku dolnímu odporu R2, protože čím větší odpor, tím větší napětí na něm. Jedná se o přímou úměru:
(Rth + R2) / R2 = Unapájecí / Uvýstupní
(Rth + R2) = R2 * Unapájecí / Uvýstupní
Rth = R2 * Unapájecí / Uvýstupní - R2
Rth = R2 * (Unapájecí / Uvýstupní - 1)
Odvození koeficientů
Musíme mít kalibrační teploměr. K tomu je dobré být ženatý. Od ženy jsem si totiž půjčil její poměrně dobře zkalibrovaný bimetalový teploměr na šunku.
Na zavařovací plotýnku jsem dal hrnec, do vody v něm sondu a teploměr vedle sebe. Jak stoupala teplota, tak jsem po 5° co nejrychleji zapisoval rostoucí hodnoty napětí na čidle s příslušnou teplotou.
naměřená |
hodnota načtená |
spočítané |
spočítaný |
teplota |
čtverce: (tN - tR)2 |
20 |
333 |
1,07 |
11 375,68 |
18,26 |
3,04 |
30 |
440 |
1,42 |
7 274,25 |
29,98 |
0,00 |
35 |
493 |
1,59 |
5 902,03 |
35,35 |
0,13 |
40 |
548 |
1,77 |
4 758,67 |
40,81 |
0,65 |
... |
... |
... |
... |
... |
... |
Sečtením všech čtverců dostaneme sumu čtverců. Pak hledáme takové koeficienty A, B, C, aby tato suma byla co nejmenší. K tomu použijeme Solver v Calcu (v Excelu je taky):
Výsledek byl více než uspokojivý. Posuďte sami pohledem na následující graf. Jinými slovy zkalibrovaná sonda a bimetalový teploměr dávají stejné hodnoty. Naměřené hodnoty jsem nijak neupravoval, jen jsem z fitování vyhodil divnou hodnotu 100°C, viz calcovský soubor níže.
Prostě metoda nejmenších čtverců je jednoduše geniální. Používám ji i v psychologii, např. v tomto článku o zneužívání dětí:
Vlastní soubor Calc pro výpočet koeficientů.
Poznámka pod čarou. Naše levná voda z řadu sice vře v kuchyni už při jen cca 95 °C, ale tady jsem nastavil var symbolicky podle staré definice: var=100 °C.
Historický exkurz: Johann Franz Encke
Johann Franz Encke (*1791 +1865) byl německý astronom a matematik a kolem roku 1820 se zažíná zabývat výpočty kometárních drah, disciplíně, která v té době patřila k počtářsky nejnáročnějším. Ke svým výpočtům používal nové motody, vyvinuté jeho učitelem Gaussem, tzn. metody nejmenších čtverců, pomocí níž bylo možno počítat dráhy z malého počtu pozorování a minimalizovat statistické chyby. Již v roce 1917 se začal věnovat novému zpracování dráhy Velké komety z rukou 1690. Když objevil 26.litstopadu 1818 Pons novou kometu, pokusil se Encke z řady pozorování z různých míst spočítat její parabolickou dráhu. Přes vekeré úsilí však komenta vykazovala tak velké odchylky, že je nebylo možno vysvětlit pozorovacími chybami. Po mnoha pokusech nakonec zjistil ke svému překvapení, že dráha není parabolická, nýbrž že se jedná o elipsu s oběžnou dobou komety 3,6 roku. Navíc se mu podařilo tuto kometu ztotožnit s "jinými" kometami z předchozích let. Lindenau tehdy napsal Enckemu: "Považuji to za nejkrásnější astronomický objev tohoto století. Jste dítětem štěstěny, že se vám to podařilo." V podobném smyslu se vyjádřili i Bessel a Gauss.
Tolik tedy Petr Najser o J. Eckem (Astropis 4/2015) K tomu jen poukáži na to, jak je důležité mít správnou rovnici, kterou na pozorovaná data tzv. fitujete. U nás je to Steinhart-Hartova rovnice, proto to tak hezky vyšlo. Ecke myslel, že je to rovnice šikmého vrhu, tedy parabola, což nefungovalo, až zjistil, že je to klasický Kepler, tedy elipsa. Pak už vše vycházelo jako na drátkách. To, co tehdy dělalo jen pár nejchystřejších matematiků na světě, dnes může díky tabulkovým editorům dělat kdekterý středoškolák.
Programování ESP8266
Dělám v Linuxu (Debian), ale Windows by to mělo taky jít.
Použil jsem Arduino IDE, protože jsem v něm už kdysi dělal. Instalace:
sudo apt install arduino
Vykuchal jsem pár stránek, eklekticky promíchal, takže nic originálního.
https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/server-examples.html
https://robotics.snowcron.com/robotics_hardware/ESP8266/06_thermistor_web.htm aj.
Důležité je ale nastavení:
Musíte mít nastavený správný modul. To si musíte zjistit. Já měl:
LOLIN(WEMOS) D1 mini (clone)
Musíte si ho nahrát do nastavení programu arduino z této stránky:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Musíte mít nastavený port: /dev/ttyUSB0, popř. jiný, který se objeví pro připojení modulu k počítači v adresáři: /dev/
Port můžete sledovat zabudovaným terminálem, já jsem ale používal tento příkaz:
tio -b 9600 /dev/ttyUSB0
Pozor na rychlosti. Já mám nastavených 9600 baudů, ale běželo by to i rychleji.
Zde je vlastní program - termistor_web_na_web_ino.html
Je to funkční, ale neučesané. Chtělo by to pár hodin práce.
Výstup stránky čidla bojleru
V prohlížeči zavoláte stránku http://192.168.0.100/INFO. Ta je ryze textová, dají se přes ní získávat informace, stejně jako nastavovat hodnoty bojleru. Stránka vypadá třeba takto:
Teplota cidla je nyni: 18.79 ℃ (338.00 mV)
Spinana teplota: 80 ℃
Hystereze: 5.00 ℃
Topeni bojleru a LED jsou nyni: Zapnuty
Rucni ovladani je vypnuto
Rucni ovladani neni docasne
Lhuta docasnosti [s]: 20.00
Pocet sekund od zapnuti termostatu (now): 33662, tzn. cca 9 hod.
Tlačítka:
Docasna lhuta:
IP adresa: 192.168.0.100
MAC adresa: 24:52:AD:AA:FA:82
Port tohoto zarizeni je mozno monitorovat po pripojeni do pocitace pomoci prikazu: tio -b 9600 /dev/ttyUSB0 ap.
Ziskat informace z teto stranky muzete z prikazove radky, napr. teplotu vody:
wget -q -S -O - 192.168.0.100 2>&1 | sed -rn "s/^.*je nyni: ([0-9.]*) .*$/\1/p"
22.11
To je konec výpisu webové stránky čidla. Pomocí tohoto programu se nedá nastavit teplota vody vyšší než 90 °C.
Zabezpečení
Stránka není ani trochu málo zabezpečená. Hrozí proto, že špióni ze zase o trochu větší Číny, Ruska či Ameriky se doví, v jak teplé vodě se sprchujeme. Horší je, že v programu jsou nastavené hodnoty pro přihlášení do naší privátní sítě, takže by mohli šmírovat nezaheslovanou komunikaci mezi našimi domácími počítači, popř. se dostat do serveru, byť je t.č. vypnutý.
Kluci z www.robodoupe.cz doporučují středně velkou ostražitost:
Tedy v tomto směru mám co dohánět. Stále se mi nepodařilo fleshnout ten svůj modul, tak snad příště.
Varování
Řídit se jakýmikoli doporučeními z této stránky vyjma metody nejmenších čtverců a trojčlenky přestavuje nezodpovědné hazardování s životem svým či druhých. Autor těchto řádků elektrice zjevně vůbec nerozumí a udělal by lépe, kdyby se raději živil jako psycholog.
Další čtení o fotovoltaice a bastlení
Naše FVE - co jsme si postavili a proč. Výhody, nevýhody. http://fotovoltaika.klimes.us