Egy általánosabb eszmefuttatás az Arduinok közötti információ cserére

A múltkorjában volt olyan tennivalóm, hogy több - nevezzük szenzoroknak - által adott értéket kellett figyelni, felhasználni, más arduinoknak.

Ez tulajdonképpen egy echo, visszhang feladatként fogható fel általánosítva. Vannak a szenzorok, vannak, akik egy vagy több szenzor adatait használni akarják, és van EGY központi visszhang szerver. Minden szenzor folyamatosan küldi az általa mért adatokat ennek a visszhang szervernek, és nem foglalkozik azzal, hogy ez az adat kinek kell, vagy kell-e egyáltalán valakinek. Ez a visszhang szerver aztán továbbküldi azoknak a felhasználóknak, akik szóltak előzőleg neki, hogy x (vagy több) szenzor y (vagy több, akár összes) adatát kéri. Ugyanaz az állomás lehet szenzor is, és felhasználó is. Akkor én erre egy ESP32-re írtam egy több kapcsolatot kezelő szervert, amely mindenki által küldött adatot továbbította mindenkinek, hogy azok válogassák ki, mi kell nekik. (Más kérdés, hogy mielőtt a project teljesen elkészült volna, jegelve lett). Majd újra előveszem, de azóta már okosodtam :) , és másként fogom csinálni.

Az ilyen jellegű feladat legismertebb formája az "okos otthon", ami már elég jól kidolgozott. Tehát: Van egy központi szerver, ami kommunikál a szenzorokkal, felhasználókkal. Erre a kommunikációra dolgozták ki az ún. MQTT protokollt. Ilyen szerver többféle van, a legismertebb a "Mosquitto" nyílt, ingyenes szerver program, aminek van linux és win alá írt verziója, de sajnos ESP-re nincs, pedig várnám, hogy valaki megcsinálja. Így marad egy Raspberry, Orange pi, vagy valami hasonló linuxos lap, amire felmegy a Mosquitto, az csatlakozik a netre, és kommunikál. Próbálgatásként jó a PC-re felrakott verziója. Az arduinokon megy a pubsubclient ( https://pubsubclient.knolleary.net/ ), ami adatot küld, vagy kér a Mosquitto szerverre, szervertől. Persze, hogy könnyebben kezelhető legyen a dolog, nem a szenzorok, felhasználók döntik el, hogy mit kell csinálni a kapott adatokkal, hanem egy valahol futó szintén központi program ami lehet saját magunk által írt ESP prg, vagy linuxos Home Assitant, Domotic, stb.) Ez a központi kezelő program kéri mindenki adatát a Mosquitto szervertől, és az alapján dönti el, hogy mit kell csinálni, és szintén a Mosquitto szerveren keresztül utasítja az "alattvalóit" a teendőkre.

Az arduinofilek körében kedveltek az ESP8266 (ill. az 1MB memóriájú, ESP8255 nevű verziója) alapú Sonoff szenzorok, kapcsolók. Logikus, hogy ezekre megcsináltak egy arduino programot, aminek Tasmota a neve. ( https://github.com/arendst/Sonoff-Tasmota ) A Tasmota egy teljes ESP memóriát betöltő program, mert az összes Sonoff kezelése benne van, szenzorokkal együtt, és (általánosságban) az upload után döntjük el, hogy az ESP melyik lábán milyen szenzor, kapcsoló, led (pl. WS2812 led szalag), stb van. A széles Sonoff skálán megtalálható összes szenzorra (hőmérséklet érzékelők, páratartalom mérők, áram fogyasztás mérők, stb.) meg van benne írva a kezelő program, így akár Sonoffot használunk, akár más ESP8266 alapú lapot, nem kell mást tennünk, mint egy konfigurációs WEB felületen megadni, hogy mi egy tényleg Sonoff, vagy "általános" lapot használunk, és meg kell adni, hogy az ESP melyik lábára melyik szenzort kapcsoltuk, melyik IP-n lévő Mosquitto szerverre küldje, és már működik is.

Mivel a hálózatra WiFin kapcsolódik, nincs vezetékezési, földhurok probléma.

A földhurokkal én nálunk folyamatosan szívok, nem tudom másként megoldani, mint 18650-es táplálással.