Vous êtes sur la page 1sur 56

République Tunisienne

Ministère de la Formation Professionnelle et de l’Emploi


Agence Tunisienne de la Formation Professionnelle

Rapport Projet de fin de formation


En vue d’obtention d’un diplôme de
Technicien supérieur en développement
des systèmes intelligents et informatique industrielle

Titre :

Mise en œuvre du protocole MQTT pour un


serveur domotique

Réalisé par :
FAYIDHOI Ahamadi Section: TSD G15
SAINDOU AHMED Nourania Section: TSD G15
Encadré par :
M. BEN AMOR Sami Ahmed
Membres du jury :
M. BEN AMEUR Mohamed Sadok
Mme. DAHMOUL Aïcha
M. AYARI Nabil

Soutenu le 14 FEVRIER 2020


C.S.F.M.I. Khniss PFF2020

DEDICACES

Au nom de Dieu, c’est avec gratitude et développement total que je

tiens à dédier ce modeste travail à mes chers parents, aucune dédicace ne

serait témoin au profond amour, mon immense gratitude et mon plus

respect, car je ne pourrais jamais oublier la tendresse et l’Amour dévoué

par lesquels ils m’ont toujours entouré depuis mon enfance.

Je dédie aussi ce modeste travail :

A tous mes ami(es), et a tous ceux que j’aime et toutes les personnes

qui m’ont prodigué des encouragements et se sont donnée la peine de me

soutenir durant et année de formation. A mes chers formateurs et

formatrices, sans aucune exception.

Aussi, a tous ceux qui m’ont soutenu par leur orientation, leurs

conseils durant la réalisation de ce travail ici l’expression de ma grande

reconnaissance et l’assurance de mes profonds respects.

Nourania

Mise en œuvre du protocole MQTT pour un serveur domotique i


C.S.F.M.I. Khniss PFF2020

DEDICACES

Je dédie ce Modeste travaille à ma mère, ma raison d’être, ma raison de vivre la


lanterne qui éclaire mon chemin qui m’illumine de douceur et d’Amour.

Mon père, en signe d’amour, de reconnaissance et gratitude pour tous les soutiens
et les sacrifices dont il a fait preuve à mon égard.

A mes chers frères et sœur. Aucun mot ne pourra décrire vos dévouements et
vos sacrifices.

A tous mes ami(es), En témoignage de l’amitié sincère qui nous a liées et de bon
moment qu’on a passé ensemble.

Je vous dédie ce travail en vous Souhaitant un avenir radieux et plein de bonnes


promesses.

A tous les gens qui ont cru en moi et qui me donnent l’envie d’aller en avent, je
vous remercie tous, votre soutien et vos encouragements me donne la force à une continuité
inimaginable.

Ahamadi

Mise en œuvre du protocole MQTT pour un serveur domotique ii


C.S.F.M.I. Khniss PFF2020

REMERCIEMENT

Avant tout remerciement, louange à Dieu

Ce travail est l’aboutissement d’un long cheminement au cours duquel nous avons

Bénéficié de l’encadrement, des encouragements et du soutien de plusieurs personnes,


à qui nous tenons à dire profondément et sincèrement merci.

Nous tenons à remercier tout d’abord, notre encadrant Monsieur Sami Ahmed Ben
Amor pour tous les efforts qu’il a fourni en vue de nous diriger et nous aider, sa disponibilité,
son écoute, ses remarques et suggestions qui ont été intitulé sur ce travail et pour le temps qu’il
a bien voulu nous accorder.

A tout le cadre administratif et pédagogique du CSFMI Khnis, à nos généreux


formateurs qui ont ménagés leur effort à notre compte, à toute personne qui a contribué de près
ou de loin pour la réalisation de ce travail.

Mise en œuvre du protocole MQTT pour un serveur domotique iii


C.S.F.M.I. Khniss PFF2020

CAHIER DE CHARGE

Plan de réalisation du travail :

Lieu : Centre Sectoriel de Formation aux Métiers de l’Industrie Khniss.

Laboratoire : Domotique II

Année de formation : 2017-2020

Durée du projet : septembre 2019-fevrier 2020

Nombre de stagiaire : Deux (02) stagiaires

Section : TSD15

Thème du travail : Mise en œuvre du protocole MQTT pour un serveur domotique

Encadré par : BEN AMOR Sami Ahmed (CSFMI Khniss)

Travail demandé : Mise en œuvre du protocole MQTT pour un serveur domotique


permettant de piloter une maison à partir d’une application à distance en créant un serveur web
entre les différents équipements du système domotique.

Mise en œuvre du protocole MQTT pour un serveur domotique iv


C.S.F.M.I. Khniss PFF2020

SOMMAIRE

Introduction générale ............................................................................................... 1


CHAPITRE 1 LA DOMOTIQUE .......................................................................................... 2
I. DEFINITIONS ..................................................................................................................... 2
II. DOMAINES DE LA DOMOTIQUE.......................................................................................... 2
III. PROTECTION DES PERSONNES ET DES BIENS .................................................................. 3
IV. CONFORT DE LA VIE QUOTIDIENNE ............................................................................... 3
V. LES ECONOMIES D’ENERGIE.............................................................................................. 4
VI. LA MAISON COMMUNICANTE ........................................................................................ 5
CHAPITRE 2 LA CARTE ARDUINO ET SES PERIPHERIQUES.................................. 6
I. INTRODUCTION ................................................................................................................. 6
II. MATERIELLES UTILISES .................................................................................................... 6
1. La carte Arduino. ......................................................................................................... 6
a. La carte Arduino uno ............................................................................................... 7
b. Caractéristiques techniques ...................................................................................... 8
2. Capteur d’humidité : DHT 11 ...................................................................................... 9
a. Caractéristiques et principe de fonctionnement ....................................................... 9
b. Le protocole de communication............................................................................... 9
3. Module RFID RC 522 .............................................................................................. 11
a. Principe de fonctionnement. .................................................................................. 11
b. Caractéristiques du module RC 522 ...................................................................... 12
4. Le module wifi esp8266 esp-01................................................................................. 12
a. Schéma de brochage............................................................................................... 14
b. Role des broches .................................................................................................... 14
CHAPITRE 3 : LA CARTE RASPBERRY PI ................................................................... 16
I. INTRODUCTION ............................................................................................................... 16
II. PRESENTATION DE RASPBERRY PI 3B+ .......................................................................... 16
1. Performance de Raspberry Pi 3 B+ ........................................................................... 17
2. Caractéristiques de Raspberry Pi3+ ........................................................................... 18
3. Les périphériques ....................................................................................................... 19
a. L’alimentation – ..................................................................................................... 19
b. Une carte SD .......................................................................................................... 19

Mise en œuvre du protocole MQTT pour un serveur domotique v


C.S.F.M.I. Khniss PFF2020

c. Un câble HDMI ..................................................................................................... 19


d. Un câble Ethernet .................................................................................................. 19
e. Le boîtier ................................................................................................................ 20
4. Le système d’exploitation .......................................................................................... 20
5. Le système VNC ....................................................................................................... 22
6. Node-Red : ................................................................................................................. 22
7. Le protocole MQTT ................................................................................................... 23
III. CONCLUSION .............................................................................................................. 25
CHAPITRE 4 REALISATION PRATIQUE DU PROJET ............................................... 26
I. INTRODUCTION ............................................................................................................... 26
II. PREPARATION DE LA PARTIE LOGICIELLE ....................................................................... 26
1. Préparation du Raspberry Pi 3B+ ............................................................................. 26
a. Préparation de la carte SD et Démarrage .............................................................. 26
b. Branchement des périphériques avec Raspberry Pi ............................................... 27
c. Premiers parametrages ........................................................................................... 28
d. Installation de Raspbian ......................................................................................... 29
e. Configuration de MQTT serveur avec Raspberry Pi ............................................ 29
f. Test du serveur ....................................................................................................... 30
2. Programmation Node-Red ......................................................................................... 30
a. Installation .............................................................................................................. 31
b. Programme Développé .......................................................................................... 34
i. Le nœud injecter ................................................................................................ 34
ii. Le noeud fonction............................................................................................... 34
iii. Le nœud serial .................................................................................................... 34
iv. Le nœud debug ................................................................................................... 34
v. Le nœud gauge .................................................................................................. 34
vi. Le nœud chart : ................................................................................................... 35
vii. Le nœud switch .............................................................................................. 35
III. PREPARATION DE LA MAQUETTE ET CABLAGE ............................................................ 35
IV. DEVELOPPEMENT DE L’APPLICATION DE COMMANDE. ................................................ 35
1. Fonction d’accès sécurisé à l’habitat. ........................................................................ 36
2. Fonction d’éclairage. ................................................................................................. 36
3. Fonction de l’acquisition de la température et l’humidité ......................................... 38
4. Fonction de ventilation .............................................................................................. 38

