Cette application IOT2050 a la tâche de collecter des données décentralisées et de les transmettre par radio. La longue portée de la technologie LPWAN (LORA) est utilisée à cet effet. L'IOT2050 sert de passerelle Lorawan. Le Lorawan global (réseau large à longue portée) de The Things Network ou The Things Stack Community Edition est utilisé comme serveur réseau. Ce manuel décrit le logiciel et la structure matérielle de la passerelle (la configuration et la fonction des périphériques finaux (par exemple les capteurs) ne sont pas expliqués dans ce manuel, car il dépend de l'objectif individuel de l'application):

Les composants matériels suivants sont requis pour l'application:
Vous pouvez également voir toutes les pièces individuelles de la liste de commandes.
L'interface Arduino Uno du SIMATIC IOT2050 est utilisée pour intégrer le concentrateur IC880A. Un bouclier adaptateur est requis à cet effet, qui combine les affectations de broches. Le concentrateur est fourni avec 5 V.
Le bouclier adaptateur utilisé dans cette application était auto-construit. Les composants requis peuvent être tirés de la liste de commandes. De plus amples informations sur la structure peuvent être trouvées dans le fichier du projet (.pro), le fichier schématique (.sch) et le fichier de mise en page (.kicad_pcb).
Le concentrateur de Lorawan IC880A est un module d'émetteur / récepteur haute performance multicanal conçu pour recevoir plusieurs paquets LORA en utilisant différents facteurs de propagation sur plusieurs canaux. Le module de concentrateur IC880A peut être intégré dans une passerelle en tant que frontal RF complet de cette passerelle.
La figure suivante montre la structure matérielle complète de la passerelle Lorawan. Pour connecter l'antenne (2 dBI dipol antenne 863-870 MHz avec RP SMA) au module IC880A, un adaptateur SMA U.FL est utilisé. Le concentrateur est branché sur l'interface Arduino Uno de l'IoT2050 avec le bouclier de l'adaptateur.

Le logiciel suivant est utilisé pour ce manuel:
Pour la première mise en service de l'IOT2050, veuillez vous référer à la mise en place. Vous pouvez obtenir une aide supplémentaire dans le forum SIMATIC IOT2050.
Après avoir travaillé dans la configuration, une mise à jour doit être effectuée pour le système et GIT doit être installé. Les commandes suivantes sont exécutées pour ceci:
sudo apt-get update
sudo apt-get install git
Établissez une connexion SHH via le mastic et utilisez les commandes suivantes:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


Pour cloner la dernière version de la station LORA Basics ™ de GitHub, utilisez les commandes suivantes:
cd /home
git clone https://github.com/lorabasics/basicstation.git
Maintenant, le fichier setup.gmk , qui fait partie du clone, doit être adapté à l'IOT2050 pour stocker les répertoires corrects pour la chaîne d'outils. Pour ce faire, ouvrez le fichier dans un éditeur en utilisant les commandes suivantes:
cd /home/basicstation/
nano setup.gmk
Avec la combinaison de clé CTRL+C une spécification de ligne peut être montrée dans le nano-éditeur:

