Dusun Les passerelles intelligentes sont basées sur Linux et programmables. Alors DusunLa passerelle de peut utiliser n'importe quel protocole standard pour transférer des données dans le Cloud.
Les passerelles communiquent avec des capteurs/dispositifs via différents types de connectivité, puis pré-traitent et filtrent les données générées par les capteurs/dispositifs pour réduire la transmission.
Enfin, les données traitées sont traduites dans un protocole standard tel que MQTT/COAP pour être envoyées dans le cloud via des connexions Internet.
Ainsi, Dusun Les passerelles intelligentes sont basées sur Linux et programmables. Alors DusunLa passerelle de peut utiliser n'importe quel protocole standard pour transférer des données dans le Cloud. Ensuite, nous vous montrerons comment transférer des données à l'aide d'un protocole standard lwm2m basé sur le projet open source Wakayama. Cela signifie que les passerelles peuvent être transformées en un client lwm2m qui transfère les données reçues des capteurs par le protocole lwm2m vers un serveur lwm2m.
Pour plus de simplicité, nous utiliserons le serveur The lwm2m à https://leshan.eclipseprojects.io/ qui est un bac à sable basé sur leshan.
OMA Lightweight M2M est un protocole de l'Open Mobile Alliance pour la gestion des appareils M2M ou IoT.
Le LWM2M gère les données via Objet/Instance/Ressource. La figure 1 montre qu'un appareil ampoule peut avoir 1 objets correspondant à 3 identifiants d'instance (0/1/2). Chaque instance a 2 ID de ressource.
Le client de démonstration Wakaama est utilisé pour démontrer le mode d'observation. Normalement, nous pouvons créer un programme pour la passerelle sur un PC et compiler le programme qui sera copié sur la passerelle pour s'exécuter. Les étapes suivantes montrent la procédure :
4. Décompressez la chaîne d'outils OpenWrt téléchargée dans un dossier local (par exemple : home/software/) et ajoutez le chemin de la chaîne d'outils au chemin système :
Ouvrez /etc/bash.bashrc et ajoutez ce qui suit à la fin du fichier :
Export
PATH=home/software/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$PATH
Exécution source /etc/bash.bashrc dans une borne.
5. Exécutez les commandes suivantes pour créer le lwm2mclient :
cd /home/logiciel/wakaama/exemples/client
build mkdir
construction de cd
cmake-gui .. (configurer le compilateur croisé selon la figure 3)
a prendre une
Le lwm2mclient compilé comporte neuf objets LWM2M :
Multiple
Objet | identifiant | Instances | Obligatoire |
Tester | 31024 | Oui | Non |
Ressources:
Prise en charge multiple
Nom | identifiant | Opérations | Instances | Obligatoire | Taper | Gamme |
essai | 1 | L/E | Non | Oui | Entier | 0-255 |
exec | 2 | E | Non | Oui | | |
déc | 3 | L/E | Non | Oui | Flotteur | |
Connexion du Dusun passerelle et exécutez les commandes dans la console ouverte :
./lwm2mclient -4 –h leshan.eclipseprojects.io (-4 signifie ipv4 ; -h signifie serveur)
La procédure de connexion est illustrée ci-dessous :
Si la connexion réussit, le programme affichera l'état : STATE_READY. L'identifiant de connexion ci-dessus est KMCstnKU3g. Relier https://leshan.eclipseprojects.io, nous pouvons trouver nos clients par identifiant d'enregistrement (figure 5):
Cliquez sur nos clients, et nous pouvons trouver les 9 objets énumérés ci-dessus. La figure 6 montre l'objet device(/3). La figure 7 montre l'objet test(/31024) :
1) Le développement de votre client LWM2M (pour le Light Device et le Sensor device) se fait en modifiant le code source de l'exemple client dans le dossier ../wakaama-master/examples/client sur votre PC Linux.
2) Créez un nouveau fichier C pour chaque nouvel objet dans votre client LWM2M. Par exemple, pour le client LWM2M dans le Light Device, vous devez créer un nouveau fichier object_light_profile.c pour l'objet Light Profile en modifiant le fichier object_device.c dans le dossier ../wakaamamaster/examples/client. Réglez les fonctions d'écriture et de lecture pour l'objet Light Profile dans object_light_profile.c. Ajustez également les fonctions get_object et free_object dans object_light_profile.c.
3) Ajustez les fichiers lwm2mclient.c et lwm2mclient.h dans le dossier ../wakaamamaster/examples/client en conséquence. Dans lwm2mclient.c, vous devez initialiser l'objet Light Profile au début de la fonction principale et libérer l'allocation de mémoire de l'objet à la fin de la fonction principale. Dans lwm2mclient.c, vous devez également définir le bon nombre d'objets dans votre client LWM2M.
4) Ajustez le fichier ../wakaama-master/core/liblwm2m.h en ajoutant l'ID du nouvel objet sous la ligne 167.
5) Ajustez le fichier ../wakaama-master/examples/client/CMakeLists.txt pour inclure le nouveau fichier objet et toutes les nouvelles bibliothèques utilisées dans le code modifié.
6) Compilez le nouveau client et exécutez le nouveau lwm2mclient sur le Dusun passerelle.
| Cookies | Durée | Description |
|---|---|---|
| analyse des cases à cocher cookielawinfo | 11 mois | Ce cookie est défini par le plugin GDPR Cookie Consent. Le cookie est utilisé pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie "Analytics". |
| cookielawinfo-case à cocher-fonctionnel | 11 mois | Le cookie est défini par le consentement du cookie GDPR pour enregistrer le consentement de l'utilisateur pour les cookies dans la catégorie «Fonctionnel». |
| cookielawinfo-checkbox-nécessaire | 11 mois | Ce cookie est défini par le plugin GDPR Cookie Consent. Les cookies sont utilisés pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie "Nécessaire". |
| cookielawinfo-checkbox-autres | 11 mois | Ce cookie est défini par le plugin GDPR Cookie Consent. Le cookie est utilisé pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie «Autre. |
| performance de la case à cocher cookielawinfo | 11 mois | Ce cookie est défini par le plugin GDPR Cookie Consent. Le cookie est utilisé pour stocker le consentement de l'utilisateur pour les cookies dans la catégorie «Performance». |
| seen_cookie_policy | 11 mois | Le cookie est défini par le plugin GDPR Cookie Consent et est utilisé pour stocker si l'utilisateur a ou non consenti à l'utilisation de cookies. Il ne stocke aucune donnée personnelle. |