Vous êtes sur la page 1sur 6

IoT

– Internet des Objets



atelier du 15 septembre 2016 | Fablab du Dôme

INTRODUCTION

L'internet des objets est « un réseau de réseaux qui permet, via des
systèmes d’identification électronique normalisés et sans fil, d’identifier et
de communiquer numériquement avec des objets physiques afin de pouvoir
mesurer et échanger des données entre les mondes physiques et virtuels. »
Wikipédia - 14/08/2016

Cette notion peut être étendue comme étant la mise en œuvre de l’exploitation intelligentes
des données fournies et/ou exploitées par des réseaux identifiés d’objets physique ou virtuels.
Il est donc nécessaire que ces objets soient reliés et identifiés sur le réseau.

CONNECTIVITE

Comme évoqué dans l’introduction, le concept même d’Internet des Objets implique une
connexion au réseau. Si le sujet vous intéresse je vous invite à vous renseigner sur le modèle
OSI qui détaille les différentes couches de mise en œuvre d’un réseau depuis la couche
physique (transmission des signaux) jusqu’à la couche application (service exploitant les
données).


Pour connecter notre objet à Internet plusieurs possibilité s’offre à nous. Nous pouvons le
connecter directement via un connexion filaire Ethernet, via un shield adapté ou un arduino
Ethernet par exemple. Et nous pouvons également passer, comme ce sera le cas aujourd’hui,
par une connexion Wifi / IEEE 802.11.

Une autre possibilité serait de passer par une plateforme intermédiaire, un ordinateur, un
raspberry ou un smartphone par exemple à laquelle notre objet serait connecté.
Les réseaux sont classifié selon leur portées et dispose de protocoles adaptés :

• Personnal Area Network : Nordic RF, ANT, Bluetooth, IEE 802.15.4 (xbee,zigbee)
• Local Area Network : Wifi ou Ethernet puis routeur par exemple
• Wide Area Network : (xDSL, GSM/GPRS, 3G/LTE, DOCSIS), LoRa, SigFox

Et si vous souhaitez en savoir plus sur leur mise en œuvre dans un environnement Do It
Yourself je vous invite à consulter ces liens :

• https://www.sparkfun.com/pages/wireless_guide
• https://learn.sparkfun.com/tutorials/xbee-wifi-hookup-guide
• http://www.projetsdiy.fr/quelle-technologie-sans-fil-objets-connectes-diy

LES PLATEFORMES DE PROTOTYPAGE

Arduino | https://www.arduino.cc et http://www.arduino.org

Arduino est une plateforme de prototypage électronique open-source très populaire auprès
des makers, des artistes et des designers. Elle permet de réaliser très rapidement des
prototypes qui allient capteurs (température, humidité, proximètre), actionneurs (relais,
moteurs, leds) et intelligence embarquée.

Parmi les cartes de développement proposées par les marques Arduino/Genuino, on retrouve
notamment l’Arduino UNO, très appréciée pour la découverte et l’initiation, et des cartes plus
avancées telle que l’Arduino Wifi ou l’Arduino Ethernet et qui intègrent directement des
fonctionnalités de mise en réseau.

ESP8266 | http://www.wemos.cc et comparatif NodeMCU

Pour cet atelier nous allons travailler avec une puce qui connaît un grand succès parmi les
maker : l’ESP8266. Cette puce est doté d’un microcontrôleur 32 bits et d’un connectivité Wifi,
on la trouve aujourd’hui sous différents modèles autonomes ou intégrée à des cartes de
développement comme c’est le cas pour le NodeMCU v1.0 de la société WeMos. Le prix de
ces modules varie de 1 à 5 $ selon les fournisseurs ce qui en fait un composant très accessible.

Comme pour avec les microcontrôleur Atmel présent sur les cartes Arduino on retrouve un
ensemble de broches digitales, une entrée analogique et les protocoles I2C et SPI pour
communiquer avec des circuits intégrés externes ou des capteurs.


MONTAGE

