Vous êtes sur la page 1sur 15

Université de Tunis El Manar

Faculté des sciences


de Tunis

Travaux Pratiques:
Internet des objets (IoT)

Réalisés par :

Noureddine ALOUI, aloui.noureddine@gmail.com

Mustapha TOUZRI, touzri.mustapha@gmail.com

Adnen CHERIF, adnen adnane.cherif@fst.utm.tn

Année universitaire : 2021-2022


Sommaire
TP1 : Prise en main de la plateforme IoT NodeMCU. ......................................................... 3
1. Objectifs .................................................................................................................... 3
2. Présentation de la plateforme NodeMCU.................................................................. 3
2.1. Architecture de l’unité centrale de traitement ESP32............................................ 4
2.2. Les interfaces de communications ......................................................................... 5
3. Applications............................................................................................................... 7
3.1. Contrôle des GPIO de la carte ESP8266 ............................................................... 7
3.2. Manipulation du module WiFi .............................................................................. 7
TP2 : Mise en place d’une solution IoT complète avec la plateforme Thinger.io .............. 8
1. Objectifs .................................................................................................................... 8
2. Introduction ............................................................................................................... 8
3. Applications............................................................................................................... 9
3.1. Contrôle à distance des broches GPIO connectés sur l’ESP8266. ....................... 9
3.2. Accès à distance à des données de capteurs connectés sur l’ESP8266. ................ 9
TP3 : Implémentation d’un serveur Web avec l’ESP8266 ................................................ 10
1. Objectifs .................................................................................................................. 10
2. Introduction ............................................................................................................. 10
3. Applications............................................................................................................. 11
3.1. Création d’une page Web statique avec HTML .................................................. 11
3.2. Affichage de température et humidité ................................................................. 11
3.3. Contrôle des GPIO .............................................................................................. 12
TP4 : Création d’une application Cloud IoT avec ESP8266, PHP et MySQL................. 13
1. Objectifs .................................................................................................................. 13
2. Introduction ............................................................................................................. 13
3. Applications............................................................................................................. 13
3.1. Création d’une base de données .......................................................................... 13
3.2. Création d’un serveur HTTP avec la carte ESP8266........................................... 14
3.3. Communication inter-serveurs ............................................................................ 14
Liste des références ............................................................................................................... 15

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.

2. Présentation de la plateforme NodeMCU


NodeMCU est une plate-forme open source (logicielle et matérielle) pour l’IoT
(Internet of Things), basée sur un SoC (système sur puce) de la société «Espressif
Systems». Les cartes IoT NodeMCU les plus récentes utilisent le microcontrôleur
ESP32-S à la place de l’ESP8266.

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].

L’ESP32 peut fonctionner comme un système autonome complet ou comme un


dispositif esclave à un MCU hôte. Elle peut interagir avec d’autres systèmes
(machine) via la connectivité WiFi, Bluetooth ou ses interfaces de communications
UART, SPI et I2C.

3
Figure 1 : ESP8266 Figure 2 : ESP32

2.1.Architecture de l’unité centrale de traitement ESP32


Le microcontrôleur Tensilica Xtensa LX6 est un système SoC de la famille ESP32
qui comprend les puces ESP32-D0WDQ6 (et ESP32-D0WD), ESP32-D2WD,
ESP32-S0WD et le système en package (SiP) ESP32-PICO-D4.

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.

2.2. Les interfaces de communications


 L’interface UART

L’ESP32 dispose de trois interfaces émetteur-récepteur asynchrone universel UART


(Universal Asynchronous Receiver-Transmitter) ; UART0, UART1 et UART2, qui
fournissent une communication asynchrone (RS232 et RS485) et une communication
IrDA (Infrared Data Association), avec une vitesse allant jusqu'à 5 Mbps. L’UART
utilise 2 signaux RTS (Request to Send) et CTS (Clear to Send) servent à assurer le
contrôle du flux de transmission.
 Interface SPI

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.

 Les ports d’entrée/sortie GPIO

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.

L’ESP32 intègre un convertisseur analogique-numérique (ADC) sur 12 bits qui prend


en charge les mesures sur 18 canaux. Le coprocesseur ULP (Ultra Low Power) dans
ESP32 est également conçu pour mesurer la tension, tout en fonctionnant en mode
veille, ce qui permet une faible consommation d'énergie. Le CPU peut être réveillé
par un réglage de seuil et/ou via d'autres déclencheurs. Avec des paramètres
appropriés, l’ADC peut être configuré pour mesurer la tension sur 18 broches
maximum.
L’ESP32 possède deux canaux pour un convertisseur numérique-analogique (DAC)
sur 8 bits qui peuvent être utilisés pour convertir des signaux numériques en signaux
analogique. Les deux canaux DAC peuvent également prendre en charge des
conversions indépendantes.

6
 Communication infrarouge

La communication infrarouge peut être réalisée sur huit canaux de transmission et de


réception. Elle supporte divers protocoles infrarouges grâce à la programmation de
train d'impulsion. Les huit canaux partagent un bloc de mémoire de 512x32 bits pour
stocker la forme d'onde d'émission ou de réception.
 Modulation de largeur d'impulsion (PWM)

Le contrôleur de modulation de largeur d'impulsion (PWM : Pulse Width Modulation)