Mise en œuvre du protocole MQTT pour un serveur domotique vi


C.S.F.M.I. Khniss PFF2020

Conclusion Générale .............................................................................................. 39


Bibliographie .......................................................................................................... 40
Annexes.................................................................................................................. 41
1. Annexe 1 : Quelques codes d’instruction .................................................................. 41
2. Annexe 2 : Pinout entres/sorties Arduino .................................................................. 43
3. Annexe 3 :Module Wifi ESP01 (ESP8266) .............................................................. 44
4. Annexe 4 : Pinout sensors shield v5.0 ....................................................................... 45
5. Annexe 5 : Accueil raspberry pi ................................................................................ 46
6. Annexe 6 : Câblage final ........................................................................................... 47

Mise en œuvre du protocole MQTT pour un serveur domotique vii


C.S.F.M.I. Khniss PFF2020

LISTE DES FIGURES

Figure 1 Maison communicante ................................................................................................. 5


Figure 2: différentes cartes Arduino ........................................................................................... 7
Figure 3: Arduino uno ................................................................................................................ 7
Figure 4 Schéma de DHT11 ....................................................................................................... 9
Figure 5 Schéma de cablage DHT11/DHT22 ............................................................................ 9
Figure 6: base de communication DHT11 ................................................................................. 9
Figure 7 Module RFID RC522................................................................................................. 11
Figure 8: Module ESP01 (ESP8266) et son support ................................................................ 12
Figure 9: Schéma de brochage ................................................................................................. 14
Figure 10 La carte Raspberry Pi 3 B+ ...................................................................................... 16
Figure 11 : Schéma détaillé de pi 3B+ ..................................................................................... 18
Figure 12 : Boitier de Raspberry Pi .......................................................................................... 20
Figure 13 : Raspbian ................................................................................................................ 21
Figure 14 : Interface node-red .................................................................................................. 23
Figure 15 : Protocol MQTT ..................................................................................................... 24
Figure 16 : Montage carte SD .................................................................................................. 27
Figure 17 : branchement de péripherique ................................................................................. 27
Figure 18 : Interface du premier paramétrage .......................................................................... 28
Figure 20 : Interface programmable de node-red ..................................................................... 32
Figure 21 : gestionnaire de nodes ............................................................................................. 33
Figure 22 : interface recherche dashboard ............................................................................... 33
Figure 23 : Image de la maquette ............................................................................................. 35
Figure 24 : Câblage RFID ........................................................................................................ 36
Figure 25 : Résultat de l'éclairage ............................................................................................ 37

Mise en œuvre du protocole MQTT pour un serveur domotique viii


C.S.F.M.I. Khniss PFF2020

INTRODUCTION GENERALE

L'évolution de la technologie et du mode de vie nous permet aujourd'hui de prévoir des


espaces de travail et de logement mieux adaptés. De même, La majorité des individus, et plus
particulièrement les personnes âgées, passent beaucoup leur temps à domicile, d’où l’influence
considérable de l’habitat sur la qualité de vie. L’amélioration du système de sécurité et de
confort dans l’habitat apparaît donc comme une tâche importante sociale.

La domotique ou encore la maison intelligente est définie comme une résidence équipée
de technologies d’informatique, d’automatisme et d’électronique, ambiante qui vise à assister
l’habitant dans les situations diverses de la vie domestique en améliorant le confort et
simplifient un certain nombre de tâches.

Elle assure différentes fonctions :

- fonction de confort, en optimisant de l’éclairage de telle façon à multiplier les


ambiances et d’adapter l’intensité de l’éclairage au besoin du moment, et ainsi en programmant
les équipements électroménagers et multimédia.

- fonction d’économie d’énergie, en mettant en veille les dispositifs de chauffage


quand les habitants sont absents ou adapter automatiquement l’utilisation des ressources
électriques en fonction des besoins des résidents afin de diminuer les gaspillages de ressources
énergétiques suivi des consommations et optimisation des tarifs.

- fonction de sécurité ; en outre, un autre but essentiel de l’application des technologies


d’information aux maisons est la protection des individus. Cela est rendu possible par des
systèmes capables d’anticiper des situations potentiellement dangereuses ou de réagir aux
événements mettant en danger l’intégrité des personnes.

Notre mission porte sur la réalisation d’un contrôleur intelligent permettant de piloter
une maison à partir d’une application à distance en créant un serveur web entre les différents
équipements du système domotique. Les objectifs de notre projet peuvent être divisés
essentiellement selon les axes suivants qu’on va les aborder sous quatre chapitres.

Mise en œuvre du protocole MQTT pour un serveur domotique 1


C.S.F.M.I. Khniss PFF2020

Chapitre 1 La domotique

Dans ce chapitre nous allons définir la domotique, son domaine d’utilisation et la maison
communicante.

I. Définitions

Avant d’aller plus loin, on a intérêt tout d’abord à définir clairement le mot domotique;
ce mot a été introduit dans le dictionnaire « le petit Larousse » en 1988.

Le mot domotique a été construit à partir du mot composé de préfixe « Domus », qui
signifie en latin domicile associé au suffixe « tique », couramment employé pour évoquer le
terme des technologies, électronique, électrique, informatique et des communications au service
de la maison. Son champ d’application vise à assurer des fonctions de sécurité, de confort, de
gestion d’énergie et de communication qu’on peut trouver dans un espace domestique.

Elle vise à assurer la fonction de sécurité, de confort de gestion d’énergie et la


communication dans notre maison.

La domotique investit notre univers quotidien pour nous faciliter la vie. Dans ses
applications les plus évoluées, la domotique met en réseau et coordonne le fonctionnement de
différents types d’équipements ménagers, de travail et de loisir.

Elle peut se charger des tâches les plus complexes ou contraignantes et, en même temps,
assurer l’intendance de la maison. A l’opposé, elle peut accomplir des actions très basiques,
comme allumer une lumière dans une pièce. Les applications possibles de la domotique
concernent aussi bien la programmation, la surveillance, et le contrôle à distance.

La domotique offre une simplification qui peut alléger le poids des actions quotidiennes
pour les personnes âgées ou handicapées, ou tout simplement apporter un confort majeur.

II. Domaines de la domotique

La domotique s’investit dans notre vie quotidienne en 3 domaines principaux :

-Assurer la protection des personnes et des biens.

Mise en œuvre du protocole MQTT pour un serveur domotique 2


C.S.F.M.I. Khniss PFF2020

-Veiller au confort de vie quotidienne des personnes âgées, entre autres, en installant
des appareils intelligent pour les personnes à mobilité réduite.

- Faciliter les économies d’énergie grâce à la réactivité maîtrisée d’une maison


intelligente.

III. Protection des personnes et des biens

La domotique permet le suivi des personnes âgées ou handicapées. En matière de


sécurité domestique. Rien n’est laissé au hasard. Alarmes, détecteurs de mouvement ou
d’intrusion, interphones, vidéophone, téléphones, simulateurs de présence, etc. se combinent
pour détourner les visiteurs indésirables et arbitrer toutes les fonctions.

