Année universitaire 2022-2023
Introduction à l’IoT
Enseignant: Mohamed Anouar Borgi
1
Année universitaire 2022-2023
1. Quelques définitions
2
Année universitaire 2022-2023
2. Pourquoi l’IoT?
3
Année universitaire 2022-2023
3. Domaines de l’IoT
4
Année universitaire 2022-2023
4. Objets connectés
5
Année universitaire 2022-2023
5. Concepts
6
Année universitaire 2022-2023
5. Concepts
7
Année universitaire 2022-2023
5. Concepts
8
Année universitaire 2022-2023
5. Concepts
9
Année universitaire 2022-2023
6. Monde « numérique » et monde « physique »
10
Année universitaire 2022-2023
7. Comment faire interagir ces deux mondes?
11
Année universitaire 2022-2023
8. Exemple: allumage et extinction d’une LED
12
Année universitaire 2022-2023
8. Exemple: allumage et extinction d’une LED
13
Année universitaire 2022-2023
8. Exemple: allumage et extinction d’une LED
14
Année universitaire 2022-2023
8. Exemple: allumage et extinction d’une LED
15
Année universitaire 2022-2023
8. Exemple: allumage et extinction d’une LED
16
Année universitaire 2022-2023
9. Extension: déclenchement d’un dispositif
quelconque à distance
17
Année universitaire 2022-2023
10. Capteurs et actionneurs
18
Année universitaire 2022-2023
11. Les capteurs
19
Année universitaire 2022-2023
11. Les capteurs
20
Année universitaire 2022-2023
12. Les actionneurs
21
Année universitaire 2022-2023
12. Les actionneurs
22
Année universitaire 2022-2023
Principe général
23
Année universitaire 2022-2023
13. Solutions Technologiques
24
Année universitaire 2022-2023
13. Solutions Technologiques
25
Année universitaire 2022-2023
13. Solutions Technologiques
26
Année universitaire 2022-2023
13. Solutions Technologiques
27
Année universitaire 2022-2023
13. Solutions Technologiques
28
Année universitaire 2022-2023
13. Solutions Technologiques
29
Année universitaire 2022-2023
13. Solutions Technologiques
30
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
- Programmer un système pour allumer les lumières en
fonction des données collectées par les capteurs.
- On peut utiliser un microcontrôleur connecté à Internet, tel
qu'un Raspberry Pi ou un Arduino, pour contrôler l'éclairage
dans vos serres. Le microcontrôleur pourrait être programmé
pour allumer les lumières lorsque les capteurs détectent une
faible luminosité et les éteindre lorsque la luminosité atteint
un niveau suffisant pour permettre aux plantes de
photosynthétiser.
31
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
-On peut également utiliser des LED spéciales pour la culture des
plantes, qui émettent des longueurs d'onde spécifiques de lumière
pour aider les plantes à pousser plus efficacement.
- Les LED peuvent être programmées pour s'allumer et s'éteindre
en fonction des besoins des plantes et des données collectées par
les capteurs.
32
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
- Le contrôle de l'éclairage des serres en utilisant l'IoT peut
améliorer la croissance des plantes, augmenter la production et
réduire les coûts d'énergie.
- Voici un exemple de programme pour un microcontrôleur
Arduino qui utilise des capteurs de luminosité et des LED pour
contrôler l'éclairage dans une serre :
33
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
34
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
35
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
36
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
37
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
- Ce programme lit la luminosité actuelle à l'aide du capteur BH1750 et
utilise des seuils de luminosité prédéfinis pour allumer et éteindre les
LED en conséquence.
- Si la luminosité est inférieure au seuil bas, toutes les LED sont
allumées.
- Si la luminosité est supérieure au seuil élevé, toutes les LED sont
éteintes.
- Sinon, les LED alternent pour simuler l'éclairage naturel. Le programme
attend ensuite quelques secondes avant de lire à nouveau la luminosité.
38
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
- En Arduino, Wire.begin() et LightMeter.begin() sont des fonctions
utilisées pour initialiser les bibliothèques Wire et LightMeter,
respectivement.
- La fonction Wire.begin() est utilisée pour initialiser la bibliothèque
Wire, qui est une bibliothèque pour la communication I2C (Inter-
Integrated Circuit) entre différents périphériques électroniques. Cette
fonction doit être appelée une fois au début de votre code pour initialiser
la communication I2C.
39
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
- La fonction LightMeter.begin() est utilisée pour initialiser la
bibliothèque LightMeter, qui est une bibliothèque pour la mesure de la
lumière à l'aide de capteurs de lumière. Cette fonction doit également
être appelée une fois au début de votre code pour initialiser la
bibliothèque LightMeter et configurer les paramètres du capteur de
lumière.
- En résumé, ces fonctions sont utilisées pour configurer les
bibliothèques nécessaires à la communication avec des périphériques
externes tels que des capteurs, des afficheurs ou des actionneurs.
40
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
41
Année universitaire 2022-2023
A. Exemple1: Lumière et LED
42
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
- On a une une plante qu’on souhaite surveiller à distance.
On peut utiliser des capteurs pour mesurer différents
paramètres tels que l'humidité du sol, la température
ambiante et la luminosité.
- Ensuite, on peut connecter ces capteurs à un
microcontrôleur tel que l'Arduino, qui peut envoyer les
données collectées à un serveur distant via une connexion
Internet.
43
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
- Sur le serveur distant, on peut stocker ces données et les
visualiser à l'aide d'une application Web ou mobile. On peut
également configurer des alertes qui nous avertissent lorsque
les niveaux de certains paramètres (par exemple, l'humidité
du sol) sont trop bas ou trop élevés.
- Enfin, on peut utiliser un actionneur pour prendre des
mesures à distance en fonction des données collectées. Par
exemple, si les niveaux d'humidité sont trop bas, on peut
activer une pompe à eau à distance pour arroser la plante.
44
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
- Cet exemple simple montre comment l'IoT peut être utilisé
pour surveiller et prendre des mesures à distance en temps réel.
Bien sûr, les possibilités de l'IoT sont infinies et peuvent être
appliquées à de nombreux autres cas d'utilisation.
- Voici un autre exemple de code Arduino pour collecter des
données de capteurs et les envoyer à un serveur distant via une
connexion Wi-Fi :
45
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
46
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
47
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
48
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
- Dans ce code, nous avons utilisé la bibliothèque WiFi.h pour se connecter à
un réseau Wi-Fi et la bibliothèque HTTPClient.h pour envoyer des requêtes
HTTP POST au serveur distant. On a également défini deux fonctions pour
lire les données de température et d'humidité à partir des capteurs.
- Du côté du serveur, on peut utiliser un langage de programmation tel que
Python pour recevoir les données envoyées par l'Arduino et les stocker dans
une base de données.
49
Année universitaire 2022-2023
B. Exemple 2: Surveille à distance
- En Arduino, Serial.begin(9600) est une fonction utilisée pour initialiser la
communication série entre l'Arduino et un ordinateur ou tout autre dispositif
compatible avec la communication série.
- Plus précisément, cette fonction configure la vitesse de transmission de la
communication série à 9600 bauds (bits par seconde). La vitesse de transmission est
la vitesse à laquelle les données sont envoyées et reçues sur le port série. Le
paramètre de cette fonction (9600) correspond donc à la vitesse de transmission
souhaitée.
- Il est important de noter que la même valeur de baud (9600 dans ce cas) doit être
utilisée à la fois sur l'Arduino et sur l'ordinateur ou le dispositif connecté à l'Arduino
pour que la communication série fonctionne correctement.
50
Année universitaire 2022-2023
B. Exemple 2: méthode LireTemperature()
51
Année universitaire 2022-2023
B. Exemple 2: méthode LireTemperature()
52
Année universitaire 2022-2023
B. Exemple 2: méthode LireTemperature()
Ce code utilise les bibliothèques OneWire et DallasTemperature pour
communiquer avec un capteur de température DS18B20 connecté à la
broche 2 de l'Arduino. La méthode liretemperature() demande la
température au capteur et retourne la valeur en Celsius.
53
Année universitaire 2022-2023
B. Exemple 2: méthode LireHumidite()
54
Année universitaire 2022-2023
B. Exemple 2: méthode LireHumidite()
55
Année universitaire 2022-2023
B. Exemple 2: méthode LireHumidite()
Ce code utilise la bibliothèque DHT pour communiquer avec un capteur
d'humidité DHT11 connecté à la broche 2 de l'Arduino. La méthode
lireHumidite() lit l'humidité et retourne la valeur en pourcentage.
56
Année universitaire 2022-2023
13. L’IoT et le Cloud Computing
- L'Internet des objets (IoT) et le Cloud sont deux technologies
interconnectées et complémentaires.
- L'IoT implique la connectivité de différents objets physiques tels que des
capteurs, des dispositifs de suivi, des voitures autonomes, des appareils
ménagers, etc. Ces objets collectent et transmettent des données en temps réel
via Internet.
57
Année universitaire 2022-2023
13. L’IoT et le Cloud Computing
- Le Cloud, quant à lui, fournit un système de stockage, de traitement et de
gestion des données en ligne. Il permet également aux utilisateurs d'accéder à
des ressources informatiques à distance, à la demande et en fonction de leurs
besoins.
- En combinant IoT et Cloud, les données collectées par les objets connectés
peuvent être stockées, traitées et analysées dans le Cloud, ce qui permet
d'obtenir des informations plus approfondies et plus précises. Les utilisateurs
peuvent accéder à ces données à tout moment et de n'importe où, en utilisant
une connexion Internet.
58
Année universitaire 2022-2023
13. L’IoT et le Cloud Computing
- En outre, le Cloud peut également fournir des services tels que la sécurité, la
sauvegarde, la récupération et l'évolutivité des données, ce qui permet de gérer
les données IoT de manière plus efficace et sécurisée.
- En résumé, IoT et Cloud sont deux technologies qui se complètent
mutuellement pour fournir des solutions innovantes pour la collecte, le
traitement et l'analyse des données en temps réel.
59
Année universitaire 2022-2023
A. Exemple: Complémentarité IoT et Cloud
- Un exemple concret de la complémentarité entre IoT et Cloud est celui des
capteurs de température et d'humidité utilisés dans le domaine de
l'agriculture.
- Imaginons que des capteurs de température et d'humidité soient installés
dans un champ agricole pour collecter des données sur les conditions
climatiques locales. Les données collectées sont ensuite envoyées en temps
réel à un serveur Cloud, où elles sont stockées et traitées.
60
Année universitaire 2022-2023
A. Exemple: Complémentarité IoT et Cloud
- Le Cloud peut ensuite être utilisé pour analyser ces données et fournir des
informations précieuses aux agriculteurs, telles que les tendances
météorologiques, les niveaux d'humidité du sol, les besoins en irrigation, etc.
- Les agriculteurs peuvent alors utiliser ces informations pour prendre des
décisions éclairées sur la façon de gérer leur champ, telles que la meilleure
période pour planter, l'irrigation à effectuer, etc.
61
Année universitaire 2022-2023
A. Exemple: Complémentarité IoT et Cloud
- Le Cloud peut également être utilisé pour déployer des algorithmes
d'apprentissage automatique (machine learning) qui peuvent aider à prédire
les conditions météorologiques futures et à recommander des mesures
préventives pour les agriculteurs.
- Ces algorithmes peuvent également aider à identifier les zones à haut risque
de maladies des plantes et à recommander des mesures de prévention pour
minimiser les pertes de culture.
62
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- Un exemple d'algorithme d'apprentissage qui peut aider à prédire les conditions
météorologiques futures et à recommander des mesures préventives pour les
agriculteurs est l'algorithme de réseaux de neurones convolutifs (CNN).
- Les CNN sont des algorithmes d'apprentissage profond qui peuvent être utilisés pour
la reconnaissance de motifs dans les données d'images ou de séquences temporelles.
Dans le cas de la prédiction des conditions météorologiques, les CNN peuvent être
utilisés pour analyser les images satellite et les données de séquences temporelles,
telles que la température, l'humidité, la pression atmosphérique, etc.
63
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- L'algorithme de CNN apprendra à identifier les motifs dans les données qui sont
corrélés avec les conditions météorologiques futures. Par exemple, il peut apprendre à
identifier les modèles de nuages et les trajectoires de tempête qui sont souvent
associés à des conditions météorologiques particulières.
- Une fois que l'algorithme a été entraîné sur un ensemble de données historiques, il
peut être utilisé pour prédire les conditions météorologiques futures. Les agriculteurs
peuvent alors utiliser ces prévisions pour planifier leurs activités, telles que la période
de plantation, l'irrigation, la pulvérisation de pesticides, etc.
64
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- En outre, l'algorithme de CNN peut également recommander des mesures
préventives pour minimiser les pertes de culture. Par exemple, si l'algorithme prédit
une tempête imminente, il peut recommander aux agriculteurs de renforcer leurs
systèmes de drainage et de protéger leurs cultures avec des matériaux de protection
contre les intempéries.
- En conclusion, l'utilisation de l'algorithme de CNN pour la prédiction des conditions
météorologiques futures peut aider les agriculteurs à prendre des décisions éclairées et
à minimiser les risques de pertes de culture.
65
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
Voici un exemple de programme Python qui utilise un algorithme de réseaux
de neurones convolutifs (CNN) pour la prédiction des conditions
météorologiques futures :
66
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
67
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
68
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- Ce programme utilise un ensemble de données météorologiques historiques pour
entraîner un modèle de CNN à prédire les conditions météorologiques futures. Il
normalise les données et les sépare en ensembles d'entraînement et de test avant de
créer et de compiler l'algorithme de CNN. Il entraîne ensuite l'algorithme sur les
données d'entraînement et le valide sur les données de test.
- Une fois l'algorithme entraîné, le programme peut utiliser les données
météorologiques futures pour prédire les conditions météorologiques à venir et
recommander des mesures préventives appropriées en fonction des prévisions.
69
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- L'argument validation_data est très utile car il permet de vérifier si le modèle est
capable de généraliser à de nouvelles données qu'il n'a pas vues pendant l'entraînement
et donc d'ajuster les hyperparamètres du modèle pour améliorer sa performance.
70
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- Voici un schéma simplifié d'un réseau de neurones convolutifs (CNN) :
71
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- Dans ce schéma, le réseau de neurones convolutifs commence par une couche
d'entrée (INPUT) qui prend les données d'entrée (par exemple, les images
météorologiques). Ensuite, le réseau de neurones passe par plusieurs couches de
convolution et de pooling, qui extraient les caractéristiques pertinentes de l'image.
- La couche de convolution (CONVOLUTION LAYER) utilise un ensemble de filtres
pour appliquer une transformation linéaire aux pixels de l'image. Les filtres identifient
les motifs importants dans l'image, tels que les contours, les bords et les textures.
72
Année universitaire 2022-2023
B. Exemple: Algorithme d’apprentissage
- La couche de pooling (POOLING LAYER) réduit la taille de l'image en prenant la
valeur maximale ou moyenne dans chaque région. Cela réduit le nombre de
paramètres et permet d'éviter le surapprentissage.
- Après plusieurs couches de convolution et de pooling, les données sont transformées
dans une couche complètement connectée (FULLY CONNECTED LAYER). Cette
couche utilise une fonction d'activation pour convertir les caractéristiques extraites en
une sortie prédictive.
- Enfin, une couche de sortie (OUTPUT) donne la prédiction finale, telle que la
probabilité de pluie ou la température prévue.
73