LoRaWan+NB-IOT+MQTT

S novým firmwarem 2.3.1(150) lze nyní integrovat také LoRaWan, NB-IOT a další externí senzory.

Předpokladem však je, že svá data ze senzorů předají brokerovi MQTT; OpenSprinkler si to pak může předplatit jako data senzoru.

Senzor je integrován se svým „tématem“ a textovým/JSON filtrem. Regulátor zavlažování pak může tuto hodnotu použít.

Možnosti připojení

Funguje to takto:

  • Senzory LoRa WAN jsou umístěny v okruhu LoRa WAN hubu, v závislosti na verzi, s dosahem až 10 km. Sami obsluhujete rozbočovač LoRa WAN, nazývaný také brána, a připojujete jej ke své síti
  • Senzory NB-IoT jsou integrovány prostřednictvím portálu poskytovatele. Vzhledem k tomu, že NB-IoT funguje přes celulární síť, může být senzor umístěn kdekoli - za předpokladu, že existuje příjem.
  • V bráně nebo portálu poskytovatele aktivujte funkci MQTT a použijte ji k exportu dat senzoru. V závislosti na verzi může být nezbytná další implementace s nástrojem pro správu internetu věcí, jako je ChirpStack, který převádí „holá“ data senzoru na vyhodnotitelná data.
  • V OpenSprinkler to připojíte přes možnosti MQTT a poté vytvoříte nový senzor typu „MQTT Subscription“.
  • Zadejte informace o předplatném a filtr dat do senzoru.
  • Kompletní! Jakmile jsou data přijata, hodnoty se zobrazí a uloží.

Detailní konfigurace senzoru

Dva snímače MQTT jsou označeny červeně. Ostatní senzory jsou integrovány prostřednictvím analogové senzorové desky

 

Analogsensor150 1

Upravit senzor

Kliknutím na „Přidat senzor“ nebo na název existujícího senzoru získáte následující editor:

Analogsensor150 2

Tento příklad ukazuje integraci dat MQTT CHIRPSTACK. Struktura je definována takto:

application/<id-aplikace>/zařízení/<id zařízení>/událost/up

Nejlepší je podívat se na možné hodnoty pomocí nástroje, jako je MQTT Explorer. Zejména pro začátečníky je často matoucí, že se v MQTT Exploreru nic nezobrazuje. Protože data senzoru přicházejí pouze každých 10 minut (v závislosti na konfiguraci), musíte MQTT Explorer na chvíli opustit.

Do pole Filtr MQTT zadejte název pole, které se má číst. V CHIRPSTACK můžete vidět pole vyčtená pod „Profily zařízení“ / „Měření“. Pokud se zde nic neobjeví, musíte nejprve uložit skript v záložce „CODEC“; zde mohou pomoci šablony nebo se můžete zeptat výrobce snímače.

Proč LoRaWAN nebo NB-IoT a ne Wi-Fi nebo Bluetooth?

Největším problémem senzorů je, že vyžadují napájení. Pokud můžete položit napájecí kabel, můžete obvykle položit také datový kabel. Ale pokud to není možné, jak tyto senzory zapojíte?

Abychom na tuto otázku odpověděli, provedli jsme několik experimentů a výsledky uvádíme zde.

  • Bluetooth selže, dosah je prostě příliš krátký (pokud samozřejmě rostliny nejsou do 10m. Viz zde)
  • WiFi lze použít, ale spotřeba je tak vysoká, že buď musíte měnit baterie každé 4 týdny, nebo potřebujete obrovské baterie. I to se dá zlepšit fotovoltaikou, ale pak už máte vysoké investiční náklady na senzor. Při venkovní instalaci navíc existuje určité riziko poškození majetku.
  • LoRaWAN je zde vhodnější, protože baterie mají dlouhou výdrž a často vydrží až 10 let. Venkovní dosah může být až 10 km (otevřené pole, městské oblasti cca 2 km). Vzhledem k tomu, že LoRaWAN lze provozovat bez licence, existují pouze jednorázové náklady.
  • NB-IoT je také velmi vhodný, pokud existuje odpovídající pokrytí mobilními telefony. To znamená, že dosah je prakticky „nekonečný“, protože data senzoru jsou dodávána do cloudové služby. Existují však průběžné náklady

Realizace a testování

Pro náš test jsme použili Milesight UG65-868M jako bránu LoRaWAN, stejně jako Dragino LSE01 a Milesight EM-500 SMTC snímače vlhkosti půdy. Vzhledem k tomu, že UG65 může také aktivovat zprostředkovatele MQTT s nejnovější aktualizací (musí být aktivován ChirpStack-common), lze jej připojit jako nezávislý server MQTT.

Beide Sensoren können nicht nur die Bodenfeuchtigkeit, sondern auch die Bodentemperatur sowie die dielektrische Leitfähigkeit (Permittivität). Gerade der letzte Wert ist für den Agrarbereich sehr wichtig, da man damit auch den Düngergehalt des Bodens bestimmen kann.

Img 20240318 183612

Der Milesight UG65 hat die Stromanschlüsse hinten und kann über POE betrieben werden. Außerdem verfügt er über WLAN und kann sogar als Accesspoint dienen. Optional sind auch andere Antennen und ein LTE Modul verfügbar.

Img 20240318 183633

Der Milesight EM-500 SMTC ist mehr als nur ein Bodenfeuchtigkeitssensor. Er kann die Bodentemperatur und die Permittivität messen. Er besteht aus zwei Komponenten, die mit einem Kabel verbunden sind. Die Oberirdische ist der Sender, die Unterirdische der eigentliche Sensor. Eine Masthalterung ist dabei.

Lse01 10

Der Dragino LSE01 ist ähnlich dem EM500, auch er kann Bodenfeuchtigkeit, Temperatur und Permittivität messen. Sämtliche Dragino Sensoren scheinen sich hierbei ähnlich zu sein, alle Produkte haben denselben Sender.

ChirpStack

Bei der Einrichtung von Chirpstack ist es wichtig, dass man erst einmal Profile für die Sensoren einrichtet (Punkt „Device Profiles“). Hier erfasst man die Sensoren mit ihren allgemeinen Gerätedaten. Mit der Funktion „Select device-profile template“ kann man die Vorgaben auswählen. Diese ganze Konfiguration ist notwendig, damit eben die binären Sensordaten in lesbare Werte umgewandelt werden können. Daher ist die Funktion „Codec“ auch die wichtigste Funktion hier.

Allerdings habe ich etwas gebraucht um zu erkennen, dass diese Codec-Vorgaben veraltet waren. Die aktuellen Codecs findet man hier:

Milesight: https://github.com/Milesight-IoT/SensorDecoders

Dragino: https://github.com/dragino/dragino-end-node-decoder

Dazu einfach den richtigen Sensor wählen, die Datei für ChirpStack herunterladen, mit einem Editor öffnen und ins Codec-Feld einfügen.

Als nächstes erstellt man eine „Application“ und trägt die Sensoren unter „Devices“ ein. Hier ist nun auch wichtig, die JOIN-Daten der Sensoren zu kennen, diese befinden sich meistens auf den Geräten aufgedruckt, auf dem Typenschild, im Geräte selber oder in den Begleitpapieren.

Wenn jetzt alles eingerichtet ist, so muss man das JOIN an den Sensoren auslösen. Dieser Vorgang verbindet erst den Sensor mit ihrem Gateway – sonst könnte ja jeder ihre Sensoren steuern. Entweder geht das mit einer APP (bei Milesight gibt es die „Toolbox“ APP) oder man öffnet das Gerät und drückt eine spezielle JOIN Taste. Manchmal muss auch nur die Batterie kurz abziehen und anstecken, dann wird auch der JOIN Vorgang ausgelöst.

Dragino Chirpstack

Jetzt sollten in ChirpStack auch die Daten ankommen. Aber bitte Geduld, die Sensoren senden nur alle 10 Minuten ein Signal, das kann also dauern.

MQTT

Chirpstack hat einen eigenen MQTT Broker, alternativ kann man aber auch einen eigenen MQTT verwenden. Damit dieser die Daten des Chirpstack MQTT broker erhält, habe ich eine MQTT bridge eingerichtet und alles weitergeleitet. Das notwendige Programm dafür hat den Namen „Mosquitto“

Die forwarder.conf im /etc/mosquitto/conf.d Ordner sieht bei mir so aus:

connection bridge-01
address 192.168.0.50:1884
topic # out 0
topic # in 0

wobei 192.168.0.50:1884 die IP und Port des Chirpstack MQTT brokers sind

Wenn nun alles eingerichtet, sollte wie oben dargestellt die Werte automatisch im OpenSprinkler erscheinen. Konfigurieren Sie nun eine Programmanpassung für diesen Sensor, z.B. so:

Programadjustment1

Damit wird die Bewässerung zwischen 10% bis 20% Bodenfeuchtigkeit gehalten. Die Bewässerungsanpassung ist dabei von 0 bis 200%

 

O tomto diskutuje“LoRaWan+NB-IOT+MQTT

  1. Tobias napsal:

    Ahoj,

    das klingt äusserst interessant. Ich frage mich nur ob es den relativ teuren Milesight UG65-868M braucht oder ab es da auch was einfacheres tut?

    • Admin napsal:

      Natürlich funktioniert dies auch mit anderen LoRaWAN Gateways. Da die Einbindung über MQTT geschieht, kann jedes kompatible Gerät verwendet werden.

  2. Andrea napsal:

    Leider fehlt bei der Firmware 2.3.1 (164) bei Auswahl von „MQTT Subscription“ die Felder MQTT Topic/MQTT Filter/Unit 🙁
    Auch der Wechsel des Browsers hat daran nichts geändert. Ist das ein bekannter Bug?

Napište komentář

Vaše e-mailová adresa je poblíž. Vyžádané informace jsou označeny *

Web používá Akismet ke snížení množství spamu. Zjistěte, jak jsou zpracovávány údaje z komentářů.