Les lignes 55 - 66 doivent être commentées avec # et les lignes 68 - 72 doivent être modifiées à ce qui suit:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
De plus, la ligne 76 doit être modifiée comme suit:
export LD_LIBRARY_PATH=/usr/local/lib
Enregistrez et fermez le fichier avec les commandes suivantes:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
Pour construire la station de transfert de package, utilisez la commande suivante dans le répertoire /home/basicstation/ :
make platform=rpi variant=std
Une fois la station de base compilée, un nouveau dossier appelé build-rpi-std avec quatre sous-dossiers est apparu. Vous pouvez trouver la station binaire compilée dans le bin du sous-dossier.
Sauf indication contraire, les commandes et actions suivantes sont toujours exécutées dans ce répertoire ( /home/basicstation/build-rpi-std/bin/ ).
Certaines configurations sont nécessaires pour la station de base, qui sont spécifiées dans la station.conf de fichiers.conf. Copiez le fichier prêt prêt à l'emploi.conf dans le répertoire (astuce: l'outil WinSCP peut être utilisé pour transférer les fichiers).
La station LORA Basics ™ doit être fournie avec le serveur réseau Lorawan® (LNS) auquel se connecter. Pour cet exemple, les choses que le serveur d'édition communautaire Stack avec le port 8887 est utilisé. Ceci est spécifié dans le fichier tc.uri . Copiez le fichier prêt à l'emploi Tc.uri dans le répertoire.
Cela nécessite un certificat racine. La commande suivante peut être utilisée pour obtenir un certificat et créer le fichier tc.trust directement:
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
Vous pouvez également utiliser un autre certificat racine, qui doit être inséré dans le fichier tc.trust sans les caractères <> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
Le module IC880A avec la puce de bande de base SX1301 doit être réinitialisé à chaque fois qu'il est allumé. Cependant, cette réinitialisation n'est pas effectuée par le hal de la puce. Par conséquent, un script Python est écrit pour en faire l'extérieur. Copiez le script Python IC880A_RESET.py dans le répertoire. Ensuite, la broche d'E / S numérique doit être définie comme sortie, car celle-ci est utilisée comme broche de réinitialisation:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

L'étape suivante consiste à ajouter un script shell qui exécute le script Python. Ce script sera plus tard exécuté avec le début du binaire de la station . Copiez le fichier prêt à l'emploi reset_gw.sh dans le répertoire. Dans ce script shell, le script Python créé précédemment pour la réinitialisation matérielle du concentrateur est appelé. Le script doit maintenant être fourni avec des droits exécutables avec la commande suivante:
chmod 755 reset_gw.sh
Pour obtenir l'EUI de la passerelle pour l'enregistrement sur le serveur, la station de programme doit être démarrée une fois (l'exécution n'est pas encore entièrement fonctionnelle):
./station
L'EUI de la passerelle est composé de l'adresse MAC de l'IoT2050 et est affiché dans la sortie de la console après le démarrage de la station:

L'application peut être arrêtée avec la combinaison de clés CTRL+C .
Enfin, pour autoriser la passerelle avec l'édition Community Things Stack, une clé API doit être stockée dans un fichier appelé tc.key . Pour ce faire, la passerelle doit être enregistrée à The Things Stack Community Edition. Ceci est expliqué dans les étapes suivantes: Après avoir connecté la page Web, la région est sélectionnée. Après cela, une nouvelle passerelle peut être ajoutée. Pour cela, un ID de passerelle unique doit être entré, ainsi que la passerelle EUI de la figure précédente. De plus, le plan de fréquence pour la région est sélectionné. En outre, il peut être sélectionné si le statut de la passerelle est publiquement visible. Toutes les configurations requises sont présentées dans la figure suivante:

Après avoir enregistré la nouvelle passerelle, une clé API doit être générée pour autorisation. Avant que la clé ne soit générée, il se voit attribuer un nom. De plus, il est donné des droits individuels pour se lier en tant que passerelle avec un serveur de passerelle pour l'échange de données. Après la création de la clé API, il doit être copié et stocké de toute urgence, car il est crypté par la suite et donc plus visible.


Utilisez les commandes suivantes pour construire le fichier tc.key et utilisez la touche API copiée précédemment au lieu de xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
Cela complète l'installation et la configuration de la station de base. Maintenant, la station peut être démarrée manuellement avec la commande:
./station
Si l'installation et l'authentification sont réussies, la station démarre et la passerelle s'affiche comme connected dans la console de l'édition Community Stack Things:

