Vous êtes sur la page 1sur 24

SMART

DEVICES

Réalisé par : Charrad Oumayma, Guedhami Hamdi & Rjab Oumayma

Filière : Réseaux Informatiques et Télécommunication

Année : 3 Groupe : 2

Année universitaire : 2021/2022


 Partie : Capteur de Température I2C : LM75
1- Ecrire une fonction Write1Byte (uint8_t RegAddr, uint8_t Val) qui permet d’écrire un octet (Val) dans le
registre ayant l’adresse RegAddr.
Tout d’abord, on commence par importer les bibliothèques, déclarer les adresses des registres et définir les pins
et le bus I2C.
La bibliothèque Wire.h permet d’assurer la communication avec
les dispositifs I2C.

La fonction Write1Byte (uint8_t RegAddr, uint8_t Val) permet d’écrire un octet Val dans le registre ayant
l’adresse RegAddr.
Cette instruction déclenche la transmission sur le bus de
communication en passant en argument l’adresse de l’esclave.
Cette instruction permet de spécifier l’adresse vers laquelle le
message sera transmis.
Cette instruction permet de spécifier la valeur à transmettre.

Cette instruction met fin à la communication. Elle accepte


comme paramètre une valeur booléenne. Si cette valeur est
fausse, un message d’erreur sera affiché. 
2- Ecrire une fonction Read2Bytes (uint8_t RegAddr) qui permet de lire successivement 2 bytes à partir de
l’adresse RegAddr et les mets dans deux variables : la première dans uint8_t highbyte et la deuxième dans
uint8_t lowbyte.
La fonction Read2Bytes (uint8_t RegAddr) permet de lire successivement 2 bytes à partir de l’adresse RegAddr
et les mets dans deux variables : la première dans uint8_t highbyte et la deuxième dans uint8_t lowbyte.

Cette instruction permet de récupérer des octets à partir d’un


périphérique esclave en passant en argument son adresse et le
nombre d'octets à récupérer.
Ces instructions permettent la lecture des 2 premiers octets disponibles sur le bus de
communication puis l’affectation de leurs contenus dans les variables highbyte et
lowbyte.
Cette instruction permet d’écrire le résultat sur 16 bits en
effectuant un décalage de 8 bits sur la variable highbyte.
Cette instruction permet de retourner le résultat sur 16 bits.
3- Ecrire le code qui permet de calculer la température.

La fonction CalculTemp permet de calculer la température en commençant par la réalisation d’un décalage de 5
bits puis en multipliant la valeur de tempout par 0.125, ce qui est demandé dans la fiche technique du capteur,
et enfin en affichant la valeur de la température.
La fonction setup() est appelée au démarrage du programme. Cette fonction est utilisée pour initialiser les
variables, le sens des broches, les librairies utilisées. La fonction setup n'est exécutée qu'une seule fois, après
chaque mise sous tension ou réinitialisation de la carte Arduino.
La fonction loop () s'exécute en boucle sans fin, permettant au programme de s'exécuter et de répondre. En effet,
elle permet de lire en permanence la température et de l’afficher en Celsius toutes les 3 secondes.
Simulation du résultat

La température est lue et affichée en Celsius toutes les 3 secondes.

 Partie : Température & MQTT / BLE


1- Enregistre le sketch (Appli MQTT) et modifier le code de l’application MQTT de telle sorte à publier la
température au lieu de publier l’état de la Led.
Tout d’abord, on commence par importer les bibliothèques.
La bibliothèque Wifi.h permet d’établir une connexion internet.
La bibliothèque PubSubClient.h assure la connexion au serveur MQTT, la publication de messages et l’abonnement à des topics.
Les informations de connexion au point d’accès.

Les paramètres du compte MQTT.

La variable Wifi_Reconnect indique le temps de reconnexion du client Wifi en cas de déconnexion.


La variable Mqtt_Reconnect indique le temps de reconnexion du client MQTT en cas de déconnexion.

Cette instruction indique un client Wifi.


