Basée à Grenoble, la société IoTize se spécialise dans la connexion sans fil d’à peu près n’importe quoi. Ajouter une de leurs interfaces à un système lui permet par exemple de transmettre des données sur l’internet ou d’être commandé à distance. Il fait alors partie de l’internet des objets, IoT en anglais, c.à.d. qu’il a été « iotisé ». Il y a d’autres acteurs sur ce marché, mais IoTize se distingue en proposant aussi des outils pour simplifier la visualisation et l’utilisation des données capturées par leurs modules, que ce soit avec une appli sur téléphone ou dans le nuage. De plus, IoTize gère de nombreux protocoles sans fil comme le WiFi, le Bluetooth et le NFC (et bientôt Sigfox).

Le kit d’évaluation sans fil TapNLink

Tout ceci paraît intéressant. Des kits d’évaluation bon marché sont disponibles pour se faire une idée précise de ce qu’IoTize peut représenter pour vous. Chez Elektor je passe pour notoirement difficile à convaincre par ce genre de kits. Je suis donc le testeur idéal pour ce kit d’évaluation sans fil TapNLink Wireless Prime (fig. 1). Une expérience pratique en dit généralement plus qu’une brochure commerciale, n’est-ce pas ?
 
IoTize TapNLink Wireless Primer
Figure 1. Ce kit d’évaluation sans fil TapLink (TNL-PRIMER-NBW) d’IoTize dispose du NFC, du Bluetooth et du WiFi.
(La petite clé USB n’est là que pour vous donner une idée de la taille de l’emballage)

Le kit d’évaluation sans fil TapLink comporte quatre éléments (fig. 2) :

  • Un module µTap IoTize ;
  • Un petit module microcontrôleur (Blue Pill) ;
  • Un petit cordon de cinq fils de couleur ;
  • Un couvercle en plastique gris.

Le principe est que le petit module à microcontrôleur – une carte à STM32 ARM Cortex-M3 alias Blue Pill – joue le rôle de l’appareil cible qui doit être iotisé. Il se connecte au module µTap – une carte de la taille d’un timbre-poste (38 mm x 28 mm) – grâce au câble inclus dans le kit. On peut au besoin clipser le module IoTize à l’intérieur du couvercle en plastique pour le fixer avec deux vis (non comprises) sur une surface, par ex. un mur ou une machine.

TapNLink Wireless Primer contents
Figure 2. Le kit d’évaluation sans fil TapNlink déballé.
Le petit circuit imprimé est la carte µTap, le module bleu est la carte cible STM32 (Blue Pill).

Deux versions

Il existe deux versions du kit d’évaluation sans fil TapNLink, l'une avec NFC et Bluetooth (NB), l'autre qui ajoute le WiFi à la combinaison (NBW). Il y a aussi des modules avec NFC seul, mais pas en kit. C'est la couleur de l’étiquette sur le couvercle en plastique qui permet de les reconnaitre : blanc avec WiFi, bleu sans. J’ai testé le blanc, le TNL-PRIMER-NBW.

Orange est le nouveau rose

L’emballage du kit sert aussi de guide de démarrage rapide et montre comment connecter les deux cartes. Il mentionne un fil rose, mais le cordon de mon kit n’avait pas de fil rose. C’est un peu embêtant car le module IoTize a un connecteur à cinq broches alors que la carte STM32 n’en a que quatre et que le marquage des cartes n’est pas le même. Le cordon a un connecteur à 5 broches d’un côté et cinq fils volants de l’autre, connectables à n’importe quelle carte à microcontrôleur. Il se trouve que dans mon cas le fil rose était orange. Le rose ressemble à l’orange, mais ne dites pas cela à la famille royale Hollandaise. Le fil violet n’est pas connecté à la carte STM32. Voir aussi la figure 3.
 
On alimente le système d’évaluation en connectant le module STM32 à un ordinateur avec un câble micro-USB (aucun des deux n’est inclus dans le kit). Ce n’est pas un problème, car il faut de toutes façons un ordinateur. 

TapNLink Wireless Primer assembled
Figure 3. Le kit d’évaluation assemblé et prêt pour l’expérimentation.

Premiers pas

Toutefois, avant de passer à l’ordinateur, nous commençons par essayer le TapNLink avec un téléphone doté de la fonction NFC. Si vous en avez un et que vous le placez au-dessus du module µTap, la balise est détectée et on vous oriente vers l’appli de démo d’IoTize dans le Play Store de Google. Installez l’appli et ouvrez-la. Si le Bluetooth est activé, vous pouvez maintenant vous connecter à l’appareil (vous devrez d’abord l’appairer avec votre téléphone avant de pouvoir l’utiliser). Une fois connecté, vous verrez un compteur et une commande de LED. Sur l’onglet MySensors, vous verrez la valeur de la tension d’alimentation de la carte STM32 (figure 4) et, si vous glissez vers le haut, vous pouvez aussi voir la température du processeur STM32.