D’autres systèmes de détection sont prévus pour surveiller les enfants, prévenir les
risques d’accident (incendie, fuite de gaz, etc.) et signaler des pannes (inondation, coupure de
courant électrique, etc.).

La domotique de sécurité passe également par la centralisation de la surveillance et du


contrôle de toutes les zones de la maison. Des capteurs de mouvements, de bris de glace,
d’ouverture et fermeture, etc, des poignées biométriques, l’automatisme des volets… sont
installés sur les ouvertures pour prévenir toute tentative d’intrusion. L’ensemble est couplé à
des alarmes silencieuses sans fil ou des sirènes à l’intérieur ou l’extérieur de la pièce.

Des caméras invisibles, des champs magnétiques, des détecteurs de fumées assurent
aussi une grande sécurité s’ils sont judicieusement positionnés.

IV. Confort de la vie quotidienne

Avec une installation domotique, nous pouvons aujourd’hui avoir une maison vivante
et économique. Le fait de rendre la maison intelligente assurera un résultat basse-consommation
évidente. L’habitat offre aussi un bien-être sur-mesure, avec un confort en permanence.

Manipuler ses volets roulants ou battants en pressant un bouton est devenu une chose
courante de nos jours. De même qu’ouvrir le portail ou la porte du garage depuis sa voiture.
Plus globalement, tout ce qui se fait avec un interrupteur ou une poignée peut être automatisé

Mise en œuvre du protocole MQTT pour un serveur domotique 3


C.S.F.M.I. Khniss PFF2020

et piloté à partir d’un poste fixe, ou à distance via une télécommande, un ordinateur ou un Smart
phone.

V. Les économies d’énergie

La domotique permet de diminuer jusqu’à 10 % des factures d’énergie. Grâce aux


automatismes et à des capteurs, les équipements électriques inter-reliés pilotent au plus juste la
consommation énergétique (chauffage, éclairage, eau, ventilation, etc.), tout en gardant sous
contrôle le confort des zones occupées.

Le but principal de la domotique est d’éviter le gaspillage en supprimant les dépenses


inutiles. Les systèmes de régulation permettent de maîtriser la consommation d’électricité, de
gérer le chauffage et la production d’eau chaude sanitaire, avec un niveau de confort optimal.
Un détecteur de présence placé dans chaque pièce, par exemple, commande instantanément
l’allumage ou l’extinction des éclairages, la mise en route ou l’arrêt du chauffage, etc.

Au jardin par exemple, l’arrosage s’automatise et le détecteur crépusculaire se charge


d’allumer les lumières dès la tombée de la nuit et ainsi de lancer l’irrigation des plantes.

La maison intelligente utilise la programmation domotique via des scénarios qu’on peut
déterminer en fonction des besoins spécifiques, évitant les pertes thermiques inutiles et palliant
les risques d’oubli ou de sécurité.

Mise en œuvre du protocole MQTT pour un serveur domotique 4


C.S.F.M.I. Khniss PFF2020

VI. La maison communicante

Figure 1 Maison communicante

Une maison communicante comme le nom l’indique, c’est un système intelligent qui
exécutes et ou sauvegarde les données dédier via des capteurs (publish) à son récepteurs (
subscribe).

La centralisation des commandes est le corps du système domotique. Les appareils mis
en réseau se reconnaissent et dialoguent entre eux, se déclenchant par simple appui sur une
touche. Par le biais d’un interrupteur centralisé, les éclairages et volets motorisés peuvent être
actionnés individuellement, par groupes de pièces ou simultanément.

En communiquant avec l’habitat, il est possible de régler le chauffage, de simuler à


distance une présence, etc. En couplant l’installation avec une télécommande universelle ou
avec un simple appui sur une touche sur son Smart phone, le pilotage s’effectue de n’importe
où dans la maison, en fonction des besoins.

On ne peut pas tout dire l’utilité et l’importance de la domotique comme ce dernière est
plus en avance ces dernières années.

Nous allons essayer dans le chapitre suivant, vous détaillons quelques fonctionnalité de
la domotique ainsi que quelques capteurs répondant à notre projet.

Mise en œuvre du protocole MQTT pour un serveur domotique 5


C.S.F.M.I. Khniss PFF2020

Chapitre 2 La carte Arduino et ses périphériques

I. Introduction

Comme on a parlé précédemment, la domotique est l’ensemble des objets connectés


rendant la maison communicante. On parle d’une maison intelligente, les différents objets
connectés permettant à la maison de réagir automatiquement en fonction d’événements
(ouvrir/fermer des portes, allumée/éteindre la lumière à distance lors d’une absence
imprévue...).

Cette fonctionnalité technologique nécessite des capteurs et des logiciels pour accomplir
cette tâche. Pour répondre aux questions nous allons travailler avec des Arduino, Raspberry Pi
, MQTT, node-red,…

II. Matérielles utilisés

1. La carte Arduino.

Pour commencer, il faut revenir à l’origine de l’Arduino. Cette carte électronique


programmable sert de microcontrôleur pour la conception et le pilotage de montages
électroniques, mécaniques, domotiques ou robotiques. En effet, grâce à l’Arduino, il est
possible de créer des systèmes ingénieux amateurs ou professionnels, comme par exemple des
systèmes de contrôle pour diverses composantes de notre maison. Nous pouvons en effet grâce
à Arduino, nous servir de notre Smartphone comme d’une télécommande par exemple, allumer
ou éteindre nos lumières de maison, ou encore baisser ou lever nos volets électriques, réguler
la température de notre maison en pilotant le chauffage à distance, etc …

Il y a différentes type de carte Arduino que pourra utiliser le technicien selon son choix.

Mise en œuvre du protocole MQTT pour un serveur domotique 6


C.S.F.M.I. Khniss PFF2020

Figure 2: différentes cartes Arduino

Dans ce projet nous travaillons uniquement avec la carte Arduino uno.

a. La carte Arduino uno

Figure 3: Arduino uno

La carte Arduino Uno peut être alimentée via la connexion USB ou avec une
alimentation externe. La source d'alimentation est automatiquement sélectionnée. Une
alimentation externe peut provenir soit d'un adaptateur AC-DC ou d’une batterie. L'adaptateur
peut être connecté en branchant une prise 2.1mm dans la prise d'alimentation de la carte ou à

Mise en œuvre du protocole MQTT pour un serveur domotique 7


C.S.F.M.I. Khniss PFF2020

partir d'une batterie connectée dans le pin (ou broche) GND et V-in (alimentation externe). Le
processeur peut fonctionner sur une alimentation externe de 6 à 20 volts. Cependant, si la
tension est inférieure à7V, le pin 5V peut fournir moins de cinq volts et le processeur peut
devenir instable. Si la tension est supérieure à 12V, le régulateur de tension peut surchauffer et
endommager la carte. La plage recommandée est de 7 à 12 volts.

b. Caractéristiques techniques

Microcontrôleur ATmega328P Tension de fonctionnement 5V Tension d'entrée


(recommandé) 7-12V Tension d'entrée (limite) 6-20V E / S numériques Pins 14 (dont 6
fournissent la sortie PWM*) PWM numérique E / S Pins 6 Pins d'entrée analogique 6 DC
Courant par I O Pin / 20 mA Courant DC pour 3.3V Pin 50 mA Mémoire flash 32KB
(ATmega328P) dont

0,5 KB utilisé par bootloader**SRAM 2 KB (ATmega328P) EEPROM ***1 KB


(ATmega328P) Vitesse de l'horloge 16 MHz Longueur 68,6 mm Largeur 53,4 mm Poids 25 g

Mise en œuvre du protocole MQTT pour un serveur domotique 8


C.S.F.M.I. Khniss PFF2020

2. Capteur d’humidité : DHT 11

Figure 4 Schéma de DHT11


Figure 5 Schéma de cablage DHT11/DHT22

a. Caractéristiques et principe de fonctionnement

Alimentation : +5V (3.5 - 5.5V)

Température : de 0 à 50°C, précision : +/- 2°C

