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:

Vissza a kapcsolási rajzokhoz