Vous devez vous connecter pour commander la LED

Un curseur dans l’onglet Count Control permet de régler la fréquence de clignotement de la LED PC13 de la carte STM32. Pour que cela fonctionne, vous devez d’abord vous connecter au module IoTize. Pour cela, touchez l’option Supervision dans le menu de l’appli (l’icone en haut à gauche). Entrez « admin » à la fois pour l’utilisateur et le mot de passe. Revenez au curseur et changez la fréquence de clignotement.

Le WiFi fonctionne aussi

Au lieu du Bluetooth, vous pouvez obtenir exactement le même résultat avec le WiFi. Pour utiliser le WiFi, connectez-vous au réseau « Sensor demo_xxxxx » (où xxxxx représente un nombre à 5 chiffres). Ils ont oublié de préciser dans la documentation, ou bien je ne l’ai pas vu, que le mot de passe par défaut est « ABCD1234 » (au lieu de « 12345678 » comme tout le monde). 
 
Maintenant que nous savons que le système d’évaluation fonctionne, nous poursuivrons en essayant de modifier l’application. On trouve des tutoriels détaillés pour cela sur le site web d’IoTize, ainsi que de nombreux autres documents utiles. Comme j’ai réussi à les parcourir, vous devriez y arriver aussi. Ça vaut le peine de voir de plus près comment les choses fonctionnent.

IoTize Sensor Demo app on Android
Figure 4. L’appli Sensor Demo sur un téléphone Android affiche la tension d’alimentation du processeur STM32 de la carte cible.

Deux applications

Il y a deux applications en réalité : l'une qui s’exécute sur la Blue Pill et l’autre sur la carte µTap.
C'est le moment d'expliquer en détail comment les deux cartes communiquent. D’habitude, dans une configuration comme celle-ci, les deux applications savent que l’autre existe et les deux ont un minimum de connaissance du type de données que l’autre attend et des fonctions dont elle dispose. Pas ici. La carte STM32 n’a aucune idée de l’existence du module IoTize et vice-versa, et pourtant ils se parlent. Comment est-ce possible ?

Est-ce un débogueur ?

L’astuce est que le module µTap se comporte un peu comme un débogueur. Il se connecte à la cible à déboguer, pour ainsi dire, et, comme un débogueur, il en inspecte les registres et la mémoire. Il peut aussi les modifier. La cible est le module STM32. Pour que cela fonctionne, la cible doit avoir une interface compatible. Actuellement, seul le protocole de débogage SWD d’ARM est pris en charge, mais pour les autres microcontrôleurs, il existe le protocole propriétaire Secure Serial Software Protocol ou S3P. Ce protocole peut non seulement s’implémenter sur tout microcontrôleur qui dispose de deux ports d’E/S libres (une bibliothèque pour Arduino est disponible sur GitHub), mais il apporte aussi une communication sécurisée. De ce fait, même avec les UCP qui parlent SWD, il faut préférer S3P.
 
Comme un débogueur, l’application IoTize a besoin d’une liste ou cartographie mémoire des variables utilisées par l’application cible. Elle peut alors demander à la cible d’envoyer le contenu de la variable stockée à l’adresse A ou lui dire d’écrire quelque chose à l’adresse B. Cette liste doit être fournie par le compilateur de l’application cible et est en général contenue dans le fichier .ELF (et pas dans le fichier .HEX).

IoTize Studio
Figure 5. On développe les applications dans IoTize Studio (gratuit), essentiellement par glisser-déposer d’objets.

Programmer par glisser-déposer avec IoTize Studio

IoTize Studio, l’environnement gratuit de développement graphique intégré (EDI) pour les cartes IoTize, facilite ce processus (fig. 5). Après l’importation du fichier .ELF de la cible, il connait les noms et adresses des variables et registres disponibles de la cible. Pour le développeur de l’application, ce sont des variables comme les autres. Cela signifie que le développeur d’application µTap n’a pas besoin d’accéder au système cible. Il ou elle n’a besoin de connaître que l’utilité des variables importées (d'où l'intérêt de bien les nommer). En revanche, cela veut aussi dire que lorsque l’application cible est recompilée et que ses symboles changent, il faut aussi recompiler l’application IoTize.
 
Maintenant, IoTize Studio va un peu plus loin car il fait de la programmation de la carte IoTize une affaire de glisser-déposer d’utilisateurs sur des variables de la cible regroupées en bundles. L’application est générée automatiquement, y compris toutes les éventuelles pages web nécessaires. Et dans le même temps, il peut aussi produire l’application Android à exécuter sur votre téléphone pour interagir avec la carte µTap. Il suffit de cliquer sur le bouton Generate App. Cette dernière fonction est possible parce que les gens d’IoTize ont installé le système de développement d’appli Android sur leurs serveurs quelque part dans le nuage. Par conséquent vous, l’utilisateur, n’avez rien d’autre à installer qu’IoTize Studio. Il vous faudra un compte pour accéder à leur nuage, mais c’est gratuit.