Humidité : de 20 à 96% RH, précision +/- 5% RH

b. Le protocole de communication :

Le DHT11 a la particularité d’utiliser une seule broche pour communiquer avec son
maitre. La communication se fait donc au moyen d’un protocole propriétaire demandant des
timings bien précis.

Explication des bases pour communiquer avec un DHT11

Figure 6: base de communication DHT11

Une trame « type » se compose de trois grandes parties :

Mise en œuvre du protocole MQTT pour un serveur domotique 9


C.S.F.M.I. Khniss PFF2020

Le maitre réveil le capteur au moyen d’un signal de « Start ».

Le capteur sort de son sommeil et envoie une réponse pour dire qu’il est vivant

Le capteur envoie 40 bits de données (5 octets) contenant la température, le taux


d’humidité et une checksum.

Ce qu’il faut noter c’est que le capteur a une sortie dite à «collecteur ouvert », cela
signifie que le capteur ne sort pas des niveaux logiques 0v/5v mais utilise un transistor en sortie.
Si le capteur veut envoyer un « 0 » il force le signal à 0v en rendant son transistor (entre DATA
et GND) passant. Si le capteur veut envoyer un « 1 » il laisse le signal tel-quel en rendant son
transistor bloquant.

D’où l’important de la résistance de tirage que l’on peut voir sur le schéma, pas de
résistance pas de signal

Réveil du capteur :

Le DHT11 est une grosse féniasse, il passe son temps à dormir.

Si vous voulez qu’il vous envoie ses données il faut le secouer en lui envoyant un signal
de Start.

Le signal de Start consiste en un état bas (0v) de 18 millisecondes et d’un état haut (5v)
de 40 microsecondes. Jusque-là rien de bien compliqué ! Ensuite le DHT11 va répondre pour
dire qu’il est bien réveillé.

Pour ce faire il va placer le signal à l’état bas pendant 80 microsecondes puis à l’état
haut pendant 80 autres microsecondes.

A ce moment précis le capteur est prêt, les mesures de la température et de l’humidité


sont faites et le capteur va pouvoir commencer à envoyer les données

Mise en œuvre du protocole MQTT pour un serveur domotique 10


C.S.F.M.I. Khniss PFF2020

3. Module RFID RC 522 :

Figure 7 Module RFID RC522

a. Principe de fonctionnement.

Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le
passage d’un composant magnétique permet de lire l’identifiant de l'UID de la carte, ainsi que
les données enregistrées.

Par principe, chaque carte RFID dispose de son propre UID.

De plus, les cartes ou tags répondent à une fréquence. Les tags, les plus répandus, sont
à une fréquence de 13,56Mhz.

Mise en œuvre du protocole MQTT pour un serveur domotique 11


C.S.F.M.I. Khniss PFF2020

Le contenu est divisé en plusieurs secteurs, subdivisé en block et encore en données.

Certaines cartes disposent du block 0 verrouillé, c’est-à-dire non modifiable. Celui-ci


contient essentiellement l’identifiant unique "UID".

b. Caractéristiques du module RC 522

Le module est un lecteur de la puce RFID basé sur le circuit MFRC522 à faible coût est
facile à utiliser. Il peut être utilisé dans une large gamme d’application. Le MFRC522 est un
circuit intégré de lecture / écriture hautement intégré pour la communication sans contact à
13,56 MHz.

Basé sur le circuit MFRC522

Fréquence de fonctionnement: 13,56 MHz

Tension d’alimentation: 3.3V

Courant: 13-26mA

Portée de lecture: Environ 3 cm avec la carte et le porte-clés fournis

Interface de communication : SPI

Taux de transfert de données maximum: 10 Mbit / s

Dimensions: 60mm × 39mm

4. Le module wifi esp8266 esp-01

Figure 8: Module ESP01 (ESP8266) et son support

Mise en œuvre du protocole MQTT pour un serveur domotique 12


C.S.F.M.I. Khniss PFF2020

L'ESP01 est un composant électronique à base de microcontrôleur ESP8266 qui


embarque une puce wifi. Il permet donc de manière native de monter une connexion en wifi sur
notre réseau local et par conséquent d'accéder à tous les équipements connectés sur le LAN :
dont bien sur notre serveur domotique !

Le microcontrôleur étant de la série ESP8266, on va pouvoir le programmer en utilisant


l'IDE Arduino comme pour un NodeMCU. Toutefois, ne disposant pas de port USB et ayant un
brochage différent il va falloir utiliser un procédé différent pour injecter le programme.

De petite taille, l'ESP01 dispose de 8 broches. Il diffère de l'ESP12e et du NodeMCU


notamment sur les critères suivants :

Ne dispose pas de port USB pour raccorder directement un ordinateur et injecter un


programme.

Ne présente que 2 ports GPIO (4 si on utilise les broches Tx et Rx comme GPIO01 et


GPIO03).

Son alimentation est en 3.3v.

Mise en œuvre du protocole MQTT pour un serveur domotique 13


C.S.F.M.I. Khniss PFF2020

a. Schéma de brochage

Figure 9: Schéma de brochage

b. Role des broches :

Tx/Rx : Liaison série mais peuvent également servir de GPIO (GPIO01 et GPIO03
respectivement).

CH_PD : chip power-down doit être raccordé au 3,3V. Si cette broche est raccordée au
GND, l'Esp entre dans un mode "basse consommation" dans lequel toutes les fonctions sont
figées et le programme ne s’exécute plus (voir explications dans l'encart ci-dessous).

GPIO0 : Utilisable comme broche I/O mais également permet d'entrer dans le mode «
Flash mode » si elle est connectée à la masse lors de la mise sous tension (puis replacée sur
VCC quelques secondes après). Dans ce mode l’ESP8266 ne démarrera pas son programme
interne mais entrera dans un mode appelé « UART download mode » où il écrira tout ce qu’il
reçoit sur la liaison série, dans sa mémoire. C'est de cette manière qu'il faut procéder pour
injecter un programme. Cette broche dispose d'une résistance de rappel (pull up) qui fait que
par défaut elle est en état haut.

GPIO2 : Utilisable comme broche I/O. Cette broche dispose d'une résistance de rappel
(pull up) qui fait que par défaut elle est en état haut. De plus cette broche est raccordée sur la

Mise en œuvre du protocole MQTT pour un serveur domotique 14


C.S.F.M.I. Khniss PFF2020

LED bleue (version esp01s). Malgré ce que l'on peut voir dans certaines documentations, pour
un démarrage correct cette broche doit être sur 3.3v.

RST doit être raccordé au 3.3v. Une pulse à GND sur cette broche génère un reset du
composant. Le reset permet à l'Esp de redémarrer en exécutant son setup et lui permet également
de sortir d'une mise en sommeil.

Mise en œuvre du protocole MQTT pour un serveur domotique 15


C.S.F.M.I. Khniss PFF2020

Chapitre 3 : La carte Raspberry Pi

I. Introduction

Lorsqu’on parle du Raspberry Pi¸ certains qualificatifs reviennent sans cesse : il est
petit¸ bon marché¸ “ bi-douillable” et adapté à des fins pédagogiques. Cependant¸ on ne peut
pas dire qu’il soit plug and play¸ même s’il est facile de le brancher à un téléviseur et de lui
faire afficher des choses à l’écran. Contrairement à la plupart des ordinateurs actuels¸ le
Raspberry Pi n’est pas un appareil autonome et livré prêt à l’emploi. En fonction de l’usage que
vous souhaitez en faire¸ vous devrez installer certains périphériques et logiciels appropriés.

Il existe plusieurs modèles du Raspberry Pi

Modèle (A, B, B+, Pi 2, pi 3, pi 3 B , pi 4)

II. Présentation de Raspberry Pi 3B+

Figure 10 La carte Raspberry Pi 3 B+

Le Raspberry Pi est un nano ordinateur de la taille d’une carte de crédit que l’on peut
brancher à un écran et utiliser comme un ordinateur standard ou en faire un usage personnel ou
professionnel selon les compétences de l’utilisateur. Comme c’est un open hardware qui

Mise en œuvre du protocole MQTT pour un serveur domotique 16


C.S.F.M.I. Khniss PFF2020

fonctionne avec le système open source donc il est facile de personnaliser la carte selon les
besoins.

Avant de nous lancer dans des cas d'utilisation il est important de comprendre comment
fonctionne un Raspberry Pi. Le Raspberry Pi ne dispose pas d'un disque dur interne (cela
augmenterait grandement sa taille) et on stockera les données sur une carte SD. Par défaut, le
Raspberry Pi est nu, comprendre par là qu'il est vendu sans accessoires. Pour pouvoir l'utiliser
nous devons donc avoir :

Une carte micro SD compatible avec le modèle Rosebery pi que nous avons choisi.

Un câble d'alimentation micro USB standard

Un câble RJ45 pour se connecter au réseau

Un câble HDMI afin de connecter le Rosebery pi un écran ou une télévision.

Un clavier pour taper les commandes

1. Performance de Raspberry Pi 3 B+

L’un des changements les plus flagrants apporté au Pi 3 B+ est clairement


l’amélioration de son processeur. Le SoC passe du Broadcom BCM2837 au BCM2837B0 et
fonctionne désormais avec une fréquence de 1,4 GHz, soit une augmentation d’environ 17%
par rapport à la génération précédente qui affichait 1,2GHz. On notera que la puce est
toujours accompagnée de ses 1 Go de mémoire vive DDR3. Du côté de la performance
graphique cette fois ci, on ne constate pas de réelle amélioration. La vitesse du GPU est la même
que celle du Pi 3, il s’agit toujours du Video Core IV 3D avec un décodage vidéo ainsi qu’une
sortie HDMI en Full HD.

Mise en œuvre du protocole MQTT pour un serveur domotique 17


C.S.F.M.I. Khniss PFF2020

2. Caractéristiques de Raspberry Pi3+

Figure 11 : Schéma détaillé de pi 3B+

Ce type de Raspberry ressemble beaucoup à celui de ses prédécesseurs. Il a en effet dans


un premier temps la même taille que le Raspberry Pi 3, à savoir 56 x 85 x 16 mm, et tous les
ports restent à leur place. Ce qui semble être logique de la part des développeurs car si les
montages et autres ajouts correspondent encore au dernier modèle, il est plus facile pour ses
utilisateurs de s’adapter au nouveau.

En termes de ports, le Pi 3 B + est toujours équipé d’un port Ethernet qui comme nous
l’avons vu a été amélioré, d’un port HDMI de taille normale, d’un port A / V composite, de
quatre ports USB 2.0 ainsi que de connexions pour les câbles ruban de caméra et
d’affichage. On remarque aussi qu’il y a maintenant un connecteur à 4 broches placé dans le
coin supérieur gauche de la carte de l’ordinateur.

Le changement majeur au niveau de l’apparence est qu’il y a désormais une grande


plaque en métal marquée du logo Raspberry Pi à côté du processeur. Il s’agit du nouveau
bouclier RF du Pi qui couvre les composants réseau et permet au B + de répondre aux exigences
de conformité de la FCC. Pour les entreprises qui cherchent à intégrer le Raspberry Pi dans
leurs produits IoT, cela raccourcit considérablement le processus de test pour l’approbation de
la FCC, permettant ainsi une mise sur le marché plus rapide.

Mise en œuvre du protocole MQTT pour un serveur domotique 18


C.S.F.M.I. Khniss PFF2020

3. Les périphériques

a. L’alimentation –

C’est le périphérique indispensable sur lequel il ne faut surtout pas se tromper. Vous
devez impérativement utiliser un adaptateur 5 V avec une fiche micro USB, capable de fournir
au moins 700 mA de courant. Une alimentation de 1 000 mA (1 A) est recommandée. Un
chargeur classique de Téléphone portable ne suffira probablement pas, même s’il possède la
bonne fiche, car il ne pourra pas fournir plus de 400 mA. Pour connaître sa puissance, consultez
ses caractéristiques techniques figurant au dos. Un Pi sous-alimenté pourra avoir l’air de
fonctionner mais il sera instable et déclenchera des erreurs inattendues.

b. Une carte SD :

Vous aurez besoin d’une carte d’une capacité d’au moins 4 Go et de classe 4 (ou plus)
de préférence. Les cartes de classe 4 sont capables de transférer au moins 4 Mo par seconde.
Certaines cartes Raspberry Pi précédentes avaient des difficultés à utiliser les cartes de classe 6
et supérieures, qui sont capables d’aller plus vite mais qui s’avèrent moins stables. Une carte
micro SD dans un adaptateur convient également.

c. Un câble HDMI :

Vous en aurez besoin si vous connectez la carte à un moniteur HDMI. Un moniteur


DVI nécessitera en plus un adaptateur approprié. Vous pouvez aussi faire fonctionner le Pi sans
écran.

d. Un câble Ethernet :

De nos jours, de plus en plus d’appareils fonctionnent sans fil et on trouve donc peut-
être que le port Ethernet du Pi n’est pas très pratique.

Mise en œuvre du protocole MQTT pour un serveur domotique 19


C.S.F.M.I. Khniss PFF2020

e. Le boîtier

Figure 12 : Boitier de Raspberry Pi

Vous aurez rapidement besoin d’un boîtier pour votre Raspberry Pi. Les câbles rigides
qui l’entourent de chaque côté rendent le Pi difficile à stabiliser. Certains des composants
comme le support de la carte SD peuvent être endommagés, même en utilisation normale sans
protection. Contrairement à beaucoup de cartes à microcontrôleurs répandues, dont le circuit
imprimé a deux couches (une sur chaque face de la platine), le Pi nécessite six couches pour
relier ses composants à haute densité. Entre les deux faces, on trouve aussi des pistes sur quatre
autres niveaux. Si la carte est tordue, ces pistes peuvent rompre, ce qui est indétectable et
irréparable. Pour pallier ce problème, il est conseillé de faire l’acquisition d’un boîtier.

4. Le système d’exploitation

Le Raspberry Pi fonctionne généralement avec un système d’exploitation basé sur


Linux. Techniquement parlant, Linux n’est qu’un noyau alors qu’un système d’exploitation est
un ensemble de différents éléments (drivers, services et applications). Il existe de nombreuses
distributions Linux, très diversifiées et qui évoluent au fil des années. Les distributions les

Mise en œuvre du protocole MQTT pour un serveur domotique 20


C.S.F.M.I. Khniss PFF2020

Plus courantes sur les ordinateurs de bureau sont Ubuntu, Debian, Fedora et Arch.
Chacune d’entre elles est adaptée à des applications spécifiques et possède sa propre
communauté d’utilisateurs. Comme le Pi est basé sur un SoC pour appareil mobile, il n’utilise
pas les mêmes logiciels qu’un ordinateur de bureau. Il n’existe pas de documentation sur les
caractéristiques de ce processeur construit par Broadcom, gardées confidentielles. Il faut donc
ajouter des drivers spécifiques, contenant des données binaires propriétaires, et adapter les
distributions Linux en conséquence. Tandis que la plupart des ordinateurs offrent plusieurs
gigaoctets de RAM et des centaines de gigaoctets de stockage, le Pi est quant à lui plus limité
dans ces deux domaines. On trouve de plus en plus de distributions Linux développées ou
adaptées spécifiquement pour le Pi, les plus connues sont les suivantes.

Figure 13 : Raspbian

Raspbian : basée sur Debian, Raspbian est la distribution recommandée par la fondation
Raspberry Pi. Le site http://www. raspbian.org/ n’est pas géré par la fondation mais par la
communauté des utilisateurs. Pour télécharger la distribution officielle, rendez-vous sur la page
http://www.Raspberrypi.org/downloads.

Raspberry Pi Linux version éducative d’Adafruit (Occidentalis) : la distribution


d’Adafruit basée sur Raspbian contient un certain nombre d’outils et de drivers utiles pour
apprendre l’électronique.

Arch Linux : destinée aux ordinateurs dotés de processeurs ARM, la distribution Arch
Linux supporte le Pi depuis le début de son développement.

XBian : il s’agit d’une distribution pour les utilisateurs de Raspbian qui souhaitent
utiliser le Pi comme un centre multimédia (voir aussi OpenELEC et Raspbmc).

Mise en œuvre du protocole MQTT pour un serveur domotique 21


C.S.F.M.I. Khniss PFF2020

Qton Pi : cette distribution est basée sur le Framework Qt 5.

5. Le système VNC :

VNC : Virtual Network Computing, littéralement : informatique virtuelle en réseau,


c’est un système de visualisation et de contrôle de l'environnement de bureau d'un ordinateur
distant. Il permet au logiciel client VNC de transmettre les informations de saisie du clavier et
de la souris à l'ordinateur distant, possédant un logiciel serveur VNC à travers un réseau
informatique. Il utilise le protocole RFB (Remote Frame Buffer) pour les communications.

6. Node-Red :

Node-RED : programmation graphique pour objets connectés

C’est un langage de programmation graphique par assemblage de blocs fonctionnels qui


permet de développer des objets connectés (et beaucoup d’autres choses). Node-Red est un
projet Open Source (et gratuit) soutenu par IBM. On programme avec Node-red en liant des
fonctions présentées sous la forme de briques. Le flux de données passe d’un traitement à l’autre
(d’une fonction à l’autre). Certaines fonctions proposent des paramètres qu’il suffit de définir à
l’aide d’une liste de choix ou d’un champ à remplir (par exemple une clé d’API pour un service
météo). Il existe plusieurs centaines de plugins dans tous les domaines : enregistrer les données
sur une base de données (MySQL, MongoDB, MQTT…), piloter les E/S d’un Arduino ou d’un
Raspberry (avec le plugin Johny Five par exemple), ajouter une interface graphique (UI) pour
tracer des graphiques, afficher des jauges, commander un relai à l’aide d’un bouton…

Ce schéma ci-dessous résume les différentes fonctions de node-red ainsi que son
interface.

Mise en œuvre du protocole MQTT pour un serveur domotique 22


C.S.F.M.I. Khniss PFF2020

Figure 14 : Interface node-red

7. Le protocole MQTT :

Protocole MQTT : MQTT (Message Queuing Telemetry Transport) est un protocole de


connectivité (machine-to-machine (M2M) / "Internet of Things") basé sur le protocole TCP/IP.
Il a été conçu comme un transport de messagerie de publication. Il est utile pour les connexions
avec des emplacements distants où une empreinte de code réduite est requise et/ou si la bande
passante du réseau est prioritaire. MQTT est efficace pour les applications mobiles en raison de
sa petite taille, de sa faible consommation d'énergie, de la réduction des paquets de données et
de la distribution efficace des informations à un ou plusieurs récepteurs. Il est devenu très utilisé
surtout avec la croissance exponentielle de l'Internet des objets, et la nécessité de se connecter
et de communiquer entre les appareils intelligents de faible puissance. MQTT a été conçu pour
être un protocole à faible surcharge qui tenait compte de la bande passante et des limitations du
processeur. Il a été conçu avec la capacité de fonctionner dans un environnement intégré où il
constituerait une voie de communication fiable et efficace

Mise en œuvre du protocole MQTT pour un serveur domotique 23


C.S.F.M.I. Khniss PFF2020

Figure 15 : Protocol MQTT

Le climatiseur est enregistré auprès du serveur MQTT pour recevoir toutes les messages
au sujet de la « température » et de l'«humidité». Les capteurs de température et d'humidité ne
sont pas enregistrés pour recevoir des messages, ils ne font que publier des messages vers le
courtier.

Toutes les dix minutes, le capteur de température publie la température ambiante. Dans
la pratique, cela signifie qu'il envoie un seul numéro, disons 23, sous le sujet «température» au
courtier MQTT, pour qu'il fait actuellement 23°C. De même, toutes les quinze minutes, le
capteur d'humidité publie des messages au sujet de l'«humidité» vers le courtier MQTT, pour
signifier que le facteur d'humidité est de 62%. À son tour, le courtier MQTT transmet ces
messages à l'unité de conditionnement d'air. Cette dernière décide si elle doit s'allumer ou
s'éteindre sur la base de ces deux mesures. C'est Internet des objets au travail.

Un programme de domotique qui prend en charge le protocole MQTT peut être ajouté
au système pour fournir "intelligence" et contrôle. L'architecture du système pourrait être
quelque chose comme ci-dessous.

Le programme de domotique est abonné auprès du courtier MQTT pour recevoir toutes
les messages aux sujets de la «température», de la «pression» et de l'«état du climatiseur». Le

Mise en œuvre du protocole MQTT pour un serveur domotique 24


C.S.F.M.I. Khniss PFF2020

climatiseur est abonné auprès du serveur MQTT pour recevoir toutes les messages sur le thème
«climatisation».

Comme auparavant, les capteurs de température et d'humidité publient des données vers
le courtier. Mais maintenant, le programme de domotique qui est abonné pour recevoir cette
information décide si le climatiseur doit être allumé ou éteint en tenant compte des données du
capteur, de l'heure, du délai depuis la dernière fois que l'appareil est allumé ou éteint, la présence
de personnes dans la maison, etc. Il ordonne au climatiseur de se mettre en marche ou de cesser
de fonctionner en publiant un message sur le thème « climatisation ». Le climatiseur publie des
modifications sur son état sous le thème "état du climatiseur". Parce que le programme de
domotique est abonné à ce thème, il sait quand la climatisation a été activée ou désactivée par
un individu.

III. Conclusion

MQTT est donc un protocole léger, facile à appréhender, très souple et sécurisable.

Il est de plus en plus au cœur des projets IoT et supporté par la plupart des services de
Cloud.

MQTT est un protocole dynamique qui continue à évoluer. Par exemple, il intègre
dorénavant les WebSockets qui lui ouvrent une porte sur le monde du Web.

Au sein des équipes de SII, notamment à Grenoble, nous mettons d’ores et déjà en œuvre
ce protocole sur des systèmes éclectiques comme des équipements de gestion de réseau
électrique, des box télécom et domotiques, des puces spécialisées pour l’intelligence artificielle,
ou encore des poubelles connectées.

Mise en œuvre du protocole MQTT pour un serveur domotique 25


C.S.F.M.I. Khniss PFF2020

Chapitre 4 Réalisation pratique du projet

I. Introduction

Dans ce chapitre nous verrons en court terme les principales fonctions rendant notre
maison intelligente via des capteurs, de Protocol communicant à l’internet grâce à la carte mini-
ordinateur

Appelé Raspberry Pi. Cette réalisation se fera par illustration des schémas selon lesquels
apparaitrons les capteurs et les différents logiciels programmables.

II. Préparation de la partie logicielle :

1. Préparation du Raspberry Pi 3B+ :

a. Préparation de la carte SD et Démarrage :

Sous Windows, il faut avoir ces 2 logiciels :

- HP USB Disk Storage Format Tool (pour formater la carte SD)

- Win32DiskImager.exe Pour créer les fichiers nécessaires au boot sur la carte SD.

Quand la carte SD a été formatée, télécharger le fichier compressé de l'image qui vous
intéresse sous :

http://www.Raspberrypi.org/downloads

Il reste alors à décompresser l'image sur notre disque dur.

Ensuite lancez Win32DiskImager.exe

Mise en œuvre du protocole MQTT pour un serveur domotique 26


C.S.F.M.I. Khniss PFF2020

Figure 16 : Montage carte SD

Quand le processus est terminé on retire la carte et on le met sur la Raspberry.

b. Branchement des périphériques avec Raspberry Pi

Figure 17 : branchement de péripherique

Insérer la carte SD dans le connecteur Raspberry Pi dédié

Brancher le câble Ethernet à la box du fournisseur d’accès à internet (FAI)

Brancher le clavier et la souris aux ports USB

Brancher le câble HDMI avec l’écran

Finir par brancher l’alimentation

Raspberry Pi devrait alors démarrer automatiquement

Mise en œuvre du protocole MQTT pour un serveur domotique 27


C.S.F.M.I. Khniss PFF2020

c. Premiers parametrages

Figure 18 : Interface du premier paramétrage

Lors du premier lancement, nous dévons tomber sur l’écran suivant :

info : informations sur cet outil de configuration

• expan_roofts : étendre l’espace disponible à l’utilisation de votre carte SD

• overscan : déplacer ou recentrer l’image par rapport a l’écran

• configure keyboard : changer la langue du clavier

• change_pass: changer le mot de passe de l’utilisateur principal « pi » (par défaut


“Raspberry”)

• change_locale : changer le langage système

• change_timezone : changer le fuseau horaire

• memory_split : modifier les paramètres d’allocation de la mémoire

• overclock : modifier la cadence du processeur pour en améliorer les performances

• ssh : active la connexion SSH (nous en aurons besoin)

Mise en œuvre du protocole MQTT pour un serveur domotique 28


C.S.F.M.I. Khniss PFF2020

• boot_behavior : lors du démarrage, cela fait arriver directement sur l’interface


graphique, et non un invité de commande

• update : pour les mises à jour.

d. Installation de Raspbian

Pour commencer on a téléchargé la dernière version de raspbian puis on a téléchargé le


logiciel Etcher sur Windows qui va nous permettre de flasher l’OS Raspbian dans la carte SD.

On introduit la carte SD dans un PC et lancer Etcher. Sélectionner le fichier img, la carte


SD et appuyer sur « Flash! »

Une fois que c’est fait, installer la carte SD dans le Raspberry Pi et brancher clavier,
souris, HDMI ensuite le cable d’alimentation. Apres on suit les étapes suivants pour configurer
la date et l’heure manuellement sur le terminal.

sudo date -s "Tue May 28 21:31:26 UTC-5 2019"

Change les paramètres pour la date et l’heure actuelle.

Avant de passer à l’étape suivante, il faut impérativement mettre à jour le système et le


redémarrer :

sudo apt-get update

sudo apt-get upgrade

reboot

sudo apt-get update

sudo apt-get upgrade

reboot

e. Configuration de MQTT serveur avec Raspberry Pi :

Nous avons besoin :

Mise en œuvre du protocole MQTT pour un serveur domotique 29


C.S.F.M.I. Khniss PFF2020

Un Raspberry Pi avec une alimentation 5V.

Un clavier et une souris

Un écran avec câble HDMI

Une carte SD (minimum 8Go)

f. Test du serveur

On va installer un client mosquitto. Sur Linux (raspbian ou autre)

sudo apt-get install mosquitto-clients

Maintenant, il faut ouvrir deux terminaux, soit dans le même appareil, soit (idéalement)
dans deux appareils différents connectés au même hotspot. Dans le premier, faites ceci

mosquitto_sub -h 192.168.1.1 -t 'test/topic' -v

et dans l’autre, on va envoyer un message au topic :

mosquitto_pub -h 192.168.1.1 -t 'test/topic' -m 'hello world'

Si tout se passe bien, vous devriez voir apparaitre un message dans le premier terminal.

La dernière étape

C’est de désactiver l’économiseur d’écran et la gestion de l’alimentation de l’écran


(DPMS) afin d’éviter que le système se mets en veille.

Dans le terminal, faites :

sudo nano /etc/X11/xinit/xinitrc

2. Programmation Node-Red

Node-RED est un outil de programmation pour le câblage de périphériques matériels,


d'API et de services en ligne de manière nouvelle et intéressante.

Mise en œuvre du protocole MQTT pour un serveur domotique 30


C.S.F.M.I. Khniss PFF2020

Il fournit un éditeur basé sur un navigateur qui facilite le câblage des flux en utilisant la
vaste gamme de nœuds de la palette qui peut être déployée en un seul clic.

a. Installation

Sur un Raspberry Pi qui tourne sur Raspbian, Node Red est déja installé. Pour le lancé,
il suffit de cliquer sur le menu Programmation puis Node Red.

Node Red peut également être lancé ou stoper à partir d'un terminal :

1. $ node-red-start

Démarrer Node Red

2. $ node-red-stop

Arrêter Node Red

L'accès à l'interface de programmation se fait à partir d'un navigateur. Il est préférable


d'utiliser le navigateur d'un ordinateur connecté sur le même réseau que la Raspberry :

La palette de Nodes d'origine est déjà bien fournie mais il en manque au moins une
essentielle qui va permettre de réaliser l'interface web. Elle se nomme Dashboard. Mais avant,
il faut installer le gestionnaire de Nodes. L'environnement d'exécution est construit sur Node.js,
le gestionnaire de Nodes utilisé par Node Red est donc naturellement npm :

Commande de démarrage automatique

Mise en œuvre du protocole MQTT pour un serveur domotique 31


C.S.F.M.I. Khniss PFF2020

Figure 19 : Interface programmable de node-red

$ node-red-stop

2. $ sudo apt-get update

3. $ sudo apt-get install npm

4. $ cd /home/pi/.node-red

5. $ npm rebuild

6. $ node-red-start

On dispose désormais du gestionnaire de nodes dans le menu :

Mise en œuvre du protocole MQTT pour un serveur domotique 32


C.S.F.M.I. Khniss PFF2020

Figure 20 : gestionnaire de nodes

Cliquez sur Manage Palette puis recherchez la palette de nodes à installer :

Figure 21 : interface recherche dashboard

Mise en œuvre du protocole MQTT pour un serveur domotique 33


C.S.F.M.I. Khniss PFF2020

b. Programme Développé :

Les principaux nœuds utilisés sont :

i. Le nœud injecter :

Il permet d’initier un flux

Par défaut, le nœud est déclenché manuellement en cliquant sur son bouton dans
l'éditeur. Il peut également être configuré pour injecter à intervalles réguliers ou selon un
calendrier.

Il peut également être configuré pour injecter une fois chaque fois que les flux sont
démarrés.

Dans notre cas c’est à intervalles réguliers (1 minute) il injecte l'heure actuelle.

ii. Le noeud fonction:

Il permet d’assurer l’affichage plublier sur dashboard

iii. Le nœud serial :

Il permet de lire les données d’un port serial local dédier.

iv. Le nœud debug :

Il affiche les propriétés de message sélectionnées dans l’ongle de la barre latérale de


débogage et éventuellement le journal d’exécution.

Par défaut, il affiche msg.payload, mais on configurer pour afficher toutes les propriétés,
le message complet ou le résultat d’une expression jsnata.

v. Le nœud gauge :

Il ajoute un widget (une petite application qui fait une chose très simple) de type jauge
à l’interface de l’utilisateur afin d’indiquer le niveau de la température actuelle.

Mise en œuvre du protocole MQTT pour un serveur domotique 34


C.S.F.M.I. Khniss PFF2020

vi. Le nœud chart :

Il permet de tracer les valeurs d’entrer sur un graphique. Il peut être linéaire basé sur le
temps, ou un graphique a barre (vertical ou horizontal) ou encore un graphique à secteurs.

vii. Le nœud switch :

Il permet d’ajouter un commutateur à l’interface pour permettre l’envoie d’une fonction


logique (0 ou 1) pour allumer ou éteindre une lumière.

III. Préparation de la maquette et câblage

Cette maquette a été réalisée en plastique rigide et transparente.

Malgré sa petite taille, elle est se fait démontable au toit pour pouvoir accéder a
l’intérieure et y mettre les composants.

Figure 22 : Image de la maquette

IV. Développement de l’application de commande.

Dans ce chapitre nous avons développés l’application de commande permettant à


l’utilisateur de contrôler son système domotique à distance d’une manière fiable et automatique.

