DesignSpark Electrical Logolinkedin
Ask a Question

13 Feb 2017, 9:12

Vos aventures dans l'informatique virtuelle Cloud IoT commencent avec le kit Creator Ci40 de Imagination Technologies

IoT : prenez part à la révolution l'esprit serein

De nombreux ordinateurs à carte unique 64 bits économiques ont fait leur apparition dans le sillage du Raspberry Pi, suite au succès ce dernier. Ils avaient tous pour objectif de tirer profit du marché que le Pi a créé. Cependant, si l'on s'intéresse aux projets IoT (Internet des objets) sérieux, la concurrence est bien plus réduite. Vous souhaitez éviter de faire encore grossir le botnet (réseau de bots informatiques) en bonne forme qui compose le "Musée des horreurs des produits de connectivité" ? Dans ce cas, tournez-vous vers une carte conçue pour un fonctionnement sécurisé, avec une structure logicielle prévue à cet effet. Parmi les rares produits qui peuvent offrir cette perspective aux développeurs, le kit Creator Ci40 de Imagination Technologies se hisse au premier plan.

 

Présentation du kit Creator Ci40

Le kit s'articule autour d'une carte de développement qui offre les caractéristiques suivantes :

Processeur MIPS
Microcontrôleur interAptiv double cœur, à double thread cadencé à 550 MHz
Mémoire cache L1 de 2 x 32/32 ko
Mémoire cache L2 de 512 ko
Unité de virgule flottante
OS Linux OpenWRT

Connectivité
Wi-Fi 2 x 2 802.11 AC
6LoWPAN 802.15.4
Bluetooth (LE et Classic)
1 port Ethernet RJ45
1 port USB

