Tarak Chaari
tarak.chaari@enetcom.usf.tn
IoT
Votre interlocuteur
Tarak CHAARI
Le nom du cours
Internet Of Things
Volume horaire
22,5 heures
Cours + TP
Objectifs
Découvrir le domaine d’objets connectés
Réaliser quelques objets connectés
Chapitre 1
Concept d'objets connectés et de l'Internet des objets
Chapitre 2
La partie embarquée des IoT
Chapitre 3
Fonctionnalités et technologies de communication des IoT
Chapitre 4
Plateformes logicielles IoT
Chapitre 5
Etudes de cas et domaines d’application
IoT
4
Chapitre 1
IoT
5
Internet of things - définition
IoT
6
Objet connecté - définition
Téléphone
Pilulier connecté
etc
IoT
7
Objet connecté - caractéristiques
IoT
8
Objet connecté - défi
Cout
Il doit être le moins cher possible sinon pas utile
Autonomie
Il doit tenir sur des batteries ou piles
Communication
Comment assurer la liaison avec internet?
IoT
9
Iot : principe
IoT
Objectif
IoT
Prévisions
IoT
Origine de l’IoT
IoT
Architecture
IoT
Chaîne de valeur : capteurs
IoT
Chaîne de valeur : Transmission
IoT
Chaîne de valeur : software
• Comment identifier et gérer ces milliards d’objets?
IoT
Chaîne de valeur
Ils ont déjà investi dans l’IOT
IoT
Domaines d’application
IoT
Exemple : parking connecté 1
IoT
Exemple : parking connecté 2
IoT
Exemple : parking connecté 3
IoT
Exemple : parking connecté 4
IoT
Exemple : parking connecté 5
IoT
Exemple : parking connecté 6
IoT
Exemple : parking connecté 7
IoT
Chapitre 2
IoT
27
Principe
Des capteurs
Analogique : Température, humidité, gaz, lumière…
Des actionneurs
Relais, moteurs, lampes, variateurs…
IoT
28
Les capteurs
IoT
29
Les capteurs
IoT
30
Les capteurs
Vocabulaire
IoT
31
Les actionneurs
• Adaptation de la • Transformation de
• Electronique grandeur électrique la grandeur
numérique : au traitement : électrique en
- Microcontrôleur action physique
- Ordinateur - Isolation
- DSP - Commutation
- FPGA - Conversion
- Automate
industriel
IoT
32
Architectures à base de microcontrôleurs
Forme de base
IoT
33
Les microcontroleurs
IoT
34
Microcontroleur
✓ Le microprocesseur
– Intégration dans des circuits distincts
– Nécessité de prévoir l’interconnexion (bus, câblage)
– La place occupée par ces composants séparés est plus
importante
– Plus de consommation et de chaleur dégagée
– Coût financier
✓ Le microcontrôleur
– Rassemble ces éléments sur un seul circuit intégré
– Composant autonome, capable d’exécuté des programmes
sur sa ROM
– Améliore l’intégration et le coût
– Moins de capacités que le microprocesseur
Microprocesseur Microcontrôleur
✓Electronique complexe ✓Electronique simple
✓Entrées-sorties par des ✓Déterminisme
contrôleurs externes ✓Fiabilité fonctionnement
✓Utilisation d’un OS ✓Généralement sans OS
Microprocesseur Microcontrôleur
Coût moyen > 20 € < 10€
P Contrôleur Ethernet
USB
ROM Contrôleur SPI
Bootlaoder
Contrôleur UART
RS 232
MMC /SD
STM 32
MSP Launchpad Discovery
Arduino Uno Microcontrôleur Microcontrôleur
Microcontrôleur
IoT
Modèle UNO
Quelques caractéristiques :
•32 ko de ROM (dont
bootloader de 0.5 ko)
•2 ko de RAM, 1 ko
d’EEPROM
•16 MHz (Intel 8086 : de 5 à 10
MHz)
IoT
Modèle UNO
Quelques caractéristiques :
•32 ko de ROM (dont bootloader
de 0.5 ko)
•2 ko de RAM, 1 ko d’EEPROM
•16 MHz (Intel 8086 : de 5 à 10
MHz)
•14 ports entrée/sortie
numériques
IoT
Modèle UNO
Quelques caractéristiques :
•32 ko de ROM (dont bootloader de 0.5 ko)
•2 ko de RAM, 1 ko d’EEPROM
•16 MHz (Intel 8086 : de 5 à 10 MHz)
•14 ports entrée/sortie numériques
•5 ports d’entrée analogique
Les E/S numériques (deux valeurs : ON/OFF)
peuvent "lire" des interrupteurs, des boutons,
contrôler des DEL et l’activation de moteurs
Les entrées analogiques (une "infinité" de
valeurs) peuvent lire des potentiomètres et
autres capteurs à données variables
IoT
Modèle UNO
Quelques caractéristiques :
•32 ko de ROM (dont bootloader de 0.5 ko)
•2 ko de RAM, 1 ko d’EEPROM
•16 MHz (Intel 8086 : de 5 à 10 MHz)
•14 ports entrée/sortie numériques (dont 6
MLI)
•5 ports d’entrée analogique
Les E/S numériques (deux valeurs :
ON/OFF) peuvent "lire" des interrupteurs,
des boutons, contrôler des DEL et
l’activation de moteurs
Les entrées analogiques (une "infinité" de
valeurs) peuvent lire des potentiomètres et
autres capteurs à données variables
Les sorties analogiques peuvent être
obtenues par des "modulations de largeur
d’impulsion"
IoT
Modèle UNO
Quelques caractéristiques :
•32 ko de ROM (dont bootloader de 0.5
ko)
•2 ko de RAM, 1 ko d’EEPROM
•16 MHz (Intel 8086 : de 5 à 10 MHz)
•14 ports entrée/sortie numériques (dont 6
MLI)
•5 ports d’entrée analogique
Tension de fonctionnement : 5 V
Tension d’entrée (recommendée) : 7-12 V
Tension d’entrée (limites) : 6-20 V
Intensité de courant par port E/S : 40 mA
Intensité de courant par port E/S en 3.3 V :
50 mA
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des moteurs :
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
Des relais :
IoT
Que peut-on connecter à l’Arduino ?
Quelques exemples
IoT
IDE Compiler
Transférer
IoT
Langage Arduino
IoT
Le squelette d’un programme arduino
IoT
Chapitre 3
Fonctionnalités et technologies de
communication des objets
connectés
IoT
55
Communications possibles
IoT
Communication courte portée
Bluetooth HC-06
IoT
Communication courte portée
char blueToothVal; if (blueToothVal=='n’){
char lastValue; digitalWrite(13,HIGH);
void setup() { if (lastValue!='n')
Serial.begin(9600); lastValue=blueToothVal;
pinMode(13,OUTPUT); }
} else if (blueToothVal=='f') {
digitalWrite(13,LOW);
if (lastValue!='f')
void loop() { lastValue=blueToothVal;
if(Serial.available()){ }
blueToothVal=Serial.read(); delay(1000);
} }
Code HC-06
IoT
Communication courte portée
ESP8266
-Mode station
-Mode point d’accès
-Les deux
• The ESP8266 does not have 5V tolerant inputs–you could destroy your WiFi module.
• The ESP8266 may draw more current than the 3.3V regulator on your Arduino can
supply – you could damage your Arduino.
• The operation of the ESP8266 outside of stated limits may be unstable and unreliable
Commandes AT
IoT
Communication courte portée
IoT
Communication longue portée
https://www.arduino.cc/en/Guide/ArduinoGSMShield
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
LP-WAN objectives
IoT
Requirements for LPWANs
Internet of Objects
LPWAN Requirements:
80% of volume
Low power transmit
technology
Long range communication
Permits mobility
Reliable communication
IoT
Connected Devices: Access
Lo Power
LAN Cellular
WAN
Short Range Long Range w/ Battery Long Range w/Power
Communicating Devices Internet of Objects Traditional M2M
IoT
Communication longue portée
IoT
Communication longue portée
IoT
LoRa Network Architecture
Star-of-star topology
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Communication longue portée
IoT
Echange LoRa
Envoi périodique d’un message PULL_DATA (keep alive)
IoT
Echange LoRa
Contenu du message PULL_DATA
IoT
Echange LoRa
Transmission de données à la réception d’une trame venant d’un device
IoT
Echange LoRa
Contenu du message PUSH_DATA
IoT
Echange LoRa
Transmission de données à partir du serveur
IoT
Echange LoRa
Contenu du message PULL_RESP
IoT
Echange LoRa
Exemple d’un rxpk (du gateway vers le serveur)
"rxpk": [
{
"time":"2013-03-31T16:21:17.528002Z",
"tmst":3512348611,
"chan":2,
"rfch":0,
"freq":866.349812,
"stat":1,
"modu":"LORA",
"datr":"SF7BW125",
"codr":"4/6",
"rssi":-35,
"lsnr":5.1,
"size":32,
"data":"-DS4CGaDCdG+48eJNM3Vai-
zDpsR71Pn9CPA9uCON84"
}
]
IoT
Echange LoRa
Exemple d’un txpk (du serveur vers le gateway)
"txpk": {
"imme":true,
"freq":864.123456,
"rfch":0,
"powe":14,
"modu":"LORA",
"datr":"SF11BW125",
"codr":"4/6",
"ipol":false,
"size":32,
"data":"H3P3N2i9qc4yt7rK7ldqoeCVJGB
ybzPY5h1Dd7P7p8v"
}
IoT
Format des messages LoRaWAN
IoT
Format des messages LoRaWAN
IoT
Format des messages LoRaWAN
IoT
Lorawan – Confidentialité des messages
IoT
Lorawan – Intégrité des messages
IoT
Chapitre 4
IoT
92
Gestion de l’infrastructure matérielle
IoT
93
Gestion des données
Gestion des trames
Comment les identifier leurs sources
Décrypter
Stockage
Où stocker les trames?
Bases de données SQL/NoSQL?
Stockage permanent ou temporaire?
Dissémination
Où envoyer les trames?
Elles viennent de quelles sources
Elles doivent aller où?
IoT
94
Développement des applications IoT
Affichage de l’historique
Pouvoir parcourir l’historique des données à tout moment
Affichage tabulaire ou sous la forme de courbes
IoT
95
Architecture technique
IoT
96
Les plateformes IoT : classification
IoT
97
Les plateformes IoT : couches
IoT
98
Ingestion des données
Développement personnalisé
J2EE
Go
Node JS…
IoT
99
Stockage de données
IoT
100
Dissémination de données (Broker)
Apache Kafka
HiveMQ / Mosquitto
Amazon Kinesis
Redis…
IoT
101
Affichage et analyse de données
Kibana
Tableau
Rapid miner
Développement personnalisée…
IoT
102