FOHB+OPTI+SLPW = Filtrace a Ohřev Bazénu + Optický interface + Solární bateriový zdroj

Jedná se o úplně první projekt, kterým jsem znovu oživil svoje domácí „bastlení“. Snad právě proto obsahuje spoustu věcí, které nejsou bezpodmínečně nutné. Chtěl jsem si u tohoto prvního projektu prověřit několik různých variant možného řešení. Samotné využití Arduino Mega pro tento projekt považuji za to „Jít s kanónem na komára“, ale s něčím se začít musí. A když už je to jednou hotové, komu by se to chtělo znovu předělávat.

To jsem si myslel až do doby, kdy jsem omylem celý systém připojil k napětí 24V místo standardních 5V. Centrální chip se rozletěl na několik kousků. A to byl začátek modelu FOHB02. Jako řídicí modul jsem pro verzi FOHB02 využil ESP32.

V roce 2023 jsem zvýšil bezpečnost celého systému. Výkonovu část, která ovládá spouštění čerpadla filtrace, čerpadla ohřevu a osvětlení bazénu, jsem galvanicky zcela oddělil od řídicí elektroniky.

Propojení výkonové a řídicí části zajišťuje optický interface. Mezi jednotlivými bloky se ovládací signály přenášejí pomocí optických kabelů. Viz několik obrázků v galeriích na konci stránky.

Elektronika je nyní napájena pomocí modulu solárního napájecího zdroje (SLPW). V žádném případě se tak nemůže stát, aby se na teplotní senzory, které jsou ponořeny ve vodě bazénu, dostalo nebezpečné napětí. Viz několik obrázků na konci stránky.

Projekt FOHB01(02) (filtrace a ohřev bazénu)

Zadání projektu:

  • Zajistit filtraci bazénu a nahradit tak stávající systém spínání čerpadla filtrace spínacími hodinami.
  • Ke standardnímu sytému filtrace bazénu jsem doplnit samostatný okruh ohřevu bazénu. Tento systém proto musí zajistit spínání čerpadla ohřevu v okamžiku, kdy teplota v solárním panelu ohřevu bude vyšší, než teplota vody v bazénu.
  • Při dosažení maximální teploty vody v bazénu se už nebude čerpadlo ohřevu spouštět.
  • V případě, že okolní teplota klesne pod teplotu zamrznutí, systém automaticky spustí čerpadlo filtrace. Tím zabrání případnému zamrznutí drobných kapilár v panelu ohřevu. Využije se v jarních a podzimních měsících, kdy je ohřev naplněn vodou, ale ranní teploty mohou klesat pod bod mrazu.
  • Systém se současně využije pro ovládání světla v bazénu a světla na zahradním domečku.
  • Uživatelské ovládání pomocí dotykové klávesnice, IR dálkového ovládání, případně pomocí webové nebo mobilní aplikace.
  • Komunikace v lokální síti pomocí TCP/UDP protokolu s vlastní sadou komunikačních příkazů.