Extension d'E/S
2 interfaces Click MikroElektronika
1 interface Raspberry Pi (type d'embase à 40 broches)

Securité
Module à plate-forme sécurisé (TPM) Infineon pour le stockage de certificats

Mémoire
2 Mo de mémoire Flash NOR de démarrage
512 Mo de mémoire Flash NAND
256 Mo de DDR3 SDRAM
Emplacement pour carte SD

Entrées d'alimentation
Alimentation Micro-USB ou 9 V c.c.

 

Les interfaces click MikroElektronika permettent d'ajouter facilement des capteurs et des actionneurs à l'application. Déjà très nombreuses, de plus en plus de cartes click repoussent les limites en matière de fonctionnalités, en intégrant des accéléromètres ou du Wi-Fi, par exemple. Il existe même une carte click de prototypage, au cas où aucun modèle ne répondrait à vos attentes. Ces cartes vous feront gagner un temps précieux dans le lancement de votre application démontrant sa faisabilité.

Pour mettre en œuvre votre projet en un rien de temps, le kit inclut les éléments suivants :

1 carte de développement Creator Ci40
2 cartes Click6LoWPAN MikroElektronika
3 cartes Click MikroElektronika (thermique, mouvement et relais)
1 câble microUSB

 

Structure logicielle

Le kit Creator se distingue surtout grâce à son support logiciel Open source dédié aux applications IoT.

La carte de développement est fournie avec OpenWRT Linux.

La gestion de périphériques est permise par une implémentation (appelée Awa) du standard Open Mobile Alliance Lightweight Machine to Machine (LWM2M) et simplifie la communication sécurisée avec les serveurs basés sur un Cloud.

Le protocole IPSO (Internet Protocol for Smart Objects) offre un modèle d'objet standardisé pour les capteurs et actionneurs :

 

 

Soyons honnêtes, la documentation des API est tellement volumineuse qu'une journée entière ne suffirait pas pour la lire en intégralité. Cependant, pour vous faciliter la tâche, un guide de démarrage rapide qui va à l'essentiel est disponible sur le support en ligne. Il propose des ateliers intéressants basés sur les cartes Clicker incluses dans le kit.

L’atelier 1 utilise le commutateur embarqué pour envoyer des données de comptage simples à la console du développeur basée sur le cloud. L'extension de cet atelier utilise la carte click intégrant un capteur de mouvement PIR, à la place du commutateur, pour démontrer combien il est simple de modifier votre code pour envoyer un nombre de détections de mouvement à la place.

Un atelier, offrant un exemple d'enregistreur de température est également disponible. Au moment où nous écrivons ces lignes, aucun exemple de Clicker 6LoWPAN n'est encore disponible.

Il est important que vous preniez votre temps pour lire le guide de démarrage rapide et le premier atelier, afin de bien maîtriser les fondamentaux de la carte et des logiciels. Si vous vous sentez vraiment à l'aise, je vous conseille également d'essayer de comprendre comment reflasher votre carte. Je trouve le flashage d'une image OpenWRT sur une carte microSD et son exécution assez instructifs.

 

Mon royaume pour un relais activé à distance

Quel plaisir d'entendre le clic d'un relais en sachant que vous pouvez activer le relais aussi facilement depuis le café en bas de chez vous que depuis n'importe quel emplacement dans le monde avec une couverture Wi-Fi gratuite.

L' atelier 2 offre toute cette joie et plus, ce qui en fait un excellent moyen de passer l'après-midi. Mon après-midi avec le module de relais est détaillé ci-dessous, mais avant de commencer, je veux éviter toute confusion et préciser que:

  • Les commandes qui s'exécutent sur la ligne de commande Linux OpenWRT du Ci40 sont précédées du symbole "#", tandis que
  • Les commandes qui s'exécutent sur ma machine virtuelle Linux Mint 18.1 Cinnamon sont précédées du symbole "$".

Je me suis tout d'abord connecté à distance au Ci40 :

$ ssh root@ipaddr

Où "ipaddr" est l'adresse IP de votre Ci40. Ensuite, j'ai commencé par vérifier la version de LetMeCreate qui était en cours d'exécution :

# opkg list-installed letmecreate

Il s'agissait de la version 1.1.0., or j’avais besoin de la version 1.3.0 (ou ultérieure). La version 1.4.0 venait d'être mise à disposition sur Github quelques jours plus tôt, je l'ai donc téléchargée et installée sur le Ci40. Je vous indique la méthode qui est probablement la plus facile :

1. Utilisez Firefox (ou le navigateur de votre choix) sur votre distribution Linux pour télécharger le fichier à partir de Github

2. Sur la ligne de commande de votre terminal, accédez au répertoire Downloads :

$ cd Downloads

3. Exécutez la commande SCP sur le fichier pour le copier dans le répertoire racine du Ci40 :

$ scp4.0-1_pistachio.ipk root@ipaddr:/

4. Install the package on the Ci40:

# opkg install /letmecreate_1.4.0-1_pistachio.ipk

Lorsque vous avez terminé, si vous le souhaitez, vous pouvez supprimer le fichier .ipk du répertoire racine. Une fois LetMeCreate à jour, je suis passé aux choses sérieuses en configurant l'application. Pour ce faire, j'ai accédé au répertoire "myworkspace" que j'ai configuré plus tôt dans la matinée, qui dans mon cas était le suivant :

$ cd /home/redstone/Projects/Ci40/myworkspace

J'ai ensuite cloné les fichiers de projet à partir de Github :

$ git clone https://github.com/creatordev/w2-remoterelay

L'étape suivante consistait à mettre à jour les flux OpenWRT pour détecter la nouvelle application :

$ cd ../openwrt-sdk$
./scripts/feeds update -a && ./scripts/feeds install -a

Je suis ensuite passé à la compilation :

$ make package/w2-remoterelay/compile

Grâce à la magie des fichiers makefile, notre fichier remoterelay_1.0.0-1_pistachio.ipk est apparu dans le dossier openwrt-sdk/bin/pistachio/packages/myworkspace

Pour obtenir le même résultat sur notre carte de développement, nous devons accéder au répertoire où se situe le fichier de l'application et dégainer la commande SCP une nouvelle fois :

$ scp remoterelay_1.0.0-1_pistachio.ipk root@ipaddr:/

Il me restait juste à installer et à exécuter l'application :

# opkg install remoterelay_1.0.0-1_pistachio.ipk
# /bin/remoterelay

Maintenant que l'application s'exécute, la prochaine étape consiste à ouvrir un navigateur sur la machine de votre choix et à accéder à la Developer Console de Imagination Technologies. C'est ici que nous retrouvons nos appareils connectés aux serveurs Cloud Creator.

Chez Imagination Technologies, le moins que l'on puisse dire, c'est qu'ils sont très généreux avec leurs serveurs Cloud. Vous pouvez y connecter autant d'appareils que vous le souhaitez, tant que vous respectez une utilisation "équitable et raisonnable". Cependant, dans notre cas, un seul appareil nous intéresse : l'objet avec l'ID 3201.

 

Si nous cliquons dessus, des informations standardisées IPSO très intéressantes s'affichent concernant l'état de notre appareil.

 

Si nous cliquons sur l'icône en forme de crayon (mise en évidence par la flèche), nous pouvons modifier l'état de l'appareil.

 

 

 

Nous pouvons faire passer la valeur du champ de False à True et inversement. Lorsque nous cliquons sur "Save", la valeur est écrite sur l'appareil. C'est avec la plus grande satisfaction que nous entendons alors un clic provenant des relais Omron G6D-1A-ASI et que nous voyons une rangée de LED clignoter en alternance sur la carte. Un véritable spectacle son et lumière !

 

Parmi les types d'outils très utiles que nous testons dans cet exemple, il y a également les webhooks. Pour faire simple, un webhook permet à un événement, qui se produit à un endroit précis sur Internet, de déclencher une réponse prédéterminée à un autre endroit. Dans notre cas, nous pouvons envoyer des données relatives à nos relais vers une page Web lorsque l'état des relais change. Pour une démonstration, accédez à la page requestb.in.

Si, lorsque vous essayez d'accéder à cette page, vous cliquez sur le gros bouton vert "Create a RequestBin", vous arrivez sur une page semblable à celle-ci :

Copiez l'URL bin et revenez à la console du développeur. Cliquez sur le lien en dessous de "Devices" appelé "Subscriptions". Sur cette page, vous pouvez ajouter les données des webhooks sur lesquelles vous souhaitez en savoir plus :

Si nous revenons ensuite à la section "Devices" et que nous basculons nos relais, nous pouvons retourner sur http://requestb.in/ et actualiser la page pour voir que notre appareil IoT nous informe du changement d'état et du moment auquel il s'est produit :

 

Si, avec cet exemple, vous souhaitez aller plus loin, une application Android et un fichier Node.js sont également disponibles. En ce qui me concerne, je m'arrête ici, car mon estomac, peu intéressé par le sujet, me signale qu'il est l'heure d'aller manger. Notons qu'en parcourant les instructions, il est évident que des développeurs peuvent se servir de ces exemples comme base pour leurs propres applications.

Conclusions

Ce n'est pas un secret, la réputation de l'ensemble des concepts de l'IoT est menacée par des produits qui souffrent d'une conception médiocre, d'une exécution dans de mauvaises conditions et d'une sécurité reléguée au second plan. Le kit Ci40 a été mis au point dans le but de faciliter le développement de solutions évolutives et bien conçues pour des appareils connectés, plutôt que pour un petit projet unique qu'il est possible de mettre en œuvre avec n'importe quel ordinateur mono-carte.

Un produit bien conçu, soumis à des tests rigoureux : il est important que les développeurs de l'IoT suivent cette règle. C'est ainsi que l'IoT pourra devenir une technologie de confiance dont l'objectif est d'améliorer notre quotidien. Le kit Ci40 est une bonne base pour les développeurs qui ont compris ce point.

Annexe A - Informatique virtuelle Cloud

Depuis cinq ans, les entreprises et les utilisateurs n'ont que le mot "Cloud" à la bouche. Mais de quoi s'agit-il exactement ? Et pourquoi devrions-nous être vigilants ? Au sens le plus large du terme, l'informatique virtuelle Cloud, ou Cloud Computing, est un processus informatique qui se produit ailleurs que sur la machine locale (c'est-à-dire le MAC, le PC ou l'ordinateur portable que vous utilisez à l'instant présent). Ce terme est en fin de compte issu des diagrammes utilisés à une époque lors des présentations commerciales. Ces diagrammes présentaient différents processus se connectant à un emplacement distant, matérialisé par de grosses flèches rouges qui venaient et partaient d'un nuage duveteux. Ce symbole permettait de faire abstraction de la complexité du réseau étendu longue distance.

Dans la pratique, lorsque les informaticiens font référence à l'informatique virtuelle Cloud, il a tendance à parler du "modèle de Cloud public", dont le stockage ou le traitement passent par Internet. On peut citer des exemples bien connus de stockage Cloud, comme les services proposés par Dropbox ou OneDrive de Microsoft (qu'il est possible d'utiliser pour charger et partager de grandes quantités d'images, de vidéos et d'autres données). Facebook et YouTube sont également des services de stockage Cloud.

Mais le Cloud ne se limite pas au stockage. Un domaine dans lequel le Cloud connaît une croissance très rapide est le délestage de la charge de travail du processeur vers de grandes fermes de serveurs. Bien souvent, il s'agit simplement d'exécuter un logiciel de base de données sur les serveurs d'un fournisseur, plutôt que sur les vôtres. Mais en poussant l'idée jusqu'au bout, cela peut devenir très intéressant pour les entreprises qui ont des besoins en informatique très importants, mais de façon irrégulière. Elles peuvent ainsi augmenter ou réduire l'utilisation du traitement dans le Cloud en fonction de leurs besoins du moment. Si vous aimez les mots tendance, c'est ce que l'on appelle le "Cloud bursting". Il permet aux entreprises d'éviter des investissements massifs en infrastructure informatique, qui serait la plupart du temps sous-exploitée.

