Automatizált szauna vezérlés
Ez az első teljesen saját fejlesztésű komolyabb projektem. 2009-es év elején kaptam egy megbízást olyan rendszer kifejlesztésére, ami teljesen önműködően képes elsősorban nyilvános helyeken, wellness központokban telepített, több férőhelyes infraszaunák működésének irányítására. A jelenlegi automatika egy korábbi fejlesztésű vezérlés utódja. Kezdetben fototechnikai érzékelőket használtam, ám hamar kiderült, hogy ezek működése nem elég megbízható, telepítése körülményes. A központi vezérlővel kapcsolatban további igények merültek fel, így az első változat teljes mértékben át lett dolgozva. Ennek ennek eredményeként született meg a most ismertetésre kerülő rendszer.
Ismertetés
A rendszer infravörös szaunákhoz készült. Működésének a lényege, hogy több férőhelyes szaunában, a padokban elhelyezett érzékelők figyelik a vendégek jelenlétét és elhelyezkedését. A szaunában felszerelt infravörös fűtőpanelek úgy vannak irányítva és csoportosítva, hogy minden férőhelyhez két darab infrasugárzó tartozik. Ezen infrapanel csoportok vezérlését valósítja meg a rendszer annak megfelelően, hogy melyik helyet foglalják el a vendégek. A vezérlés a szaunázás maximális időtartamára való tekintettel, a bekapcsolt infrasugárzók működési idejét limitálja. Általában maximum 30 perc az az időtartam, amit még mindenféle egészségügyi kockázat nélkül el lehet tölteni egy infraszaunában. Ennek mérését a vezérlőegység végzi, az eltelt időből fennmaradó időt a kijelzőn perc:másodperc formátumban megjeleníti. Egy vezérlő több érzékelőt képes kezelni, ennek megfelelően több kimenetet tud kapcsolni. Az érzékelők számlálói között semmiféle kapcsolat nincs, azok egymástól teljesen függetlenül mérnek. A maximális időtartam természetesen menüből programozható egyedi igényeknek megfelelően. A kijelzőn visszaszámlálás közben időközönként reklámszöveg fut végig. A maximális idő leteltével, vagy az érzékelő elhagyásával, az aktuális érzékelőhöz tartozó fűtőpanelek kikapcsolnak.
A most ismertetett vezérlés egy, ill. két érzékelő kezelésére alkalmas. Ez elsősorban a kijelző mérete miatt alakult így, persze nagyobb kijelzővel szerelt vezérlés, több érzékelő kezelésére is képes lehet.
A vezérlőegységhez kapcsolódó érzékelők kapacitív módon érzékelik környezetük változásait. A érzékelők saját mikrokontrollerrel rendelkeznek, a mérési eredmények kiértékelése teljes mértékben digitálisan, szoftveres módon történik. A külvilág felé a már kiértékelt mérési adatok eredményétől függően az érzékelő kimenetén jelzéseket küld a vezérlőegységnek. A telepítés megkönnyítése végett az érzékelő és a vezérlés között egyetlen kéteres vezeték biztosítja az összeköttetést. Az érzékelő ezen keresztül kapja a tápellátásához szükséges feszültséget, valamint a kommunikáció is ezen a két szál vezetéken zajlik. A környezeti zavarok kiszűrése miatt a vezeték árnyékolt kivitelű. Az érzékelőnél ipari szenzor csatlakozó biztosítja a megbízható kapcsolatot, a vezérlőegység oldalon pedig csatlakozós NYÁK sorkapocsban végződik a vezeték, ezzel is egyszerűsítve a telepítési és szerelési munkálatokat.
A vezérlés méretét az LCD kijelző panel mérete határozza meg. A kijelző mögé került maga a vezérlés, melynek a központi egysége egy PIC16F877 típusú mikrokontroller. Azért választottam ezt a típust, mert viszonylag sok portja van, valamint alapvető kommunikációs perifériákat is tartalmaz (I2C, UART, belső EEPROM). A kimenetek szimpla relé meghajtásos kimenetek, a csatlakozókhoz már csak a relé tekercsét kell bekötni. Az érzékelők a port A lábakra kapcsolódnak. A portokra való csatlakozás előtt kerül szétválasztása az érzékelő jele és a tápfeszültség.
A tápellátást egy 12V-os kapcsolóüzemű tápegység biztosítja, az 5V-os tápfeszültséget a vezérlőmodulon lévő kapcsolóüzemű DC-DC konverter állítja elő.
A vezérlés önmagában teljes értékűen működik, viszont lehetőség van egy zenelejátszó bővítmény csatlakoztatására is. A bővítménnyel a vezérlés képes zenét lejátszani a szaunázás időtartama alatt. A lejátszó USB portján tud fogadni egy pendrive-ot, ami előre fel van töltve mp3 állományokkal. A lejátszás szaunázás időtartama alatt folyamatos, sorrendje véletlenszerű.
A rendszer táplálását egy kapcsolóüzemű tápegység biztosítja. A kimenetre kapcsoloható relék, ill. a tápegység egy DIN sinnel ellátott biztosítékszekrényben, vagy kötésdobozban helyezhetőek el.
Rövid fejlesztéstörténet
A vezérlés fejlesztése több lépcsőben valósult meg. A végleges vezérlőpanel kialakításáig négy változat készült el a prototípusból.
Két kép az első változatról, ill. ami maradt belőle, mert az alkatrészek java azóta már újra lett hasznosítva.
Itt még a 16F628 volt a vezérlése.
A vezérlőmodul kezdetben egy érzékelőt volt képes kezelni, a kijelzőn minimális mennyiségű szöveg és reklámszlogen is megjelent már a számlálás ideje alatt. Egyetlen kimenete volt, ami egy relét működtetett. Ez volt az eredeti elképzelés. Ebből a második panelon készült el a végleges darab, közben a kijelzőt egy nagyobb képpontméretű típusra cseréltem, hogy jól leolvasható legyen távolról is. Később a vezérlést képessé kellett tenni több érzékelő jelének fogadására is. A kijelző korlátozott felülete miatt csak az alsó sorában tud számlálókat megjeleníteni, mivel a felső sorban mindig valami szöveg van. Az alkalmazott kijelző 2×16 karakteres LCD egy sorában két számláló fér el egyszerre, így maximum két érzékelő csatlakoztatását tudtam lehetővé tenni állandó időkijelzés mellett.
A véglegesnek szánt verzió a nagy átalakítás előtt:
A két érzékelős változat megépítéséhez újabb panel készült, viszont itt már komolyabb változtatásokat is végre kellett hajtani. A legfőbb változtatás, hogy a korábban fejlesztett vezérlő alapja egy PIC16F628-as kontroller volt. A megnövekedett I/O portok igénye miatt ez már kevésnek bizonyult a feladathoz, így alternatívaként a 16F877-es típust választottam. Átírtam a programot az új mikrovezérlőre, majd megkezdtem a szoftver átalakítását, kibővítését. Menet közben igény merült fel a több nyelvű szövegmegjelenítésre is. Az addig magyarul kommunikáló vezérlés ki lett bővítve angol, német, szlovén és szlovák felhasználói felülettel, valamint sok funkció beállíthatóvá vált nyomógombok segítségével is. A nyomógombok számát megnövelve létrehoztam a beállítások áttekinthető elvégzésére egy kis menürendszert. Ezek a fejlesztések jelentős méretű memóriaterületet emésztettek fel, különösen az LCD-n megjelenő szövegek 5 nyelven történő tárolása miatt. Mivel a soros kommunikációra használható portok szándékosan nem lettek felhasználva, így hozzáépítettem a kontrollerhez egy I2C rendszerű nagyobb tárkapacitású flash memóriát. Az LCD-n megjelenő szövegeket ebben tároltam el, kijelzőre íráskor pedig innen hívódik meg az aktuális szövegrész.
Az átalakítást követően gyakorlatilag már csak egyetlen lépés kellett a mostani kialakításhoz.
További fejlesztések
2010. márciusában már a végéhez értem a fejlesztésnek. Ekkor újabb változtatást kellett végrehajtanom, ugyanis képessé kellett tenni a vezérlést hangok lejátszásra is. A még szabadon hagyott portlábakat így felhasználtam a további funkció integrálásához. A vezérlőpanel át lett tervezve úgy, hogy a szabad portlábak ki lettek vezetve az áramkörből egy csatlakozóba. A hanglejátszó bővítés kissé komolyabb áramköri környezetet igényelt, így ez külön modulon lett létrehozva úgy, hogy a fő vezérlőegységhez egyszerűen csatlakoztatható legyen, valamint fontos szempont volt az is, hogy a kiegészítés nélkül is működőképes legyen a vezérlés.
A hanglejátszó modul gyakorlatilag egy USB-s mp3 lejátszó. A modul részei egy USB host vezérlő, egy mp3 dekóder, valamint egy D osztályú 2x10W-os audió végfok. A lejátszó modult egyszerűen rá kell szerelni a fő vezérlőmodulra, majd be kell kötni hozzá két beépített hangszórót és csatlakoztatni kell egy USB pendrive-ot, ami előzőleg fel lett töltve mp3 állományokkal.
Néhány technikai fotó.
PCB kép a vezérlő hátoldaláról:
A vezérlő alkatrész felőli oldala:
Beültetésre váró érzékelő panel:
Több érzékelő készül még…
Egy készre szerelt érzékelő:
A végleges rendszer 2010. május elejére készült el.
A végeredmény
- 2 érzékelő kezelése
- Kapacitív érzékelés
- Két szál vezetéken történő táplálás és adatátvitel
- Saját kommunikációs protokoll
- Mikrokontrolleres vezérlés
- Két egymástól független időmérő
- Két bárhogyan programozható kimenet
- Nagyméretű LCD kijelző
- 5 nyelvű kezelőfelület (magyar, angol, német, szlovén, szlovák)
- 5 nyelvű kezelőfelület (magyar, angol, német, szlovén, szlovák)
- Reklámszövegek megjelenítése visszaszámláláskor
- Menürendszer a beállításokhoz
- Programozható időmérők
- Próbaverziós üzemmód
- Könnyű telepíthetőség
- Igény szerint bővíthető mp3 lejátszó
- Lejátszóra integrált 2x10W-os erősítő
- USB támogatás bármilyen flash tárolóhoz 4GB-ig
- Teljesen automatizált működés
- További bővítési lehetőségek
- Kompakt kivitel
- Modulrendszerű felépítés
A végére pedig néhány kép az építésről és a kész áramkörről.
16F877 beforrasztva a végleges panelra:
A kész vezérlés:
Az mp3 lejátszó áramkör 0603-as méretű SMD-ből :)
Az mp3 egység a digitális erősítővel:
A komplett egység összeszerelve oldalról:
A komplett egység hátulról:
Felülről: