IoT Builder
IoT (Internet des Objets) Builder est un produit unique! C’est un environnement de conception d’applications pour l’internet des objets qui s’adapte aux cartes Arduino ou Raspberry Pi. Il peut être ajouté au Visual Designer pour Arduino ou pour Raspberry Pi afin de développer des interfaces distantes pour des projets enfouis.
Le déroulement de la conception est flexible et intuitif. Commencez par définir le matériel sur votre schéma en ajoutant les modules électroniques, les capteurs et les cartes d’évaluation pris dans la galerie de périphériques. Puis créer le panneau de votre interface en ajoutant des boutons, des graphes, etc. choisis dans la galerie des contrôles. Enfin, utilisez les méthodes d’algorigramme du Visual Designer, ou du code C (Arduino) ou du code Python (Raspberry Pi) pour établir le lien entre l’interface et l’électronique.
A chaque étape du développement, le système complet peut être testé et débogué dans la simulation Proteus VSM. Celle-ci exécute le programme en utilisant le modèle de processeur, les périphériques connectés ainsi que l’interaction de l’interface avec l’électronique.
Lorsque tout fonctionne comme souhaité, le firmware ainsi que l’interface sont déployés vers le matériel par un simple clic. L’étape finale est de repérer le matériel cible, de communiquer avec l’interface par un lien TCP/IP puis de contrôler le hardware distant depuis votre téléphone, votre tablette ou votre PC
Intérêt
IoT Builder est un module additionnel à Visual Designer et Proteus VSM pour Arduino ou Raspberry Pi. Vous pouvez l’utiliser pour concevoir une interface utilisateur (commutateurs, boutons, afficheurs, etc) destinée à votre téléphone mobile ou tablette; Avec Visual Designer vous programmez le hardware afin qu’il fonctionne en interaction avec l’interface créée.
Il n’est pas nécessaire de connaître les langages HTML, JavaScript, Python et l’interconnexion TCP/IP. Toute la complexité de la couche de transport et la communication entre le hardware et l’interface distante est prise en charge par l’outil. Le programmeur se consacre uniquement à implémenter la fonctionnalité désirée.
Le panneau de contrôle (front panel) est dessiné dans un éditeur et la logique du programme est conçue soit par des blocs d’algorigramme, soit par des appels de méthodes en C-Arduino / Python-Raspberry Pi.
L’IoT builder convient donc parfaitement pour l’apprentissage des principes des applications pour l’internet des objets ou pour le développement rapide de prototype à destination des développeurs plus expérimentés.
Comment fonctionne-t-il?
IoT Builder permet au développeur non expérimenté de produire des applications dans lesquelles des cartes Arduino ou Raspberry Pi sont contrôlées par un smartphone, une tablette ou un dispositif d’accès à Internet.
La suite logicielle comprend une pile logicielle pour le hardware, une application mobile, et un éditeur d’interface (le ‘Virtual Front Panel’). L’interface peut être dessinée dans Proteus, grâce à une bibliothèque d’éléments prédéfinis tels que boutons, commutateurs, afficheurs ainsi qu’un journal de message ou des graphiques. Ceux-ci peuvent être contrôlés de la même façon qu’un périphérique matériel du Visual Designer, c’est à dire par glisser-déposer de blocs d’actions dans un algorigramme.
Comme toujours dans Proteus, la communication entre le firmware et l’interface peut être simulée avant déploiement. L’ensemble utilise un micro serveur web qui fonctionne sur le hardware.
Conception de l'interface
Le panneau de contrôle (front panel) est une interface distance qui communique avec votre application afin de visualiser les interactions sur un navigateur internet, une tablette ou un téléphone mobile. Dans IoT builder, la conception de l’interface intervient plus par dessin que par codage.
De nombreux contrôles sont fournis en standard, avec plusieurs thèmes graphiques disponibles. Les utilisateurs avancés peuvent utiliser des outils vectoriels tel que Inkscape pour concevoir leur propre thème.
Le firmware
Le firmware est le programme qui communique à la fois avec les périphériques et les contrôles contrôles IoT de votre interface. Il fonctionne dans les deux directions. Par exemple, un clic sur un bouton de l’interface doit allumer une LED, de même une donnée qui évolue sur un capteur doit mettre à jour l’interface. L’arbre du projet contient la liste de tous les périphériques que vous avez ajoutés, ainsi qu’une liste de tous les contrôles IoT de l’interface (panneau de contrôle). Chacune de ces listes affiche les fonctions utilisables dans votre programme. Par exemple, un afficheur contiendra une méthode print() et un capteur de température une méthode readTemp(). Dès lors, vous pouvez glisser-déposer ces méthodes depuis l’arbre du projet directement dans votre programme. Les méthodes de haut niveau réalisent une abstraction de toute la complexité d’un programme bas niveau.
Contrôle d’accès
Vous pouvez également mettre en place différents niveaux de contrôle d’accès pour votre application IoT. L’identification via un login et un mot de passe permettra à l’utilisateur d’accéder au statut d’administrateur et aux onglets du panneaux permettant d’ajuster les autorisations si l’utilisateur est connecté ou non. Deux événements pour la connexion et la déconnexion peuvent également être glissés sur le programme principal vous permettant de répondre facilement aux changements réussis de l’état de l’utilisateur dans le programme. C’est un moyen simple pour apprendre et enseigner le contrôle d’accès et les permissions dans le contexte d’une application connectée.
Simuler et déboguer
IoT Builder utilise la simulation Proteus VSM afin que le firmware soit simulé en même temps que l’électronique du schéma. L’interface utilisateur distante est visible dans Proteus, ce qui permet de tester les interactions entre l’interface et le hardware virtuel. Vous pouvez également utiliser notre application gratuite, valable pour iOS et Android, pour contrôler la simulation. Lorsque le smartphone ou la tablette sont sur le même réseau que le PC, l’application repère automatiquement le hardware en cours de simulation, ce qui permet de le contrôler. Indépendamment de la façon dont vous travaillez, il est possible de déboguer le système en pas à pas ou avec des points d’arrêt
Déploiement
Une fois le débogage terminé et testé en simulation, vous transférez le programme sur le hardware physique (une carte Raspberry Pi nécessite une configuration initiale, à ne réaliser qu’une seule fois). Proteus peut détecter votre Arduino Yun, Uno+ESP8266 ou Raspberry Pi si le hardware est sur le même réseau et préconfigurer les options SSH pour vous. Ainsi, dans la plupart des cas, vous pourrez déployer vers le hardware physique via le réseau sans fil par un simple clic sur un bouton. Avec une Arduino vous pouvez connecter un câble USB afin de la programmer. Proteus prend en charge tous les transferts (panneau de contrôle, le serveur web, firmware). Après cela, vous pourrez utiliser l’application ‘IoT Controller’ pour Ios ou Android de votre smartphone ou votre navigateur internet pour contrôler le hardware.
Protocole MQTT
MQTT est l’abréviation de Message Query Telemetry Transport. Il s’agit d’un protocole de messagerie de type publication/abonnement, extrêmement simple et léger, conçu pour les appareils contraints et les réseaux à faible bande passante, à forte latence ou peu fiables. MQTT est pris en charge directement dans le produit IoT Builder, ce qui facilite la mise en place de systèmes multi-appareils et la gestion des communications entre eux.Deux choses principales peuvent être faites avec MQTT et Proteus.
Vous pouvez envoyer une commande pour contrôler une sortie. Ici, votre appareil mobile se connecte au dispositif de commande via le Wi-Fi et charge le panneau avant virtuel. Il transmet ensuite une commande destinée à l’appareil via l’interface utilisateur à distance. Cette commande est envoyée au serveur MQTT. Le dispositif de l’appareil reçoit la commande lorsqu’il se réveille et se connecte au serveur MQTT, et le microprogramme interprète et exécute la commande.
Vous pouvez lire et publier les données d’un capteur. Ici, votre appareil mobile se connecte au Raspberry Pi via le Wi-Fi et charge le panneau avant virtuel. Il transmet ensuite une commande destinée à l’appareil capteur via l’interface utilisateur à distance. Cette commande est envoyée au serveur MQTT. L’appareil capteur recevra la commande lorsqu’il se connectera au serveur MQTT et le microprogramme de la commande sera interprété et exécuté.
Dans les deux cas, le protocole MQTT est utilisé comme un pont entre l’appareil (arduino) et l’unité de contrôle (raspberry pi). L’utilisation d’un broker dans le cloud n’est pas essentielle mais permet à l’appareil de rester en veille pendant de longues périodes, ce qui économise de l’énergie. Dans un environnement de test en classe, il est recommandé d’avoir le broker sur le PC lui-même, car vous verrez le débogage sur l’invite de commande du broker et la mise en réseau sera triviale.