Les entreprises ne sont pas les seules à tirer parti du delestage de traitement vers le Cloud. De nombreux produits grand public qui utilisent des services comme Siri ou Alexa ne traitent qu'une toute petite partie de vos commandes vocales sur votre appareil. Derrière ces applications, ce sont les serveurs d'Apple et d'Amazon dans le Cloud qui gèrent les technologies complexes (et gourmandes en ressources) comme la reconnaissance vocale automatique et la compréhension du langage naturel.

D'autres termes sont associés à ce sujet, comme "Software as a Service" ou SaaS, Logiciel en tant que service (exemple : Microsoft Office 365), ou bien "Platform as a Service" ou PaaS, Plate-forme en tant que service (exemple : hébergement Web Posh). Ces termes désignent cependant, pour la majorité, uniquement une combinaison de stockage et de traitement hébergés dans le Cloud, sur les serveurs d'autres entreprises.

Les services Cloud exigent une certaine vigilance. En effet, un certain nombre de questions se posent concernant l'étendue de l'intégration du Cloud dans vos vies. Parmi les plus évidentes, vous pouvez vous demander, que faire lorsque l'accès en ligne n'est pas disponible (attaques DDoS sur votre fournisseur de service, fin du monde™, etc.), ou ce qu'il en est de la sécurité des données auxquelles les pirates vont tenter d'accéder 24 h/24, 7 jours sur 7. Une synchronisation locale des fichiers et le codage 256 bits répondent en partie à ces questions, mais ce n'est pas la panacée. Des questions moins évidentes se posent également. Par exemple, qui détient les droits sur les données que vous envoyez sur le Cloud (de façon intentionnelle ou non) ? Que peuvent faire les différentes parties avec ces données ? Voilà des problématiques auxquelles vous devrez probablement répondre, à mesure que l'informatique virtuelle Cloud s'intègre petit à petit à tous les aspects de notre vie.

Mark completed his Electronic Engineering degree in 1991 and went on to work in real-time digital signal processing applications engineering, later moving into technical marketing.

13 Feb 2017, 9:12

Commentaires