Nous allons nous concentrer sur un montage qui intègre un capteur d’humidité ambiante /
DHT11, un capteur d’humidité des sols / FC28 et un module relais à deux canaux. Le schéma
ci-dessous est réalisé avec le logiciel open-source Fritzing.


Nous éluderons volontairement la question de l’alimentation pour nous concentrer sur les
applications en ligne et la découverte du protocole MQTT. Dans le cas présent l’alimentation
du circuit en 5v sera fournie par le port USB. Ce mode d’alimentation peut facilement être
remplacé par un adaptateur secteur ou par des circuits plus avancé de gestion de batterie et
de recharge, des panneaux solaires par exemple, qui peuvent rendre vos montages
autonomes.

ENVIRONNEMENT DE PROGRAMMATION

Maintenant que le programme est réalisé nous allons devoir téléverser le programme qui lui
permettra de gérer ses différents éléments (capteurs et actionneurs) et de les relier à des flux
MQTT.

Pour cela nous allons installer l’environnement Arduino, paramétrer les listes de descriptions
de cartes, puis ajouter la prise en charge des cartes ESP8266 et les bibliothèques nécessaires
au bon fonctionnement du programme.
Lien JSON à indiquer dans les préférences du logiciel Arduino :

• http://arduino.esp8266.com/stable/package_esp8266com_index.json

Référence pour la mise en œuvre du NodeMCU dans l’environnement Arduino :

• http://ouilogique.com/NodeMCU_esp8266
• http://www.foobarflies.io/a-simple-connected-object-with-nodemcu-and-mqtt

PROTOCOLE MQTT

Le protocole MQTT (Message Queuing Telemetry Transport) est un protocole d’échange


machine à machine développé dans l’optique du déploiement de l’Internet des Objets. Les
machines clientes se connecte à un broker (serveur) qui se charge des délivrer les messages
publiés aux différentes machines abonnées.

Quelques liens pour en savoir plus :

• http://mqtt.org
• https://fr.wikipedia.org/wiki/MQTT
• http://www.hivemq.com/mqtt-essentials
• http://www.hivemq.com/blog/seven-best-mqtt-client-tools
• http://www.projetsdiy.fr/8-brokers-mqtt-objets-connectes-cloud

BIBLIOTHÈQUES MQTT

Le protocole MQTT a été implémenté dans de nombreux langage informatique et


environnement de travail ce qui lui offre une excellente interopérabilité. La liste des
bibliothèque cliente est indiqué sur le site mqtt.org.

Ci-dessous une liste de bibliothèque associés aux environnements de travail prisé des
communautés créatives et des makers :

Arduino | bibliothèques accessibles depuis le gestionnaire de bibliothèques

• http://pubsubclient.knolleary.net/
• https://github.com/adafruit/Adafruit_MQTT_Library

Node.js | https://www.npmjs.com/package/mqtt
Node-RED | http://nodered.org/
Processing | https://github.com/256dpi/processing-mqtt

ALLER PLUS LOIN

Installer son propre broker MQTT sur un serveur local, un raspberry pi par exemple :

• http://blog.argot-sdk.org/2013/06/dummies-guide-to-installing-mosquitto.html
• http://www.framboise314.fr/linternet-des-objets-iot-sur-raspberry-pi-avec-mqtt
• http://jpmens.net/2013/09/01/installing-mosquitto-on-a-raspberry-pi
• http://www.projetsdiy.fr/mosquitto-broker-mqtt-raspberry-pi

Interagir avec les flux MQTT depuis d’autres environnements :

• MQTT.fx - client Linux, Mac et Windows


• IoT MQTT Dashboard – client Android
• ICPDAS MQTT- client IOS

Découvrir d’autres services web liés à l’Internet des Objets (liste non exhaustive) :

• http://ifttt.com
• http://evothings.com
• http://thingspeak.com
• http://io.adafruit.com
• http://www.thingstud.io
• http://www.cayenne-mydevices.com
• https://developers.google.com/beacons

Développer des applications mobiles pour interagir avec les objets :

• http://android.processing.org/install.html (only Android)


• http://www.websitetooltester.com/fr/blog/outil-creation-application-mobile/

Vous aimerez peut-être aussi