Řešení projektu:

  • Wemos Arduino Mega + ESP 8266 na jedné vývojové desce
    • (ve verzi 02 nahrazeno ESP32)
  • OLED Displej 0,91″, rozlišení 128 x 32 pixelů
    • (ve verzi 02 nahrazeno OLED displej 128 x 64 pixelů)
  • Teplotní čidla Dallas DS18B20 ve vodotěsném provedení
    • měření teploty vody v bazénu
    • měření teploty vzduchu na hladinou bazénu
    • teplota vody na vstupu do solárního ohřevu
    • teplota vody na výstupu ze solárního ohřevu
    • teplota venkovního vzduchu (původně jsem použil DHT11, ale neosvědčilo se do venkovního prostředí)
  • RTC DS1307 – obvod reálného času pro I2C sběrnici
    • v modelu FOHB02 je obvod doplněn dalším teplotním čidlem DS18B20, které snímá teplotu uvnitř modulu
  • TTP223 – kapacitní dotykové senzory pro snímání ovládacích tlačítek
    • ESP32 obsahuje několik pinů, které je možné použít pro připojení dotykových senzorů. Mechanicky jsem tlačítko jednoduše vyřešil pomocí připínáčku. Ten jsem přímo připojil na vstupní pin ESP32.
  • HX1838 – modul dálkového IR ovládání
  • Modul 4 mechanických relé, která slouží pro spínání čerpadel a světel. Relé spínají pomocná relé v rozvaděči bazénové technologie. Nejsou dimenzována na potřebnou zátěž pro přímé spínání světel a čerpadel.
    • Ve verzi FOHB02 jsou relé nahrazena FET, které pak spínají pomocná relé v rozvaděči.
  • Kvůli zajištění absolutní bezpečnosti je měřicí část napájena pouze z 12V baterie. Součástí této měřicí části jsou teplotní senzory, které jsou ponořeny přímo ve vodě bazénu. Dobíjení baterie zajišťuje solární panel. Kapacita baterie je volena tak, aby po případném odpojení solárního panelu zajistila chod celého zařízení po dobu cca 6 dnů. Měřící bateriově napájená část je s výkonovou částí, která zajištuje spouštění čerpadel a rozsvěcení světel , propojena pomocí optických vláken.
  • Sada RGB LED pro signalizaci stavu systému. (Arduino Mega disponuje velkým počtem digitálních I/O portů, proto jsem si mohl dovolit pro ovládání LED vyčlenit 4 x 3 = 12 digitálních pinů)
    • ESP32 má menší počet datových pinů. Abych mohl zachovat signalizaci pomocí RGB, použil jsem dva I2C expandéry, které rozšířily počet digitálních pinů.
  • Hardwarově jsou do výsledného funkčního celku vzájemně propojeny samostatné funkční celky. K tomuto propojení jsem vytvořil shield Board, který vzájemné propojení bloků zajistil. Schéma nemá smysl uvádět, jde jen o vzájemné propojení konektorů. Protože se jedná o funkční prototyp, jsou některé součástky (signalizační LED) propojeny stylem „vrabčí hnízdo“.
  • Plošný spoj vyrobil na zakázku pan Hájek www.plosnaky.cz

Zajímavosti:

Uživatelské menu, které se zobrazuje na vestavěném displeji.

  • Dvouřádkový displej zobrazuje několikaúrovňové uživatelské menu.
  • Program využívá dvě globální proměnné, které určují aktuální pozici ve struktuře uživatelského menu. Na základě vyhodnocení těchto proměnných se na displeji zobrazují odpovídající údaje.
  • Kliknutím na šipku vlevo/vpravo se změní hodnota Menu_Col a tím určí hlavní položku ve zvolené nabídce.
  • Kliknutím na šipku nahoru/dolů se změní hodnota Menu_Row a tím určí podřízenou volbu v hlavní zvolené položce nabídky.
  • Dlouhým stiskem šipky nahoru si systém zapamatuje aktuálně zvolené menu a vrátí se k němu vždy při novém rozsvícení displeje.
  • Displej se automaticky vypíná po několika sekundách. Pokud by displej svítil trvale vypálí se do něj dlouhodobě zobrazený motiv.
  • Při sepnutí relé pro ovládání čerpadla ohřevu náhodně docházelo k „zamrznutí“ celého systému.
    • Myslel jsem, že to může být způsobeno velkým množstvím string proměnných, které by po čase mohly způsobit zamrznutí. Všechny string jsem převedl na array of char[], ale ani tímto jsem problém nevyřešil.
    • Watchdog v tomto případě taky nefunguje. Uvažoval jsem o externím watchdog, který by sledovat aktivitu na zvolenému datovém pinu. Pokud pulzy zmizí dojde k resetu celého zařízení.
    • Zdrojem může být i rušení při spínání relé. Proto jsem oddělil napájecí větve vývojové desky a bloku relátek, ale ani tímto se problém nevyřešil. Uvažuji o náhradě standardních mechanických relé polovodičovým SSR.
    • Abych v současném stavu zajistil spolehlivý chod celého zařízení pravidelně (4x denně) ho restartuji. K tomu jsem využil původně použité spínací hodiny, které 4x denně na 1 minutu celé zařízení vypnou.
    • Celý problém se vyřešil přechodem na verzi FOHB02. Pomocná relé jsem nahradil FET tranzistory, což odstranilo potenciální rušení elektroniky.
  • Neosvědčilo se mi použití dotykových tlačítek. Během léta je uvnitř zahradního domečku více jak 50°C a při této teplotě se tlačítka začínají samostatně spínat.
    • Ve verzi FOHB02 jsem využil piny ESP32, které jsou přímo určeny pro připojení dotykových tlačítek. Zatím jsem u nich nezaznamenal žádné problémy.