Vous pouvez recevoir des informations supplémentaires sur le site Web The Things Stack - ajout de passerelles.
Copiez le script de shell prêt à l'emploi Start.sh, qui appelle le binaire station , dans le répertoire. Le script doit ensuite être fourni avec des droits exécutables:
chmod 755 start.sh
Copiez le fichier de service Systemd prêt à l'emploi IoT-2050-Lora-Gateway.service dans le répertoire /etc/systemd/system . Pour passer à ce répertoire, utilisez la commande suivante:
cd /etc/systemd/system
Le fichier de service peut désormais être démarré manuellement et testé avec la commande suivante:
sudo systemctl start iot2050-lora-gateway.service
Après le début réussi du service et de la station, il peut être terminé avec la commande suivante:
sudo systemctl stop iot2050-lora-gateway.service
Pour activer le start automatique du service, utilisez la commande
sudo systemctl enable iot2050-lora-gateway.service
Après le prochain redémarrage, la passerelle sera lancée avec chaque botte.
La passerelle est maintenant prête à l'emploi. Les périphériques d'extrémité peuvent désormais être ajoutés à l'application via l'édition Community Stack Things, qui transmettent ensuite les données via la passerelle vers le serveur. Ici, vous pouvez trouver des dispositifs finaux possibles. Comment ajouter des périphériques d'extrémité sur le serveur est décrit ici
Node-Red est utilisé pour visualiser les données collectées. L'éditeur Web est accessible via l'adresse IP de l'IOT2050 et du port 1880. Node-Red est dans Autostart par défaut sur l'exemple d'image. Pour y accéder, ouvrez un navigateur sur votre PC connecté à l'IOT2050 et ouvrez l'URL http://<IP of the IOT2050>:1880/ .
Maintenant, le fichier flows.json peut être importé dans Node-Red:
Menu -> Import -> Select file for Upload

Les nœuds doivent être ajustés comme suit:
MQTT: Insérez l'adresse du serveur et le port de la pile de choses dans l'onglet Connexion. Pour vous abonner à tous les messages, définissez le sujet sur # .

Entrez votre nom d'utilisateur et le MQTT-API-Key comme mot de passe . Vous pouvez générer cette touche API dans les ensembles d'intégrations de votre application:



Parse Node: Dans le nœud d'analyse de fonction, les différents device_id doivent être ajustés (en fonction de l'application):

Description du flux: Pour traiter les messages entrants, un objet JavaScript est créé en premier. Ensuite, les liaisons montantes sont analysées dans le nœud d'analyse de fonction pour extraire les messages individuels de chaque périphérique d'extrémité. De plus, le nœud est étendu à trois sorties. Ainsi, chaque message est attribué à une sortie et représente un périphérique final. À l'aide de la bibliothèque de tableau de bord et du nœud de jauge, ceux-ci peuvent ensuite être intégrés individuellement dans un tableau de bord.
L'écoulement pré-construction montre un exemple de la combinaison de trois dispositifs d'extrémité dans le nœud d'analyse. L'ID doit être ajusté en fonction de l'application et du paramètre du réseau de choses.
Tableau de bord: Pour afficher les données, la palette de tableau de bord peut désormais être installée et configurée individuellement:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
Achèvement: Pour télécharger le flux sur l'IOT2050, cliquez sur le bouton Deploy
Pour ouvrir le tableau de bord de Node-Red, ouvrez l'URL http://<IP of the IOT2050>:1880/ui
Merci de votre intérêt à contribuer. Tout le monde est libre de signaler les bogues, la documentation peu claire et d'autres problèmes concernant ce référentiel dans la section des problèmes. De plus, tout le monde est libre de proposer toutes les modifications de ce référentiel à l'aide des demandes de traction.
Si vous n'avez pas signé auparavant le Contrat de licence de contributeur Siemens (CLA), le système vous invitera automatiquement à le faire lorsque vous soumettez votre demande de traction. Cela peut être effectué commodément via la plate-forme en ligne de l'assistant CLA. Une fois la CLA signée, votre demande de traction sera automatiquement effacée et préparée pour la fusion si toutes les autres étapes de test réussissent.
Veuillez lire les informations juridiques.