Académique Documents
Professionnel Documents
Culture Documents
Travaux Pratiques:
Internet des objets (IoT)
Réalisés par :
2
TP1 : Prise en main de la plateforme IoT
NodeMCU.
1. Objectifs
- Être capable d’écrire, de modifier, de compiler et de téléverser un programme dans
la mémoire flash de microcontrôleur ESP32 ou ESP8266.
- Savoir contrôler des actionneurs et des capteurs connectés sur les broches GPIO de
la carte ESP8266.
- Connecter la carte ESP32 ou ESP8266 à un réseau WiFi existant.
L’ESP32 est un SoC à faible coût et à faible consommation énergétique. C’est une
amélioration effectuée par la société «Espressif Systems» sur l’ancienne version
ESP8266. L’avantage principal de la carte ESP32 est l’intégration d’une connectivité
améliorée avec un module WiFi et un module Bluetooth à basse consommation qui
rend la carte appréciée dans le domaine d’IoT. Elle offre aussi la possibilité
d'utilisation l’IDE Arduino pour la programmer [1].
3
Figure 1 : ESP8266 Figure 2 : ESP32
Le Tensilica Xtensa LX6 possède une unité de traitement des données (DPU) double
cœur à 32 bits. Sa fréquence d'horloge allant jusqu’à 240Mhz et il est capable
d'atteindre une performance jusqu'à 600DMIPS (Dhrystone Millions d'Instructions
Par Seconde). Le bloc diagramme de Tensilica Xtensa LX6 est donné par la figure 3,
il inclut [1]:
Mémoires internes:
448 Kilo-octet de ROM.
520 Kilo-octet de SRAM.
16 Kilo-octet de SRAM en RTC (horloge en temps réel).
1 Kilobit de fusible électrique (eFuse)
2 Méga-octet (pour la puce ESP32-D2WD) et 4 Méga (pour le module SiP
ESP32-PICO-D4) de mémoire flash intégrée.
Mémoires externes:
Jusqu'à 16 Méga-octet de mémoire flash QSPI (Quad Serial Peripheral
Interface)
Jusqu'à 8Méga-octet et 4Méga-octet de SDRAM.
4
Figure 3 : L’architecture interne du SoC ESP32.
ESP32 comporte trois type d’interfaces SPI (Serial Peripheral Interface) ; SPI, HSPI
et VSPI qui peuvent fonctionnées en mode maître/esclave et en mode de
communication full-duplex et half-duplex.
Toutes les SPI peuvent également être connectés à la mémoire flash externe SRAM et
LCD.
L’interface I2C
L’ESP32 dispose deux interfaces pour le bus I2C (Inter-Integrated Circuit) qui
peuvent fonctionner en mode maître ou esclave, selon la configuration de l’utilisateur.
Les interfaces I²C prennent en charge les modes:
Standard (100 Kbit/s).
Rapide (400 Kbit/s).
Jusqu'à 5 MHz, mais limité par la résistance de pull-up pour SDA.
5
D'adressage 7 bits/10 bits
D’'adressage double.
Les utilisateurs peuvent programmer des registres de commande pour contrôler les
interfaces I2C, afin qu'ils aient plus de flexibilité.
Interface I2S
Deux interfaces I2S (Integrated Interchip Sound) standard sont intégrées dans ESP32.
Elles peuvent être utilisées en mode maître/esclave, en modes de communication Full-
duplex/Half-duplex, et peuvent être configurées pour fonctionner avec une résolution
de 8/16/32/48/64 bits en tant que canaux d'entrée ou de sortie. Lorsqu'une ou les deux
interfaces I2S sont configurées en mode maître, l'horloge maître peut être sortie vers
le DAC externe.
Les deux interfaces I2S ont des contrôleurs d'accès direct à la mémoire (DMA : Direct
Memory Access) dédiés.
L’ESP32 possède 34 broches (GPIO : General Purpose Input Output), qui peuvent
être utilisées comme entrées ou sorties en programmant les registres appropriés. La
plupart des GPIO numériques peuvent être configurés en tant que pull-up ou pull-
down. La plupart des broches d'E/S numériques sont bidirectionnelles et peuvent être
multiplexées avec d'autres fonctions, telles que l’UART, I2C, SPI, SDIO, etc.
Les convertisseurs ADC et DAC.
6
Communication infrarouge
3. Applications
7
TP2 : Mise en place d’une solution IoT
complète avec la plateforme
Thinger.io
1. Objectifs
- Mise en place d'une solution/chaine IoT complète en temps réel, avec une
plateforme IoT open source.
- Être capable de lire des données de capteurs en temps réel sur internet à travers une
plateforme IoT et les présentées dans un tableau de bord dédié.
- Savoir contrôler des objets connectés sur les broches GPIO de la carte ESP8266 à
travers une plateforme IoT et un tableau de bord.
2. Introduction
Une plateforme IoT, est une technologie multicouche qui permet d'approvisionner, de
gérer et d'automatiser facilement les appareils connectés de l’Internet des objets (IoT).
Elle connecte le matériel au Cloud en utilisant des options de connectivité flexibles,
des mécanismes de sécurité de niveau entreprise et de larges puissances de traitement
des données [2].
8
Les plateformes IoT contribuent à :
connecter le matériel, comme les capteurs et les dispositifs,
gérer différents protocoles de communication hardware et software,
assurer la sécurité et l'authentification des dispositifs et des utilisateurs,
collecter, visualiser et analyser les données recueillies par les capteurs et les
appareils,
intégrer tout ce qui précède avec les systèmes d'entreprise existants et d'autres
services web.
Les plateformes IoT open-source les plus connues sont les suivantes : Zetta, Arduino,
OpenRemote, Node-RED, Flutter, M2MLabs Mainspring, ThingsBoard, Thinger.io,
Kinoma, Kaa IoT Platform, SiteWhere, DSA.
3. Applications
a) Dans un premier temps, créer un nouveau projet sous l’IDE Adruino.
b) Tester le capteur DHT22 et la connectivité WiFi de la carte ESP8266.
c) Créer un compte sous une plateforme Iot open-source.
9
TP3 : Implémentation d’un serveur Web
avec l’ESP8266
1. Objectifs
- Créer un simple serveur Web avec l’ESP8266 NodeMCU qui permet d’héberger
une page Web statique développée en HTML, CSS et JavaScript.
- Contrôler des actionneurs connectés sur les broches GPIO de la carte ESP8266
depuis n’importe quel navigateur Web.
- Lire et afficher les données de capteurs connectés sur les broches GPIO de la
carte ESP8266 sur n’importe quel navigateur Web.
2. Introduction
2.1. Un serveur
Un serveur est un ordinateur ou un système qui permet d’offrir des services pour un
ou plusieurs clients sur un réseau. Il répond de manière automatique à des requêtes
provenant de clients selon le modèle client-serveur. Le format des requêtes est
standardisé selon des protocoles réseaux et un service fournis par le serveur peut être
exploités par tous les clients qui utilisent le protocole propre à ce service [3].
- serveur Web,
- serveur FTP (File Transfer Protocol),
- serveur de base de données,
- serveur de messagerie,
- serveur de fichiers,
- serveur DHCP (Dynamic Host Configuration Protocol)
- serveur DNS (Domain Name System)
- serveur cloud
10
2.2. Un serveur Web
C’est un programme (logiciel) qui permet d’héberger des applications et des données
que les clients vont solliciter sur un réseau privé (Intranet) ou un réseau public
(Internet).
Les serveurs Web les plus connus sont: Apache HTTP Server, Apache Tomcat,
Nginx, Google Web Server, Internet Information Services (IIS), Monkey web server
et Oracle iPlanet Web Server (OiWS).
3. Applications
a). Créer une page HTML qui contient les éléments suivants :
- Un titre « Serveur web à base de la carte ESP8266 » de premier niveau en
utilisant la balise <h1>.
- Un tableau comme suit, en utilisant les balises <table>, <tr> et <td> :
Valeurs
Humidité : --%
Température : --°C
a). Ecrire un programme Arduino qui permet d’acquérir les données de capteur
(DHT22) et les affichées sur le moniteur série de l’IDE Arduino.
b). Modifier le code Arduino pour visualiser les données de capteurs dans les
champs adéquats de la page HTML que vous avez crée.
11
3.3. Contrôle des GPIO
a). Dans la page HTML que vous avez crée ajouter deux boutons radio en utilisant
les balises suivantes :
<input type="radio" id="bouton" name="drone" value="ON" >
<input type="radio" id="bouton" name="drone" value="OFF" >
b). Modifier le programme Arduino pour commander la LED de test à travers les
boutons crées sur la page Web.
12
TP4 : Création d’une application Cloud IoT
avec ESP8266, PHP et MySQL
1. Objectifs
- Développement et hébergement d’un serveur Web sous la carte ESP8266.
- Création et manipulation d’une base de données en utilisant le système de gestion
de base de données MySQL.
- Contrôle des actionneurs connectés sur les broches GPIO de la carte ESP8266 via
une page web dynamique écrite en PHP.
- Stockage des données de capteurs sous une base de données MySQL et affichage
sur un navigateur Web.
2. Introduction
Les systèmes de gestion de base de données sont des logiciels qui permettent aux
utilisateurs ou aux programmeurs de créer et de gérer (stocker, récupérer, ajouter,
supprimer, trier, partager, imprimer, ..) des bases de données [4]. Ils cherchent
toujours à garantir la qualité, la pérennité et la confidentialité des informations, tout
en cachant la complexité des opérations [5].
Les logiciels de gestion de base de données les plus connus sont: MySQL,
PostgreSQL, SQLite, Microsoft SQL Server, Microsoft Access, OpenOffice.org Base,
Oracle Database, PostgreSQL, MongoDB, IBM DB2, ..
3. Applications
13
b). Créer une table nommée TP4_Tab à deux colonnes : « Température » et
« Humidité ».
14
Liste des références
[1] Espressif Systems, "ESP8266 Technical Reference", Version 1.7, 2020
https://www.espressif.com/sites/default/files/documentation/esp8266-
technical_reference_en.pdf
[2] https://www.oracle.com/fr/cloud/iot-platform/
[3] https://www.paessler.com/fr/it-explained/server
[4] https://www.oracle.com/fr/database/systeme-gestion-base-de-donnees-sgbd-
definition.html
[5] https://www.lyceerotroudreux.com/images/NSI/SGBD.pdf
[6] https://sandbigbox.com/wiki/fr/Inter-server
15