Echange entre l’objet et la plateforme
La communication avec la plateforme de stockage peut s’établir par différents moyens. Un des moyens les plus rapides à mettre en place est une simple communication Internet via le protocole MQTT. Mais le formalisme des données (JSON), ajouté au protocole MQTT et la couche de sécurité (TLS) peuvent prendre du temps et de l’énergie à développer. Et surtout, ils n’ont aucun intérêt d’un point de vue « cas d’usage ».
Pour répondre à cette problématique, Orange a développé l’IoT Softbox, un kit de développement adapté aux plateformes de prototypage classiques afin que les développeurs puissent se concentrer sur le développement de la partie fonctionnelle de leur objet. En effet, le kit logiciel s’occupe d’abstraire la connexion, et ainsi proposer les fonctions de gestion des objets (Stockage de données, paramétrage en ligne, téléchargement et envoi de commandes à distance).
Ce kit logiciel propose à un objet de se connecter à la plateforme en MQTT(S) et d’encoder / décoder les trames JSON.
Comment l‘utiliser ?
Tout d’abord il faut utiliser une carte compatible sur l’une des trois plateformes supportées :
Puis il faut télécharger le kit logiciel selon la plateforme choisie : Linux, Arduino ou ARM mbed. Ces SDKs sont diffusés sous License BSD, et sont donc utilisables gratuitement dans le cadre commercial. Le meilleur point de départ est sans doute d’utiliser un exemple proposé dans les kits. Il ne reste ensuite plus qu’à se concentrer sur les fonctions à créer.
Chaque plateforme propose un exemple nommé « basic » qui se propose d’illustrer chaque fonctionnalité de la plateforme d’Orange en mode « device » :
- remontée de données,
- remontée de statuts,
- réception de commandes,
- réception de fichiers (« ressources » ),
- gestion de paramètres.
En désactivant les fonctions non nécessaires à son propre cas d’usage et en ajoutant les fonctionnalités métiers, il est ainsi très rapide de rendre le prototype communicant.
Intégration dans le produit final
Si ce starter kit a seulement pour ambition d’accélérer les prototypages, rien n’empêche de l’intégrer dans un produit final. Cependant, le code n’est pas forcément optimisé, car il y a certainement des fonctions surnuméraires. Or dans un produit final, l’utilisation de code non optimisé peut entrainer des surcouts :
- augmentation de la RAM / Flash des composants,
- plus de code à maintenir.
Cette démarche, si elle ne convient pas toujours à un produit final, reste un excellent moyen de démarrer le développement de son objet en facilitant sa connexion.
Pour aller plus loin
Je suis Chef de projet et Expert temps réel embarqué chez Orange Applications for Business. Je m’occupe actuellement de projets variés comme des intégrations de devices LoRa, de fabrication de LiveIntercom pour Harmonie Mutuelle ou de développements logiciels temps réels.