peut être utilisé pour piloter des moteurs électriques et des lumières intelligentes

3. Applications

a) Dans un premier temps, télécharger et installer l’IDE Arduino.


b) Ajouter la carte ESP32 et ESP8266 à l’IDE Arduino.
c) Créer un nouveau projet sous l’IDE Adruino.

3.1. Contrôle des GPIO de la carte ESP8266

d) Ecrire un programme (skech) qui permet de tester la carte ESP32 ou ESP8266 en


clignotant la LED de test intégrée sur la carte (connectée sur la broche numéro 2).
e) Utiliser le module « DHT22 » pour déterminer la température, l’humidité et les
affichées sur le moniteur série de l’IDE Arduino.

3.2. Manipulation du module WiFi

f) Installer la bibliothèque WiFi dédiée à la carte ESP32 ou ESP8266.


g) Connecter la carte au réseau WiFi et récupérer l’dresse IP de la carte ESP32 ou
ESP8266.
h) Scanner les réseaux Wifi existants, mesurer leurs puissances et affichés les
résultats sur le moniteur série de l’IDE Arduino.
i) Utiliser la carte ESP32 ou ESP8266 pour créer un point d’accès WiFi.

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].

Un système IoT complet a besoin de :


 matériel, comme des capteurs ou des dispositifs qui collectent des données de
l'environnement (par exemple, un capteur d'humidité) ou effectuent des actions
dans l'environnement (par exemple, arroser les cultures).
 connectivité afin de transmettre toutes ces données au cloud (par exemple,
envoyer des données sur l'humidité) ou de recevoir des commandes (par exemple,
arroser les cultures maintenant).
 un logiciel hébergé dans le Cloud chargé d'analyser les données qu'il collecte à
partir des capteurs et de prendre des décisions (par exemple, savoir grâce aux
données sur l'humidité qu'il vient de pleuvoir et prévenir ensuite le système
d'irrigation de ne pas s’exécuter aujourd'hui).
 une interface utilisateur pour interagir (par exemple, une application web avec un
tableau de bord qui montre les tendances en matière d'humidité et permet aux
utilisateurs d'activer ou de désactiver manuellement les systèmes d'irrigation).

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.

3.1. Contrôle à distance des broches GPIO connectés sur l’ESP8266.


a) Créer un tableau de bord qui contient un bouton marche/arrêt.
b) Ecrire un programme qui permet de commander en temps réel la LED de test
intégrée sur la carte ESP8266.
c) Tester la commande de la LED en utilisant un autre ordinateur ou Smartphone
de réseau différent.

3.2. Accès à distance à des données de capteurs connectés sur l’ESP8266.

a) De la même façon, au niveau du tableau de bord ajouter des Widget qui


permettent d’afficher les valeurs de température et d’humidité en temps réel.
b) Tester le tableau de bord en utilisant un autre ordinateur ou Smartphone.

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].

Il existe de nombreux types de serveurs tels que :

- 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 utilisent le protocole HTTP (Hypertext Transfer Protocol) ou


HTTPS qui repose sur les protocoles TCP/IP (Transmission Control Protocol/Internet
protocol), pour répondre à des requêtes proviennent de navigateurs Web tournant sur
les machines de différents clients. Ils sont accessibles via le nom de domaine (DNS)
du site Web [3].

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

3.1. Création d’une page Web statique avec HTML

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

b). Exécuter le code HTML en utilisant un navigateur web.

3.2. Affichage de température et humidité

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.

Tester l’application complète avec votre enseignant de TP.

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

2.3. Système de Gestion de Base de Données (SGBD).

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, ..

2.4. Communication inter-serveurs.

La communication inter-serveurs ou serveur à serveur (S2S) est une extension du


modèle client-serveur qui permet aux serveurs d’échanger les données directement
entre eux [6].

3. Applications

3.1. Création d’une base de données


a). Utiliser phpMyAdmin pour créer une base de données nommée «TP4_IoT ».

13
b). Créer une table nommée TP4_Tab à deux colonnes : « Température » et
« Humidité ».

3.2. Création d’un serveur HTTP avec la carte ESP8266


Ecrire un programme Arduino pour créer un serveur HTTP avec la carte ESP8266. Le
serveur permet de :

- d’acquérir les données de capteurs (humidité et température).


- stocker les données de capteurs dans une base de données «TP4_IoT » à travers
un serveur de base de données.

3.3. Communication inter-serveurs


a). Utiliser le langage PHP pour créer une page Web « SeveurBD.php » qui
contient le titre « Serveur de base de données» et le tableau suivant:
Mesures Valeurs
Humidité : --%
Température : --°C

b). La page Web permet de :


- récupérer les données de capteurs (humidité et température) envoyées
depuis le serveur implémenter sur la carte ESP8266.
- enregistrer les données récupérées dans la base de données « TP4_IoT ».
- afficher la température et l’humidité en temps-réel.
- utiliser des courbes statistiques pour représenter l’évolution de la
température et l’humidité au cours du temps.
c). Utiliser le serveur «Apache » pour interpréter la page Web crée en langage
PHP.

Tester l’application complète avec votre enseignant de TP.

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

Vous aimerez peut-être aussi