Sécurité avant tout

Il reste à souligner l'importance de la sécurité. Nous l’avons déjà évoquée plusieurs fois, mais sans approfondir. La sécurité des données est au cœur de l’écosystème (chez Elektor, nous sommes autorisés à utiliser ce mot une fois par article) IoTize. Elle est intégrée dans le protocole secure serial software communication protocol (S3P) entre la cible et l’hôte (pas dans SWD), et figure également dans la conception de l’application IoTize.

Premier commandement de l’IdO : les utilisateurs ont des droits

Toute application IoTize a des utilisateurs, et ces utilisateurs ont des droits. Une application IoTize peut avoir de nombreux utilisateurs avec des droits différents. Certains sont administrateurs et sont autorisés à faire ce qu’ils veulent tandis que d’autres peuvent seulement examiner certains paramètres, une température par exemple, ou une tension. Nous avons déjà vu la sécurité en action lorsque nous avons voulu changer la fréquence de clignotement de la LED dans l’application de démo. L’utilisateur par défaut n’est pas autorisé à le faire, il faut d’abord se connecter.

IoTize Studio IOTZ Explorer pane
Figure 6. Le panneau IOTZ Explorer est la première chose à voir dans IoTize.
En plus d’éléments sur l’appli, il montre aussi les profils et bundles, et leur association.
Par exemple, Paul a accès à la variable Count_Control parce qu’il a un profil tech.

C’est pourquoi, lorsqu’on crée une application dans IoTize Studio, en plus de concevoir l’interface graphique sympa et branchée, vous devez aussi définir les utilisateurs ou les profils et leur attribuer des droits. Les variables nécessaires à l’application ainsi que les profils (utilisateurs) autorisés à y accéder sont combinés dans ce qu’on appelle des bundles (figure 6). Les bundles se traduisent par des onglets ou des pages dans l’application et donc chaque profil a sa propre interface utilisateur. Comme tout se fait par glisser-déposer, il est très facile de voir ce que les utilisateurs sont autorisés à faire et à voir. La gestion des utilisateurs est ainsi assez simple, même pour moi.

Prise en charge du nuage

Enfin, mais pas sans importance, vient la prise en charge du nuage. L’appli mobile peut communiquer via MQTT avec un tableau de bord du nuage généré à partir de la configuration de l’appli mobile. Cela se fait avec IoTize Studio et des outils à base de serveurs. On peut utiliser les tableaux de bord sur les serveurs de développement d’IoTize (auxquels vous pouvez accéder grâce à votre compte pour compiler des applis Android, voir ci-dessus) et ceci est compatible avec les principales plateformes du nuage comme AWS, Watson, Azure et autres.

IoTize Studio cloud MQTT
Après avoir sélectionné la plateforme IdO (MQTT) dans le panneau supérieur,
vous pouvez configurer MQTT et activer la connexion de l’appareil au nuage.

Résumé

Nous voici déjà à la fin de ce banc d’essai. En résumé, nous pouvons dire que les gens d’IoTize ont trouvé une solution originale et efficace pour ajouter la communication sans fil à tout système à base de microcontrôleur avec deux broches GPIO libres. Non seulement leur solution prend en charge de nombreux protocoles sans fil comme NFC, Bluetooth et WiFi, mais elle intègre également la sécurité des données, ce qui est probablement aujourd’hui la caractéristique cruciale de tout appareil connecté à l’Internet.
La prise en charge du nuage n’a pas non plus été oubliée grâce à MQTT et à des tableaux de bord générés automatiquement. Et puisque le délai de commercialisation est un point sensible, IoTize a fait beaucoup d’efforts pour faciliter tout cela. IoTize Studio avec sa programmation en glisser-déposer, le compilateur d’appli Android fondé sur le nuage et les outils de tableau de bord du nuage font de la mise en route un vrai plaisir. Enfin, on n’en a pas encore parlé, mais IoTize Studio et les cartes sont soutenus par un vaste système de documentation en ligne.
Pour finir je n'ai qu'une toute petite réserve, la couleur du couvercle en plastique n'est pas de mon goût.

Webinaire

Découvrez les dernières fonctions des kits d’évaluation TapNLin :
- ajouter des interfaces NFC, WiFi ou Bluetooth à des microcontrôleurs à base d’ARM Cortex-M ;
- créer des applis mobiles pour en recevoir les données et commander votre application.
 
Outils de démo :
- TapNLink-PRIMER pour NFC, Bluetooth et WiFi
- Logiciel de configuration IoTize Studio
- Ionic, outils de développement multi-plateformes pour Android 
Langage : Anglais
Participants : 50 (max.)

Inscrivez-vous maintenant à https://www.iotize.com/tapnlink-webinar.html