Mise en œuvre du protocole MQTT pour un serveur domotique 35


C.S.F.M.I. Khniss PFF2020

Pour une bonne saisie du programme de l’application, nous avons partagés le travail ;
chaque fonction du système domotique.

1. Fonction d’accès sécurisé à l’habitat.

Cette fonction sera indépendante des autres fonctions qui seront commandées à distance
par l’intermédiaire du Protocol MQTT. L’accès sécurisé à l’habitat est assuré en introduisant la
carte ou le tag correspondant au code dédier du module RFID RC522.

Figure 23 : Câblage RFID

2. Fonction d’éclairage.

La fonction d’éclairage est assurée via le Protocol MQTT qui va être commandée à
travers deux relais branché sur la carte Arduino uno et lié au routeur qui va créer un réseau local
entre le PC (ou Smart phone) et les lampes de l’éclairage.

Mise en œuvre du protocole MQTT pour un serveur domotique 36


C.S.F.M.I. Khniss PFF2020

Figure 24 : Résultat de l'éclairage

Mise en œuvre du protocole MQTT pour un serveur domotique 37


C.S.F.M.I. Khniss PFF2020

3. Fonction de l’acquisition de la température et l’humidité

La fonction de l’acquisition de la température est réalisée via le capteur DHT11 par la


suite les valeurs en degrés seront affichées sur l’afficheur Dashboard de MQTT.

4. Fonction de ventilation

La ventilation de l’intérieur de l’habitat est assurée par l’intermédiaire de Protocol


MQTT ou automatiquement vis-à-vis la variation de la température (déclaration d’un seuil de
température pour lancer la ventilation).

Mise en œuvre du protocole MQTT pour un serveur domotique 38


C.S.F.M.I. Khniss PFF2020

CONCLUSION GENERALE :

Nous avons mis en œuvre un serveur domotique qui contrôle et commande une maison
dite « intelligente ». Effectivement, dans le cadre du thème de la domotique, nous avons conçu
une maison connectée. Elle est capable de gérer l'éclairage, la porte, surveillé l'état de la
température et l'humidité. Cependant, les fonctionnalités ne se restreignent pas à celles-ci ;
d'autres peuvent être ajoutées. Nous sommes unanimes pour dire que ce projet nous a permis
de nous enrichir nos connaissances grâce à la manipulation du matériel, tout en acquérant de
meilleures connaissances des applications de la domotique, ce qui pourrait nous être fortement
utile pour notre vie professionnelle future.

Bien sûr tout ce travail s’est déroulé dans les meilleures conditions possible, en effet
une bonne cohésion et une bonne entente ont permis l’obtention d’un travail abouti et
satisfaisant. Ce projet nous a fait découvrir beaucoup des idées que nous ne connaissions pas
vraiment et qui nous a intéressés de plus en plus et au fur et à mesure que nous approfondissions
nos recherches.

Le seul point « négatif », serait sûrement le manque de temps pour pouvoir encore
approfondir ce travail, car ce dernier ne s'arrête pas ici ; il a encore plusieurs tâches qui peuvent
être amélioré.

En effet, beaucoup de possibilités s’offrent aux passionnés de domotique, tant sur le


matériel disponible que sur les actions à réaliser. Cependant rien ne nous empêche de continuer
sur cette voie de notre propre côté …

Ce projet a été vivant, entraînant et motivant pour la suite de nos études. Nous pensons
avoir entraperçu une partie de notre future vie active.

Mise en œuvre du protocole MQTT pour un serveur domotique 39


C.S.F.M.I. Khniss PFF2020

BIBLIOGRAPHIE

 https://www.arduino.cc/
 https://www.raspberrypi.org/
 https://nodered.org/
 https://www.carnetdumaker.net/articles/utiliser-un-capteur-de-temperature-et-dhumidite-
dht11-dht22-avec-une-carte-arduino-genuino/
 http://idehack.com/blog/utiliser-un-module-rfid-rc522-avec-larduino/
 https://fr.wikipedia.org/wiki/Internet_des_objets
 https://www.futura-sciences.com/tech/definitions/internet-internet-objets-15158/
 https://fr.wikipedia.org/wiki/ESP8266
 http://idehack.com/blog/programmer-lesp8266-esp-01-avec-le-logiciel-arduino/
 https://fr.wikipedia.org/wiki/MQTT

Mise en œuvre du protocole MQTT pour un serveur domotique 40


C.S.F.M.I. Khniss PFF2020

ANNEXES

1. Annexe 1 : Quelques codes d’instruction

#include <SPI.h>
#include <RFID.h>
#include <Servo.h>
#include "DHT.h"
#include <WiFiEspClient.h>
#include <WiFiEsp.h>
#include <WiFiEspUdp.h>
#include <PubSubClient.h>
#include "SoftwareSerial.h"
#define WIFI_AP "data"
#define WIFI_PASSWORD "fevrier2020"
#define TOKEN "ARDUINO_DEMO_TOKEN"
// DHT
#define DHTPIN 4
#define DHTTYPE DHT11
RFID RFID(10, 9);
int UID[5] = {};
int MASTERKEY[5] = {41, 215, 98, 90, 198}; // UID du badge ou de la carte acceptée sous
forme de tableau (Array).
Servo monServo;
bool statut = 1;
char thingsboardServer[] = "192.168.1.111";
// Initialize the Ethernet client object
WiFiEspClient espClient;
// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);
PubSubClient client(espClient);
SoftwareSerial soft(2, 3); // RX, TX
int status = WL_IDLE_STATUS;
unsigned long lastSend;
void setup() {
// initialize serial for debugging
Serial.begin(9600);
dht.begin();
SPI.begin();
RFID.init();
monServo.attach(5); // Servo connecté à la pin 9.
monServo.write(180); // On ouvre le portail fermé.
delay(100);
monServo.detach();
InitWiFi();
client.setServer( thingsboardServer, 1883 );
lastSend = 0;}
void loop() {
status = WiFi.status();
if ( status != WL_CONNECTED) {
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to WPA SSID: ");
Serial.println(WIFI_AP);
// Connect to WPA/WPA2 network

Mise en œuvre du protocole MQTT pour un serveur domotique 41


C.S.F.M.I. Khniss PFF2020

status = WiFi.begin(WIFI_AP, WIFI_PASSWORD);


delay(500); }
Serial.println("Connected to AP");}
if ( !client.connected() ) {
reconnect(); }
if ( millis() - lastSend > 1000 ) { // Update and send only after 1 seconds
getAndSendTemperatureAndHumidityData();
getAndSendRFIDData();
lastSend = millis(); }
client.loop();}
//humidité et temperature
void getAndSendTemperatureAndHumidityData(){
Serial.println("Collecting temperature data.");
// Reading temperature or humidity takes about 250 milliseconds!
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
String temperature = String(t);
String humidity = String(h);
//Just debug messages
Serial.print( "Sending temperature and humidity : [" );
Serial.print( temperature ); Serial.print( "," );

Mise en œuvre du protocole MQTT pour un serveur domotique 42


C.S.F.M.I. Khniss PFF2020

2. Annexe 2 : Pinout entres/sorties Arduino

Mise en œuvre du protocole MQTT pour un serveur domotique 43


C.S.F.M.I. Khniss PFF2020

3. Annexe 3 :Module Wifi ESP01 (ESP8266)

Mise en œuvre du protocole MQTT pour un serveur domotique 44


C.S.F.M.I. Khniss PFF2020

4. Annexe 4 : Pinout sensors shield v5.0

Mise en œuvre du protocole MQTT pour un serveur domotique 45


C.S.F.M.I. Khniss PFF2020

5. Annexe 5 : Accueil raspberry pi

Mise en œuvre du protocole MQTT pour un serveur domotique 46


C.S.F.M.I. Khniss PFF2020

6. Annexe 6 : Câblage final

Mise en œuvre du protocole MQTT pour un serveur domotique 47

Vous aimerez peut-être aussi