Cette instruction indique un client MQTT attaché à un client Wifi.
Connexion au serveur MQTT.

Attribution des paramètres du serveur MQTT.


La fonction callback est exécutée lorsqu’on reçoit des données à partir du
serveur MQTT.

Etablissement de la connexion au client MQTT.

Affichage d’un message d’erreur si la connexion échoue.

Souscription au topic iotdevice/temperatue.


Cette instruction permet la publication des messages sur le serveur
MQTT dont le topic est iotdevice/temperature.

La fonction reconnect() assure l’établissement de la connexion Wifi


et MQTT.
Ces instructions permettent d’afficher l’état de la connexion Wifi.

Ces instructions permettent d’afficher l’état de la connexion au serveur MQTT.

Ce bloc d’instruction permet d’établir la connexion au server MQTT et au point


d’accès.
Simulation du résultat

La température est publiée au niveau du serveur MQTT suite à la souscription au topic iotdevice/temperature.
2- Enregistre le sketch (Appli BLE Server) et modifier le code de l’application de telle sorte à créer un service
température qui permet à des Clients BLE de se connecter au serveur et lire la valeur de la température.
Tout d’abord, on commence par importer les bibliothèques nécessaires au fonctionnement du serveur BLE.
Cette instruction permet d’initialiser le périphérique BLE.
Cette instruction permet de créer un serveur BLE.
Cette instruction permet de créer un service BLE.

Ce bloc d’instruction permet de spécifier les


caractéristiques d’un service BLE.

Cette instruction permet d’initialiser les caractéristiques du


service BLE.
Cette instruction permet de déclencher le service BLE.

Cette instruction permet à un gestionnaire de connexion associé au serveur de démarrer


une tâche en arrière-plan qui effectue une notification toutes les deux secondes.
Simulation du résultat

Le client BLE peut se connecter au serveur BLE et plus précisément au service température afin de lire la valeur
de la température.
 Partie : Configuration des paramètres & MQTT (Publish/Subscribe)
3- Une Subsrcition à un topic qui permet de contrôler la led RGB (avec des ordres permettant d’étendre les 3
leds, d’allumer la led Red, ou bien Green, ou bien Blue, ou les 3 ensemble (White).

Cette instruction indique que la led est une variable de sortie.


Si le client envoie le caractère ‘R’, la couleur de la led sera RED.

Si le client envoie le caractère ‘G’, la couleur de la led sera GREEN.

Si le client envoie le caractère ‘B’, la couleur de la led sera BLUE.

Si le client envoie le caractère ‘A’, la couleur de la led sera WHITE.


Simulation du résultat

Suite à la souscription au topic iotdevice/temperature, on peut contrôler la led RGB avec des ordres permettant
d’étendre les 3 leds, d’allumer la led Red, ou bien Green, ou bien Blue, ou les 3 ensemble.
4- La possibilité de publier des données relatives aux mesures de la température si la température dépasse une
valeur seuil Tmax (Test toutes les 5 secondes).
Initialisation de la variable tmax.

Si la température dépasse la valeur seuil, un message «High» sera affiché et la


valeur de la température sera ainsi publiée.
Simulation du résultat

D’après ces captures d’écran, on remarque que si la température dépasse une valeur seuil tmax=20°C, elle sera
publiée au niveau du serveur MQTT.
6- Permettre à l’utilisateur de mettre à jour les paramètres du point d’accès (SSID & Mot de passe)
permettant la connexion à Internet et par conséquent au serveur MQTT ainsi qu’à la valeur Tmax.

Configuration des éléments JSON.

Création d’un structure permettant la déclaration des éléments JSON.

Déclaration du fichier contenant les éléments JSON.


Code de la page Web.
Simulation du résultat

A partir de cette page Web, on peut soumettre de nouvelles valeurs aux paramètres du point d’accès à savoir le
SSID et le Password ainsi qu’à la valeur Tmax.
MERCI DE
VOTRE
ATTENTION

Vous aimerez peut-être aussi