Okos otthon is fókuszban

Arduino kalandok

Arduino kalandok

433 MHz és az MQTT

2018. december 11. - denx

Korábban már esett szó a 433 MHz-en kommunikáló eszközökről és az MQTT-ről is. Lássuk hogy találkozik ez a kettő.

Rapsberry Pi megoldás

Kezdjük kicsit távolabbról: a pilight-ot már korábbi bejegyzésben említettem, itt is ez lesz a megoldás egyik alapköve. Ugyanis a pilight-ot alkotó nagyszerű kollégák sok sok munkát elvégeztek már, amit nem kell újra megcsinálni. Ha sima Arduino alapokon gondolkodunk, akkor közvetlenül nem lehet az egész jelfeldolgozó programkódot átültetni ide, mert azért az Arduino (pl Uno) nagyon sok korlátot jelent. (Hogy csak a legalapvetőbbet említsem: 2kB RAM.) Én is ezért választottam azt a megoldást az Arduino programomban, hogy a kódból a nekem feltétlen szükséges részleteket emeltem át, így a libem belefért egy UNO-ba bőven.

Gateway

Nagy szerencse, hogy más open source projekt is akad, aki célul tűzte ki, hogy a 433-as eszközöket munkára fogja. Nekem ezek közül az MQTT433Gateway projekt tetszett a legjobban, mégpedig azért, mert a pilight forráskódját hasznosítja úja - kicsit profibban mint én tettem. (Ha büszkélkedni akarnék akkor azzal kezdtem volna, hogy én is kontributáltam ebben a projektben, de valójában morzsányi, buildeléshez kapcsolódó problémát javítottam csak ki.)

A dolog lényege, hogy nem a standard Ardu lapkára épül a projekt, hanem az ESP8266-ra. Ez ugye már eleve egy Wifi-s eszköz, lényegesen nagyobb számítási kapacitással és memóriával. Lehet hozzá Arduino környezetben fejleszteni és sok lib van is hozzá készen - többek között MQTT kliens is.

Amit pedig a kész szerkezet tud: venni a 433-as jeleket, értelmezni és MQTT topic-ra kirakni. Értelmezés alatt azt kell érteni, hogy a pilight-ban implementált kódolást fel tudja dolgozni, például egy hőmérő üzenetét értelmezni tudja: hány fok, mekkora pára, elem rendben van-e és mi az ID-ja az eszköznek. Tud persze olyat is, hogy a sok ismert eszköz közül szűrni lehet, hogy mi melyikek üzeneteire vagyunk kíváncsiak, így csak azokkal fog foglalkozni, amik nekünk fontosak.

HW

Egyelőre csak prototípusként raktam össze a cuccot, de már megy 1-2 hónapja gond nélkül. Mivel az összeköttetés megalkotása minimális készségeket és eszközöket igényel, ezért jumper kábelekkel megoldottam a Wemos D1 Mini névre keresztelt eszköz és a vevő összeállítását.

Config

A legtöbb ESP alapú eszköz ugyanazt a módszert szokta használni - mivel ugyanazt a Wifi lib-et használják:
1. Az első indításnál létrehoz egy Wifi Access Point-ot, általában valami projekt nevére utaló néven, jellemzően jelszó nélkül.
2. Ide csatlakozva és megnyitva egy IP-t, bejön egy olyan weboldal, ahol be lehet állítani, hogy melyik Wifi hálózatra csatlakozzon magától a cucc.
3. Ha ezzel megvagyunk, akkor az eszköz restartol egyet és megpróbál oda csatlakozni, ahova kértük. DHCP-n keresztül kér magának IP-t és onnantól kezdve várja a saját webszerveren keresztül konfigurálást.
+1. Némi segítséget jelenthet, hogy a soros porton keresztül minden lépésről tájékoztat, írja hogy mi az AP neve (estleg vár-e jelszót), mi az IP, amit meg kell nyitni ezen a hálózaton, újranidításkor melyik hálózatra próbál csatlakozni, ha sikerül milyen IP-t kapott, vagyis hogy hova kell bejelentkezni a böngészőben, stb.

Nem kell túl sok mindent beállítani, ami kicsit rendhagyó, hogy amíg nem változtatja megy az ember a jelszót (amivel a config weboldal van védve), addig semmit nem fog csinálni a cucc. Ami fontos: eszköz neve (ez fog megjelenni az MQTT-n is), MQTT broker címe és portja, esetleg user/pass ugyanide, Van egy send és egy receive topik, be lehet állítani hogy miket szűrjön, ileltve a loggolást 3 helyre konfigurálni: soros portra, webre (az oldal alján lévő mezőbe) és syslog szerverre.

Van még olyan funkciója is a cuccnak, hogy egy leden keresztül mutat életjelet, de én ezt inkább kikapcsoltam, mert semmi értelme - az asszisztens úgy is rá lehet venni hogy szóljon, ha eltűnne az eszköz. 

Send

Mivel ez egy valódi gateway, így nem csak fogadni tud, hanem küldeni is. Vagyis meg lehet szólítani MQTT-n keresztül, hogy morzézzon el egy jelsorozatot, amit remélhetőleg a megcélzott eszköz érteni fog. Az igazság az, hogy ezzel még nem volt időm játszani, de ígéretesnek hangzik ez is! Ha majd eljutok oda, hogy foglalkozzak ezzel, akkor fog belőle bejegyzés is születni...

A bejegyzés trackback címe:

https://ardu.blog.hu/api/trackback/id/tr1614434906

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása