( _Franko_ | 2018. 02. 07., sze – 21:54 )

http://www.barkacsklub.hu/forum/hazautomatizalas-es-okos-eszkozok/rooma…

Nos, elindult "éles" üzemben az első ESP8266 (WEMOS D1 Mini) alapú szoba-automatizálásom... :)

(Előzmények: https://www.facebook.com/groups/barkacsklub/permalink/371808553262965/ )

Kicsit több, mint egy év volt ez a "projekt", persze, nem folyamatosan és még nincs is vége, de most úgy érzem, hogy elértem egy mérföldkövet, amelynek örömére kicsit letisztogattam a forrást (ami még nem tökéletes) és feltettem publikusan elérhetően a GitHub-ra, meg lehet nézni, lehet belőle tanulni, illetve lehet benne hibákat javítani vagy akár új dolgokat belekérni... 

https://github.com/gaborauth/RoomAutomation

Mit tud?

A leglátványosabb tudása az, hogy LED szalagot vezérel PWM kimenettel, a LED szalag fényerejét 512 lépésben tudja változtatni, a PWM frekvenciája 256 Hz (így nem igazán interferál semmivel). A két végállapot között nem átkapcsol, hanem néhány másodperc alatt folyamatosan változtatja a fényerőt, amíg el nem éri a beállított értéket.

A LED szalag vezérléséhez van egy kapcsoló bemenete, ami célszerűen nyomógomb (csengőkapcsoló), mert ezzel lehet a legjobban többféle jelzést adni. Itt szoftveresen kezelem ugyan a pergést, illetve a rövidebb (<50 ms) zavarokat a vonalon, de hosszabb vezeték és/vagy nem megfelelő minőségű kapcsolók esetén érdemes hardveres zavarszűrést használni.

A kapcsolóval több módon lehet kapcsolni a fényerőt:
- 250 ms alatti kattintás esetén fel- vagy lekapcsolja a fényerőt fényátmenettel;
- 250 ms feletti kattintás (lenyom-tart-elenged) esetén a fényerő növekedése vagy csökkenése megáll abban a pillanatban, amikor elengedem a nyomógombot, ezzel lehet éjjel halvány fényt csinálni például, így ha fel kell kelni a sötétben, nem vakít el a nagy fényerő, illetve nem zavarok másokat a fényárral;
- 5000 ms feletti kattintás esetén felkapcsol a relé kimenet, amire rá lehet kötni mondjuk normál 230 VAC izzót, ha kell még plusz fényerő;
- lekapcsolás esetén a felkapcsolt relé is lekapcsol.

Az infravörös mozgásérzékelő engedélyezése esetén a felkapcsolt világítás 5 perc után fele fényerőre csökken, majd újabb 5 perc után teljesen lekapcsol - ha nincs mozgás. Ha ebben a 10 percben valaki visszamegy a szobába, akkor újra felfénylik az eredeti fényerővel... ha egyedi fényerő volt beállítva, akkor ahhoz igazodik.

A szoftver szenzorok közül kezel:
a, DS18B20 hőmérséklet szenzort, amiből lehet több is ugyanazon a buszon, ezeknek az értékét a beállított időközökben lekérdezi és elküldi a megadott REST URL felé.
b, BME280 hőmérséklet-páratartalom-légnyomás szenzort, amiből egy lehet az SCL/SDA lábon, illetve ennek a szenzornak kapcsolgatja a tápját, mert folyamatos üzem esetén képes valamennyit csalni, mert kicsit melegszik.

Ha engedélyezett a kazán vezérlése, akkor a szenzorok alapján képes a relé kimeneten tetszőleges kazánt vezérelni, a beállított hőfok felett kikapcsol, alatta bekapcsol. Opcionálisan le tudja kérdezni egy másik modul mért értékeit és annak megfelelően kapcsol ki-be.

Ezen túl képes IR parancsokat venni, ha rákerül IR vevő, illetve képes a PWM kimeneten IR parancsokat adni, ha kerül rá IR LED megfelelő előtét ellenállással. Az IR parancsokkal lehet például klímát vezérelni PID szabályzón át, ilyenkor beolvasott IR parancsokat megadva lehet utasítani a klímát, hogy mennyire fűtsön vagy hűtsön.

Minden modul képes frissítéseket keresni a beállított címen, ha van friss bináris, akkor letölti és frissíti magát, illetve lejelenti, hogy mikor kereste a frissítéseket, éppen milyen verzió fut rajta és mi az IP címe.

A WiFi kapcsolathoz a paramétereket a WiFiParameters.h fájlból szedi, a modul paramétereket pedig a DeviceParameters.h fájlban adhatjuk meg.

Képes deep sleep állapotra, ha ez meg van adva a paraméterek között...
...és amit még elfelejtettem esetleg, hogy tudja.