Zapojení teplotních čidel

  • každé teplotní čidlo je připojeno k samostatnému datovému pinu. (I když teplotní čidla umožňují připojení na jeden společný datový pin). Tímto způsobem je zajištěna možnost výměny vadného čidla za nové bez nutnosti úpravy firmware. Předpokládám, že čidla, která jsou trvale pod vodou nebo ve venkovním prostředí bude nutné občas vyměnit.
  • Teplotní čidla v bazénu jsou cca 10 m daleko od bloku elektroniky. Propojení teplotních čidel s vyhodnocovací elektronikou je realizováno pomocí UTP kabelu. Využil jsem úplného třívodičového připojení čidel. Datový vodič a napájecí nulový vodič jsou připojeny na jeden pár kroucené dvojlinky. Napájení 5V teplotního čidla je vedeno samostatným párem kroucené dvojlinky.

Projekt OPTI (optický interface)

Zadání projektu:

  • Zajistit vyšší elektrickou bezpečnost. V předcházející verzi byl blok elektroniky napájen přímo ze síťového napájení. V případě poruchy existovala možnost, že by se napětí prostřednictvím senzoru teploty mohlo dostat přímo do vody. Celý systém byl sice jištěn proudovým chráničem, ale pokud se v bazénu koupou děti, tak se žádná ochrana nezdá dostatečná.

Řešení projektu:

  • Nejdříve se celé řešení zdálo triviální. Na straně řídicí elektroniky použiju optický vysílač, na straně výkonové použiju optický přijímač a celé to propojím optovodičem. Prostě řídicí elektronika rozsvítí LED, světlo se přenese a výkonová část sepne odpovídající světlo nebo čerpadlo.
  • Nakoupil jsem součástky a zjistil, že mi to vůbec nefunguje tak, jak jsem předpokládal. Světlo LED se krásně přenášelo, ale čerpadlo se sepnulo na 1 sekundu a konec. Když jsem optovodič vytáhnul a zase připojil, znovu se čerpadlo na 1 sekundu spustilo.
  • Příčinou bylo to, že použitý optický přijímač neuměl pracovat ve statickém režimu. Přenášené světlo muselo být modulováno určitou frekvencí. Nezbývalo tedy, než celý systém přestavět. Testováním přijímače při různých frekvencích signálu jsem našel optimální frekvenci pro spolehlivý přenos.
  • Průběh při frekvenci 3kHz
  • Průběh při frekvenci 140 kHz
  • Do řídicí části jsem přidal jednoduchý oscilátor a logická hradla, která se na základě řídicích signálů otevírala a pouštěna průběh z oscilátoru na optický vysílač.
  • Na straně přijímače jsem pomocí několika logických obvodů (čítače, hradla) sestavil vyhodnocovací logiku. V případě, že během přesně určené doby přijde z optického přijímače určitý počet pulsů, považuje se to za stav sepnuto. Pokud je frekvence nižší (zlomený optovodič) nebo vyšší (nečekaný rušivý signál) považuje se to za stav vypnuto.
  • Schéma vysílací části
  • Schéma přijímací části

Projekt SLPW (solární bateriový modul)

