Académique Documents
Professionnel Documents
Culture Documents
EXAMEN
GM-MI41
ENSEIGNANT : M. TAYARI LASSAAD
IOT
CLASSE : MI41
DATE : Le 22/06/2021
DUREE : 1h30mn NOM :.......................................................................................
DOCUMENTS : Non autorisés PRENOM :.....................................................................................
Barème : 4+8+8 N° :......................................................................................
EXERCICE1 :
Question 1
Quelle définition correspond le mieux à l’Internet des Objets ?
L’IoT est un ensemble de capteurs et d’actionneurs accessibles via son téléphone
portable.
L’IoT est un ensemble de réseaux d’objets physiques ou virtuels qui communiquent via
des réseaux souvent sans fil.
L’IoT est une extension du réseau Internet vers le monde physique : maison, machine,
etc.
L’IoT est un ensemble de réseaux d’objets physiques ou virtuels qui communiquent via
des réseaux uniquement sans fil.
Question 2
Que contient la plupart du temps l’architecture à mettre en place pour l’IoT ?
Des capteurs/actionneurs, des gateways, un cloud.
Des capteurs/actionneurs, des smartphones, des techniciens.
Des capteurs/actionneurs, un cloud, de la réalité virtuelle.
Des capteurs/actionneurs et un cloud uniquement.
Question 3
Je voudrais connecter un capteur relié à une batterie qui envoie quelques octets à une gateway
située à 2 mètres toutes les 10 minutes. Je souhaiterais que la durée de vie de la batterie soit la
plus longue possible.
Quelle technologie de communication devrais-je plutôt choisir ?
Wi-Fi
Zwave
Bluetooth
Ble
LoRA
EXERCICE2 :
Soit le programme C Arduino IDE suivant :
#define BLYNK_PRINT Serial
#define DHTPIN 2
#define DHTTYPE DHT11
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
char auth[] = "64ed84ad58d04cb8b2d32419e04327e5";
char ssid[] = "IOT";
char pass[] = "54825206";
int ledState = LOW;
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
const int temperature_Pin = 16;
const int humidite_Pin = 5;
BLYNK_WRITE(V10) {
ledState = param.asInt();
if(ledstate>30) ledstate=HIGH ;
else ledstate=LOW ;
digitalWrite(temperature_Pin, ledState);
}
BLYNK_WRITE(V11) {
ledState = param.asInt();
if(ledstate>60) ledstate= HIGH ;
else ledstate= LOW ;
digitalWrite(humidite_Pin, ledState);
}
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t))
{
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V10, h);
Blynk.virtualWrite(V11, t);
Serial.print("Température= "); Serial.print(t);
Serial.print("°C Humidité= "); Serial.print(h); Serial.println("%") ;
void setup()
{
Serial.begin(9600);
pinMode(temperature_Pin, OUTPUT);
pinMode(humidite_Pin, OUTPUT);
EXERCICE3 :
Soit le programme C Arduino IDE suivant :
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass,”192.168.1.7”,8080);
pinMode(btn1Pin, INPUT);
timer.setInterval(500L, buttonLedWidget);
}
void loop()
{
Blynk.run();
timer.run();
}
La procédure « buttonLedWidget() » permet d’allumer le widgetLED led3 (V3) sur blynk si d’état
du « btn1Pin » (GPIO1) est LOW.
Q4- Proposer un montage qui permet de commander 4 LED Wedgets (led1, led2 , led3 et led4)
const int btn1Pin= 1, btn2Pin =2, btn3Pin =3, btn4Pin = 4; // Select your pins with physical buttons
WidgetLED led1(V1); // V1 LED Widget represents the physical button state
WidgetLED led2(V2); // V2 LED Widget represents the physical button state
WidgetLED led3(V3); // V3 LED Widget represents the physical button state
WidgetLED led4(V4); // V4 LED Widget represents the physical button state
BlynkTimer timer;
boolean btn1State = false ,btn2State = false, btn2State = false, btn2State = false;
void buttonLedWidget()
{
boolean isPressed1 = (digitalRead(btn1Pin) == LOW); // Read button
if (isPressed1 != btn1State) // If state has changed...
{
if (isPressed1) led1.on();
else led1.off();
Btn1State = isPressed1;
}
boolean isPressed2 = (digitalRead(btn2Pin) == LOW); // Read button
if (isPressed2 != btn2State) // If state has changed...
{
if (isPressed2) led2.on();
else led2.off();
Btn2State = isPressed2;
}
boolean isPressed3 = (digitalRead(btn3Pin) == LOW); // Read button
if (isPressed3 != btn3State) // If state has changed...
{
if (isPressed3) led3.on();
else led3.off();
Btn3State = isPressed3;
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass,”192.168.1.7”,8080);
pinMode(btn1Pin, INPUT);
pinMode(btn2Pin, INPUT);
pinMode(btn3Pin, INPUT);
pinMode(btn4Pin, INPUT);
timer.setInterval(500L, buttonLedWidget);
}
void loop()
{
Blynk.run();
timer.run();
}