Académique Documents
Professionnel Documents
Culture Documents
Abdenour Sehad
TP: Système IoT complet avec utilisation d’une plateforme IoT Module: SCI
1 Partie théorique
a Introduction aux différentes plateformes IoT:
Une plateforme IoT sert de médiateur entre le monde des objets physiques et le monde des informations
exploitables. Combinant de nombreux outils et fonctionnalités, les plates-formes Internet des objets
permettent de créer des produits matériels et logiciels uniques pour collecter, stocker, analyser et gérer
la pléthore de données générées par des appareils connectés.
Il y a plusieurs plateforme IoT dans le marchée: Google Cloud IoT, Cisco IoT Cloud Connect,
Salesforce IoT Cloud, IRI Voracity, Particle, IBM Watson IoT, ThingWorx, Amazon AWS IoT Core,
Microsoft Azure IoT Hub, Oracle IoT, Blynk, ... etc.
• Application Blynk: vous permet de créer des interfaces pour vos projets en utilisant différents
widgets que nous fournissons.
• Bibliothèque Blynk: pour toutes les plateformes hardware populaires - active la communication
avec le serveur et traite toutes les commandes entrantes et sortantes.
2 Partie pratique
a Installation d’une plateforme IoT BLYNK en standalone
On suit la documentation de Blynk sur Github pour l’installer localement sur Raspberry Pi: Quick local
server setup. Pour accomplir les taches suivantes, on a besoin de l’application mobile Blynk (legacy)
Ensuite, on crée une connexion personnalisée sur l’application Blynk (legacy), en utilisant l’email:
admin@blynk.cc et le mot de passe: admin, et on spécifie l’adresse IP du serveur, et le port (9443
par défaut).
Puis, on crée un nouveau projet dans l’application, on spécifie les widgets et leurs paramètres
correspondantes (virtual pins, etc)
Pour connecter un composant au serveur, il faut spécifier dans le programme chargé sur ce
composant, un identifiant unique BLYNK_AUTH_TOKEN, qu’on peut récupérer en allant a
https://adresse_ip_server:port/admin/ avec un navigateur web, on accède avec l’email et le mot
de passe précédemment cités, puis on accède au Users, puis admin@blynk.cc et on cherche le nom
du nouveau projet crée sur l’application, et on trouve son identifiant.
Dans cet partie on récupère les donnes de la lumière, et on les envoie au serveur Blynk:
Le circuit réalisée:
Le programme:
1 #include <SPI.h>
2 #include <WiFiNINA.h>
3 #include <BlynkSimpleWiFiNINA.h>
4 #define BLYNK_AUTH_TOKEN "TOKEN"
5 #define BLYNK_PRINT Serial
6
7 char auth[] = BLYNK_AUTH_TOKEN;
8 char ssid[] = "NOM_SSID_WIFI";
9 char pass[] = "MOT_DE_PASSE_WIFI";
10
11 const int ldrPin = A1;
12 int ldrStatus;
13
14 BLYNK_WRITE(V0)
15 {
16 int value = param.asInt();
17 Blynk.virtualWrite(V1, value);
18 }
19
20 void myTimerEvent()
21 {
22 Blynk.virtualWrite(V1, ldrStatus);
23 }
24
25 void setup()
26 {
27 Serial.begin(115200);
28 Blynk.begin(auth, ssid, pass, IPAddress(192,168,43,21), 8080);
29 pinMode(ldrPin, INPUT);
30 }
31
32 void loop()
33 {
34 Blynk.run();
35 ldrStatus = analogRead(ldrPin);
36 delay(2000);
37 }
38
Dans cet partie, on contrôle une LED avec Blynk, et on envoie la durée du connexion du Raspberry
Pi au serveur Blynk:
Le circuit réalisée:
Le programme:
1 import BlynkLib
2 import time
3 import RPi.GPIO as GPIO
4
5 PIN = 11
6 GPIO.setmode(GPIO.BOARD)
7 GPIO.setup(PIN, GPIO.OUT)
8
9 # Initialize Blynk
10 blynk = BlynkLib.Blynk("TOKEN_ICI", server="192.168.43.21", port=8080)
11
12 now = time.time()
13
14 @blynk.VIRTUAL_WRITE(1)
15 def my_write_handler(value):
16 print(f'Current V1 value: {value[0]}')
17 if int(value[0]):
18 GPIO.output(PIN, GPIO.HIGH)
19 else:
20 GPIO.output(PIN, GPIO.LOW)
21
22 def send_up_time():
23 # this widget will show some time in seconds..
24 blynk.virtual_write(2, int(time.time() - now))
25
26 try:
27 while True:
28 blynk.run()
29 time.sleep(0.3)
30 send_up_time()
31
32 except KeyboardInterrupt:
33 GPIO.cleanup()
34 exit(1)
35