Les objets connectés et l’Internet des objets (IoT)
L’Internet des objets (IoT, Internet of Things)
L’Internet des objets (IoT ou Internet of Things) désigne principalement un réseau d’objets connectés dont le nombre est difficile à évaluer, mais que les spécialistes de ce domaine estiment à plusieurs milliards.
À noter que le termething désigne aussi bien un widget qu’un équipement de communication de typedevice. Les domaines d’application sont nombreux et concernent principalement :
-
la gestion des infrastructures, par le pilotage d’électrovannes et d’autres équipements lourds,
-
la diffusion de média avec les enceintes connectées,
-
les véhicules, avec un recueil d’informations et une aide au pilotage via Internet,
-
la domotique avec la généralisation des thermostats connectés, la surveillance vidéo et audio et la gestion électronique de serrures, par exemple ,
-
l’agriculture avec la gestion de l’ensoleillement et de l’arrosage assistée par un réseau de capteurs et d’actionneurs (vannes, servomoteurs, moteurs de ventilateurs), à grande ou à petite échelle,
-
la surveillance de l’environnement avec les stations de mesure en réseau,
-
la robotique avec la supervision à distance de machines ou de véhicules autonomes,
-
la création artistique avec la réalisation...
Sécuriser ses montages et contrôler les accès
Laisser ouvert un accès par Internet à un module intelligent assurant des fonctions de surveillance ou de mesure, ou encore dédié à améliorer l’ambiance de son logement nécessite soit une grande confiance dans la bonté et l’intelligence humaine, soit un certain degré d’inconscience ou plus professionnellement, de suivre des règles basiques et strictes de protection de cette connexion.
La plupart des premiers montages permettant d’accéder à la valeur d’un capteur depuis un navigateur sont réalisés et exécutés dans un environnement clos qui ne dépasse pas le point d’accès local. Tout le monde peut se connecter au routeur (la box) ou à un smartphone partageant sa connexion et visualiser le résultat concret du montage et constater la facilité d’utilisation.
En revanche, cette « expérience utilisateur » apparaît plus risquée lorsqu’elle est envisagée sous un angle plus global, avec une exposition sur Internet.
1. Les objets connectés et leur environnement hostile
Les risques sont multiples, allant de l’intrusion par un utilisateur malveillant pour prendre le contrôle d’un équipement sensible comme une webcam et son microphone ou pour pirater le routeur et le compte internet qui lui est associé, à l’utilisation de la même webcam comme acteur d’un déni de service organisé.
Parmi les risques pesant sur les objets connectés, figurent :
-
la perturbation du fonctionnement d’un équipement, pouvant mener à sa destruction s’il est utilisé au-delà de ses limites,
-
la modification de son programme pour modifier son comportement et émettre des messages pour créer un déni de service vers le serveur ou un autre site, ou encore fausser des données résultant de mesures ou de calculs,
-
l’espionnage, en capturant des données de mesures, des images ou des sons ou encore en recueillant des informations sur les habitudes des occupants d’un logement.
Sans exagérer la crainte que représente le potentiel des objets connectés, deux considérations sont à prendre...
Relayer la valeur d’un capteur par Internet, un affichage ou un son
Le principe est le suivant : un capteur lit une valeur et la stocke dans une variable puis un programme exploite cette variable pour définir les actions à réaliser. Le schéma type « capteur-microcontrôleur-actionneur » est complété par un module de communication avec Internet pour envoyer un message ou permettre sa lecture depuis un navigateur.
Le plan d’ensemble du montage est le suivant.
Schéma de principe
Ce schéma très général peut se décliner avec un microcontrôleur Arduino, un module ESP8266 comme passerelle Wi-Fi et permettre ainsi un accès direct en local depuis un point d’accès ou bien utiliser le cloud ou des services spécifiques pour la gestion des échanges ainsi que la collecte et l’analyse des données.
L’ESP8266 et son microcontrôleur compatible avec l’EDI de l’Arduino augmentent le potentiel d’une station pilotant un ou plusieurs objets connectés. Le schéma ci-dessous décrit une architecture complète avec les bibliothèques qui permettent le fonctionnement.
Si le nombre de ports de l’ESP8266 permet de réaliser le montage, il peut se substituer à l’Arduino, ce qui simplifie considérablement le montage.
1. Un premier montage basé sur un serveur web
Ce premier montage va permettre de se familiariser avec cette architecture.
Un capteur va donc mesurer une grandeur physique à l’aide d’une sonde. Dans le cas présent, il s’agit de la température. L’algorithme programmé dans le module ESP8266 commandera deux types d’actionneurs :
-
Un haut-parleur, pour émettre un son dont la hauteur, l’intervalle ou le volume pourront être variables selon la valeur mesurée.
-
Un afficheur, qui pourra prendre plusieurs formes, textuelles ou non (afficheur LCD 16 caractères sur 2 lignes, afficheur 7 segments, barre de LED…).
L’algorithme gérera également un service web qui permettra à un client web (navigateur) de lire la température par le protocole HTTP.
Les actions à réaliser dépendent de la valeur du capteur et, pour l’affichage du son, de la comparaison...
Applications web pour tablettes et portables
1. Blynk
Parmi les applications sur tablette ou smartphone permettant de contrôler à distance un Arduino, ou une autre plate-forme d’ailleurs, Blynk offre des possibilités très intéressantes :
-
Une simplification de la gestion du dialogue entre le microcontrôleur et le serveur, par l’utilisation d’une bibliothèque très compacte.
-
Un nombre d’éléments d’interface (widgets) important, allant du simple bouton poussoir aux cartes en passant par les compteurs et les graphes.
-
La possibilité de recevoir les données de capteurs connectés aux ports de l’Arduino et d’envoyer également des signaux vers des ports.
-
Une liste importante d’exemples d’applications avec un utilitaire générant le code de l’Arduino qui permet de les mettre en œuvre, avec une réserve cependant sur la possibilité d’erreurs résiduelles.
-
Un accès sécurisé par une authentification au moyen d’une clé d’API délivrée lors de l’inscription.
L’architecture est très simple et repose sur trois maillons d’une chaîne de liaison :
-
Le microcontrôleur et les capteurs et actionneurs qu’il gère.
-
Une application sur tablette ou smartphone pour piloter les actionneurs et visualiser les données des capteurs.
-
Un serveur Blynk hébergeant un service auquel l’utilisateur doit s’inscrire pour l’utiliser.
La chaîne de liaison est représentée ci-dessous :
Un programme est implanté sur le microcontrôleur via une bibliothèque qui assure la coordination des échanges avec un serveur Blynk localisé soit dans un cloud soit sur un serveur local. La connexion nécessite une clé d’accès à l’API de Blynk fournie lors de l’inscription à ce service, qui est gratuit jusqu’à un certain niveau d’utilisation. Le niveau, appelé énergie, est fixé à 2000 unités lors de l’inscription et est diminué du coût des éléments utilisés (widgets). Ainsi un simple bouton coûte 200 unités tandis qu’un graphe avec historique en vaut...