Zadání projektu:

  • Zajistit bezpečné napájení řídicího systému FOHB02
  • Jako zdroj energie využít solární panel
  • Záložní baterie musí být schopna systém napájet minimálně jeden týden v případě nefunkčního solárního panelu
  • Mít možnost sledovat parametry modulu: napětí s proud solárního panelu, napětí a proud záložní baterie, napětí a proud zátěže.

Řešení projektu:

  • Solární bateriový zdroj jsem sestavil z běžně dostupných komponent.
  • Baterie, solární panel a řídicí PWM modul jsem sestavil dle doporučení výrobce.
  • Navíc jsem chtěl sledovat parametry (napětí a proud)v jednotlivých větvích PWM modulu.
  • Pro snímání proudu jsem použil modul snímače proudu s obvodem ACS712
  • Přemýšlel jsem jakým způsobem snímat napětí jednotlivých větví. Nikde jsem nenašel, jestli jsou kladné nebo záporné svorky jednotlivých větví vnitřně propojené. Proto jsem si nemohl dovolit spojit tyto svorky ani ve snímací elektronice. Odporové děliče pro snímání napětí jsem tedy použil jak pro kladnou tak pro zápornou svorku každé větve. Výsledné napětí je tak rozdílem těchto dvou naměřených hodnot.
  • Bude tedy potřeba měřit minimálně 9 analogových hodnot. PWM modul má tři větve : solární panel, baterie a zátěž. V každé větvi měříme proud (převeden na napětí pomocí ACS712), napětí kladné svorky a napětí záporné svorky.
  • Všechny analogové hodnoty jsem přes 16 kanálový analogový multiplexer přivedl na jediný analogový vstup řídicího obvodu ESP8266.
  • Řídicí obvod zajistí měření všech hodnot a v pravidelných intervalech odesílá data do SQL databáze internetového serveru.
  • Při sledování hodnot jsem neřešil mobilní aplikaci. Průběhy je možné zobrazit kliknutím na odpovídající tlačítka v horní části této stránky. Přístup k měřeným hodnotám je chráněn heslem. (Takže ne pro všechny)
  • V galerii na konci stránky je několik obrázku z průběhu sestavování modulu.

Mobilní aplikace FOHB:

  • Kliknutím na následující odkaz je možné stáhnout nejnovější verzi mobilní aplikace, která umožní nastavení parametrů filtrace a ohřevu bazénu a navíc umožňuje sledovat zaznamenané průběhy teplot ve sledovaných místech. To je teplota vody v bazénu, teplota vzduch nad bazénem, teplota vody vstupující do solárního panelu a teplota vody, která opouští solární panel. Navíc systém monitoruje i teplotu řídicí elektroniky.
mel.fohb.apk

Dosud nevyřešené problémy:

  • Trvalým problémem je propojení UTP kabelu a přívodního kabelu čidla. Toto propojení je provedeno přímo ve „skimmeru“. Všudypřítomná vlhkost způsobuje korozi vodičů a zatím se mi nepodařilo najít 100% spolehlivé spojení těchto tenkých drátků. Pokoušel jsem se pájené spoje zalít silikonem, obalit smršťovací bužírkou s lepidlem, … Po čase se spoj rozpojí (zoxidují a rozpadnou se) a čidla umístěná v bazénu přestanou fungovat. Je to vidět i v galerii na obrázku s dlouhodobým průběhem měření teploty. Obrázek grafu
  • V projektu OPTI se projevila chyba v návrhu, kdy jsem nepočítal se změnou parametrů součástek při změně teploty. Oscilátory ve vysílací a přijímací části jsou řešeny pomocí obvodu NE555 a několika diskrétních součástech. Pro generování delších pulsů jsem použil obyčejný elektrolytický kondenzátor. Celý systém tak spolehlivě funguje při teplotách od 15 do 30°C. Mimo tento rozsah se přijímací a vysílací část rozladí a přijímač pak trvale vypne všechna čerpadla a světla.

Galerie obrázků první verze FOHB01:

Galerie obrázků aktuální verze FOHB02:

Galerie obrázků optického interface pro FOHB02:

Galerie obrázků napájecího modulu SLPW:


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *