LoRaWan+NB-IOT+MQTT

Avec le nouveau firmware 2.3.1(150), LoRaWan, NB-IOT et d'autres capteurs externes peuvent désormais également être intégrés.

Cependant, la condition préalable est qu'ils transmettent les données de leurs capteurs à un courtier MQTT ; OpenSprinkler peut ensuite s'y abonner en tant que données de capteur.

Le capteur est intégré avec son « sujet » et un filtre texte/JSON. Le contrôleur d'irrigation peut alors utiliser cette valeur.

Options de connexion

Voici comment cela fonctionne :

  • Les capteurs LoRa WAN sont placés dans le rayon d'un hub LoRa WAN, selon la version, avec une portée allant jusqu'à 10 km. Vous exploitez vous-même le hub LoRa WAN, également appelé passerelle et le connectez à votre réseau
  • Les capteurs NB-IoT sont intégrés via le portail du fournisseur. Étant donné que le NB-IoT fonctionne sur le réseau cellulaire, le capteur peut être situé n'importe où, à condition qu'il y ait une réception.
  • Dans la passerelle ou le portail du fournisseur, activez la fonction MQTT et utilisez-la pour exporter les données du capteur. Selon la version, une mise en œuvre plus poussée avec un outil de gestion IoT tel que ChirpStack peut être nécessaire, qui convertit les données « nues » des capteurs en données évaluables.
  • Dans OpenSprinkler vous le connectez via les options MQTT puis créez un nouveau capteur de type « MQTT Subscription ».
  • Saisissez les informations d'abonnement et le filtre de données dans le capteur.
  • Complet! Dès la réception des données, les valeurs sont affichées et enregistrées.

Configuration du capteur en détail

Les deux capteurs MQTT sont marqués en rouge. Les autres capteurs sont intégrés via la carte capteur analogique

 

Capteur analogique150 1

Modifier le capteur

En cliquant sur « Ajouter un capteur » ou sur le nom d'un capteur existant vous obtenez l'éditeur suivant :

Capteur analogique150 2

Cet exemple montre une intégration CHIRPSTACK de données MQTT. La structure est définie comme suit :

application/<application-id>/device/<deviceid>/event/up

Il est préférable d'examiner les valeurs possibles à l'aide d'un outil tel que MQTT Explorer. Il est souvent déroutant, surtout pour les débutants, que rien ne soit affiché dans l'explorateur MQTT. Comme les données du capteur n'arrivent que toutes les 10 minutes (selon la configuration), il vous suffit de quitter l'explorateur MQTT pendant un moment.

Für das Feld MQTT Filter geben Sie den Namen des Feldes an, welches ausgelesen werden soll. Im CHIRPSTACK kann man unter “Device Profiles” / “Measurements” die ausgelesenen Felder erkennen. Falls hier nichts erscheint, müssen Sie zuerst ein Script im Reiter “CODEC” hinterlegen, hier helfen die Vorlagen oder man fragt den Hersteller des Sensors.

Pourquoi LoRaWAN ou NB-IoT et pas Wi-Fi ou Bluetooth ?

Le plus gros problème avec les capteurs est qu’ils nécessitent de l’énergie. Si vous pouvez poser un câble d'alimentation, vous pouvez généralement également poser un câble de données. Mais si cela n’est pas possible, comment connecter ces capteurs ?

Pour répondre à cette question, nous avons réalisé quelques expériences et présentons ici les résultats.

  • Le Bluetooth échoue, la portée est tout simplement trop courte (à moins bien sûr que les plantes ne soient à moins de 10 m. Voir ici)
  • Le WiFi peut être utilisé, mais la consommation d'énergie est si élevée que vous devez soit changer les piles toutes les 4 semaines, soit avoir besoin d'énormes piles. Cela peut également être amélioré avec le photovoltaïque, mais les coûts d'investissement par capteur sont déjà élevés. De plus, il existe un certain risque de dommages matériels lors d’une installation à l’extérieur.
  • LoRaWAN est ici plus adapté car les batteries sont durables et durent souvent jusqu'à 10 ans. La portée en extérieur peut aller jusqu'à 10 km (champ ouvert, zones urbaines environ 2 km). Étant donné que LoRaWAN peut être exploité sans licence, il n'y a que des coûts uniques.
  • NB-IoT ist ebenfalls sehr gut geeignet, wenn eine entsprechende Mobilfunkabdeckung besteht. Dadurch ist die Reichweite quasi “unendlich”, da die Sensordaten an einen Cloud-Dienst geliefert werden. Hierbei entstehen jedoch laufende Kosten

Réalisation et tests

Pour notre test, nous avons utilisé un Milesight UG65-868M comme passerelle LoRaWAN, ainsi qu'un Dragino LSE01 et un capteur d'humidité du sol Milesight EM-500 SMTC. Étant donné que l'UG65 peut également activer un courtier MQTT avec la dernière mise à jour (ChirpStack-common doit être activé), il peut être connecté en tant que serveur MQTT indépendant.

Les deux capteurs peuvent mesurer non seulement l’humidité du sol, mais également sa température et sa conductivité diélectrique (permittivité). Cette dernière valeur est particulièrement importante pour le secteur agricole, car elle peut également être utilisée pour déterminer la teneur en engrais du sol.

Image 20240318 183612

Le Milesight UG65 a les connexions d'alimentation à l'arrière et peut être utilisé via POE. Il dispose également du WiFi et peut même servir de point d’accès. D'autres antennes et un module LTE sont également disponibles en options.

Image 20240318 183633

Le Milesight EM-500 SMTC est plus qu'un simple capteur d'humidité du sol. Il peut mesurer la température et la permittivité du sol. Il se compose de deux composants reliés par un câble. La partie aérienne est l'émetteur, le sous-sol est le véritable capteur. Un support de mât est inclus.

Lse01 10

Le Dragino LSE01 est similaire au EM500, il peut également mesurer l'humidité, la température et la permittivité du sol. Tous les capteurs Dragino semblent similaires, tous les produits ont le même émetteur.

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.

Cependant, il m’a fallu un certain temps pour réaliser que ces spécifications de codec étaient obsolètes. Les codecs actuels peuvent être trouvés ici :

Vue kilométrique: https://github.com/Milesight-IoT/SensorDecoders

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

Pour ce faire, sélectionnez simplement le bon capteur, téléchargez le fichier pour ChirpStack, ouvrez-le avec un éditeur et collez-le dans le champ du codec.

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

Les données devraient maintenant arriver dans ChirpStack. Mais soyez patient, les capteurs n’envoient un signal que toutes les 10 minutes, cela peut donc prendre du temps.

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”

Le forwarder.conf dans le dossier /etc/mosquitto/conf.d ressemble pour moi à ceci :

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

où 192.168.0.50:1884 est l'adresse IP et le port du courtier Chirpstack MQTT

Une fois que tout est configuré, les valeurs devraient apparaître automatiquement dans OpenSprinkler comme indiqué ci-dessus. Configurez maintenant un réglage de programme pour ce capteur, par ex. comme ça:

Ajustement du programme1

Cela maintient l'irrigation entre 10 et 20 % d'humidité du sol. Le réglage de l'irrigation est de 0 à 200%

 

5 commentaires sur «LoRaWan+NB-IOT+MQTT

  1. Tobias dit :

    Bonjour,

    cela semble extrêmement intéressant. Je me demande simplement si vous avez besoin du Milesight UG65-868M, relativement cher, ou s'il fait quelque chose de plus simple ?

    • Administrateur dit :

      Bien entendu, cela fonctionne également avec d’autres passerelles LoRaWAN. L'intégration s'effectuant via MQTT, tout appareil compatible peut être utilisé.

  2. Andréa dit :

    Leider fehlt bei der Firmware 2.3.1 (164) bei Auswahl von “MQTT Subscription” die Felder MQTT Topic/MQTT Filter/Unit 🙁
    Même changer de navigateur n'a rien changé. Est-ce un bug connu ?

Laissez un commentaire

Votre adresse email n'est pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.