Vous êtes sur la page 1sur 9

ISET DE GABES AU 2020/2021 sem 1

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

EXAMEN IOT Page 1/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie
Ne rien privée
écrirede
iciGabes
Date : 13/12/2019
Devoir Surveillé
Page : 2/5
(Année Universitaire : 2019/2020)

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("%") ;

EXAMEN IOT Page 2/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie
Ne rien privée
écrirede
iciGabes
Date : 13/12/2019
Devoir Surveillé
Page : 3/5
(Année Universitaire : 2019/2020)

void setup()
{
Serial.begin(9600);
pinMode(temperature_Pin, OUTPUT);
pinMode(humidite_Pin, OUTPUT);

Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,7), 8080);


dht.begin();
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
Q1 : Terminer le schéma électrique du système :

Q2 : Sur quel matériel peut tourner ce programme.


Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.

PIC18F45K22 Arduino uno


ESP8266 STM32F207
NodeMCU Tensilica L106, 32 bits
ESP32 ARM7
STM32F429 RASPBERRY PI

EXAMEN IOT Page 3/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie
Ne rien privée
écrirede
iciGabes
Date : 13/12/2019
Devoir Surveillé
Page : 4/5
(Année Universitaire : 2019/2020)

Q3: Que fait ce programme ?


Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.
Afficher la température et l’humidité fournis par un capteur DHT11
Diffuser la température et l’humidité vers un serveur Blynk local
Diffuser la température et l’humidité vers un serveur Blynk Cloud
Afficher la température et l’humidité fournis par un capteur DHT22
Acquérir la température et l’humidité fournis par un capteur DHT11
Acquérir la température et l’humidité fournis par un capteur DHT22
Allume une LED si la température est inférieure à 30°C
Allume une LED si la température est supérieure à 30°C
Allume une LED si l’humidité est inférieure à 60%
Allume une LED si l’humidité est supérieure à 60%

Q4: Quel est le Rôle des variable V0 et V1?


Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.
Diffuser la température et l’humidité entre l’interrogateur (votre téléphone partable)
Et le serveur Blynk.
Diffuser la température et l’humidité entre le nœud Et le serveur Blynk.
Diffuser la température et l’humidité entre le nœud Et l’interrogateur.
Signaler l’état d’atteinte des seuls de la température et de l’humidité au serveur Blynk.
Signaler l’état d’atteinte des seuls de la température et de l’humidité au LEDs.
Signaler l’état d’atteinte des seuls de la température et de l’humidité a l’interrogateur.

Q5: Quel est le Rôle des variable « temperature_Pin » et « humidite_Pin »?


Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.
Diffuser la température et l’humidité entre l’interrogateur (votre téléphone partable)
Et le serveur Blynk.
Diffuser la température et l’humidité entre le nœud Et le serveur Blynk.
Diffuser la température et l’humidité entre le nœud Et l’interrogateur.
Signaler l’état d’atteinte des seuls de la température et de l’humidité au serveur Blynk.
Signaler l’état d’atteinte des seuls de la température et de l’humidité au LEDs.
Signaler l’état d’atteinte des seuls de la température et de l’humidité a l’interrogateur.

EXAMEN IOT Page 4/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie
Ne rien privée
écrirede
iciGabes
Date : 13/12/2019
Devoir Surveillé
Page : 5/5
(Année Universitaire : 2019/2020)

Q6: La procedure « sendSensor » est lancé cycliquement par :


Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.
La procédure setup.
La procédure loop.
Le timer
Q6: La température est diffusée par les variables :
Sélectionnez toutes les affirmations vraies dans la liste ci-dessous.

V0. V5. V10


V1. V6. V11
V2. V7 V12
V3. V8 temperature_Pin
V4. V9 humidite_Pin

EXERCICE3 :
Soit le programme C Arduino IDE suivant :
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial

char auth[] = "64ed84ad58d04cb8b2d32419e04327e5";


char ssid[] = "IOT";
char pass[] = "********";
const int btn1Pin = 1; // Select your pin with physical button
WidgetLED led3(V3); // V3 LED Widget represents the physical button state
BlynkTimer timer;
boolean btn1State = false;
void buttonLedWidget()
{
boolean isPressed1 = (digitalRead(btn1Pin) == LOW); // Read button
if (isPressed1 != btn1State) // If state has changed...
{
if (isPressed1) led3.on();
else led3.off();
Btn1State = isPressed1;
}
}

EXAMEN IOT Page 5/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie privée de Gabes
Date : 13/12/2019
Devoir Ne rien écrire ici
Surveillé Page : 6/5

(Année Universitaire : 2019/2020)

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();
}

Q1: Décrire en détail la procédure « void buttonLedWidget() ». En déduire son rôle.


void buttonLedWidget()
{
boolean isPressed1 = (digitalRead(btn1Pin) == LOW); // isPressed  1 si état de btn1Pin=0
if (isPressed1 != btn1State) // si changement d’état de btn1Pin
{
if (isPressed1) led3.on(); // allumer led3 si isPressed=1 c-à-d état de btn1Pin=0

else led3.off(); // si non éteindre led3


Btn1State = isPressed1; // initialiser isPressed1
}
}

La procédure « buttonLedWidget() » permet d’allumer le widgetLED led3 (V3) sur blynk si d’état
du « btn1Pin » (GPIO1) est LOW.

Q2- Quel est le rôle le fonction «timer.setInterval » ?

La fonction «timer.setInterval » permet de lancer une activité periodiquement selon le timer


spécifié.

Dans notre cas : timer.setInterval(500L, buttonLedWidget);


timer.setInterval est l’activité est la procédure buttonLedWidget et le temps est 500ms.

EXAMEN IOT Page 6/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie privée de Gabes
Date : 13/12/2019
Devoir Ne rien écrire ici
Surveillé Page : 7/5

(Année Universitaire : 2019/2020)

Q3- Terminer le schéma électrique du système :

Q4- Proposer un montage qui permet de commander 4 LED Wedgets (led1, led2 , led3 et led4)

EXAMEN IOT Page 7/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie privée de Gabes
Date : 13/12/2019
Devoir Ne rien écrire ici
Surveillé Page : 8/5

(Année Universitaire : 2019/2020)

Q5- Réécrire le programme en tenant compte des modifications de la question Q4.

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial
char auth[] = "64ed84ad58d04cb8b2d32419e04327e5";
char ssid[] = "IOT";
char pass[] = "********";

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;
}

EXAMEN IOT Page 8/9


Ministère de l’enseignement supérieur Réf : GES-IMP-11

Ecoles Supérieure des sciences Appliquées et de la Indice : 01


Technologie privée de Gabes
Date : 13/12/2019
Devoir Ne rien écrire ici
Surveillé Page : 9/5

(Année Universitaire : 2019/2020)

boolean isPressed4 = (digitalRead(btn4Pin) == LOW); // Read button


if (isPressed4 != btn4State) // If state has changed...
{
if (isPressed4) led4.on(); else led4.off();
Btn4State = isPressed4;
}
}

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();
}

BON COURAGE & BONNE SANTÉ

EXAMEN IOT Page 9/9

Vous aimerez peut-être aussi