Système Domotique : Étude et Réalisation
Système Domotique : Étude et Réalisation
*******
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA
RECHERCHE SCIENTIFIQUE
*******
UNIVERSITÉ CATHOLIQUE DE L’AFRIQUE
DE L’OUEST
*******
ÉCOLE DE GÉNIE ÉLECTRIQUE ET
INFORMATIQUE
*******
MÉMOIRE DE FIN DE FORMATION POUR
L’OBTENTION DU DIPLÔME DE LICENCE
PROFESSIONNELLE
*******
THÈME
Sous la supervision de :
1
Année académique : 2023 –
2024
ENGAGEMENT
2
DÉDICACE 1
Nous dédions cette œuvre à l’Eternel Dieu des Armées, pour nous avoir
maintenu en vie malgré toutes les péripéties, les défis auxquels j’ai été
confrontés ; malgré les adversités, nous avons fait avec son aide et sa
force, lutté pour vivre et aujourd’hui, nous puissions avoir une raison de lui
dire merci car, dans tout ceci, il est et demeure mon MEILLEUR. « Il a écrit
tout droit sur ma vie courbe ».
REMERCIEMENTS
3
TABLE DES FIGURES
Figure1-Organigramme de l’ON
ADESTI……………………………………………………….
Figure :2-2-Serrure
électronique…………………………………………………………………
Figure :2-8-Lampe
LED…………………………………………………………………………….
Figure :2-11-Capteur de
flamme………………………………………………………………
4
Figure :2-12-Capteur de mouvement
PIR…………………………………………………….
Figure :2-14-
ventilateur……………………………………………………………………
………
Figure :2-15-Diode
laser……………………………………………………………………………
Figure :2-16-Photorésistance………………….
Figure :2-17-
Photorésistance………………………………………………………………
…….
5
Figure :3-5-Organigramme du système de détection de fumé et
de gaz……………
DC : Direct Current
6
LDR : Light-Dependent Resistor
SOMMAIRE
Chapitre 1
7
Chapitre 2
2-1-Synthèse du projet
2-2-INTRODUCTION SUR NOTRE SYSTEME DOMOTIQUE
2-2-1-La définition du terme domotique
2-2-2- Domaines de la domotique
2-2-3- Les différents fonctionnalités de la domotique
2-2-3-1-Fonction de commandes des appareils de la maison par
commande Bluetooth
2-2-3-2-Fonction de gestion d’éclairage
2-2-3-3-Fonction d’acquisition de la température pour un
système de refroidissement automatique
2-2-3-4-Fonction de contrôle d’accès
2-2-3-5-Fonctions de détection de fuite de gaz ou de fumée et
d’incendie
2-2-3-6-Fonction de sécurité
2-2-4- Les architectures des systèmes embarqués
2-2-5-Etude théorique du système
2-2-5-1-Problématique de thème
2-2-5-2- Etude théorique du système
2-2-5-2-1- Cahier de charge
2-2-5-2-2- Schéma synoptique de la maison intelligente :
connectée et sécurisée
2-2-6-Objectif, fonctionnement, avantages et inconvénients de
notre système
2-2-6-1-Objectifs de notre système
2-2-6-2-Fonctionnement du système
2-2-6-3- Avantages de notre système
2-2-6-3- Inconvénients de notre système
2-2-7-Étude détaillée des différents blocs du système
2-2-7-Étude détaillée des différents blocs du système
2-2-7-1-Système de déverrouillage par code pin de la porte du
salon
2-2-7-1-1- Description du système
2-2-7-1-2- Composants principales et caractéristiques
2-2-7-1-2-1- Serrure Electronique
2-2-7-1-2-3- Ecran LCD 16x02 avec I2C
2-2-7-1-2-4- Porte d’entrée de disque sur dvd
2-2-7-2-Système de commande des lampes et des portes de la
maison par application Bluetooth
2-2-7-2-1- Description du système
2-2-7-2-2- Composants principales et leurs caractéristiques
8
2-2-7-2-2-1- Module Bluetooth HC-05
2-2-7-2-2-2- Module de relais
2-2-7-2-2-3-Lampes LED
2-2-7-2-2-4-Driver de moteur L298N
2-2-7-2-2-5-Application Mobile Bluetooth interconnecté avec le
module HC-05
2-2-7-3-Système de détection de fumé et de gaz
2-2-7-3-1-Description du système
2-2-7-3-2- Composants principales et leurs caractéristiques
Capteur de gaz MQ2
2-2-7-4-Système de détection de flamme
2-2-7-4-1- Description du système
2-2-7-4-2-Composants principales et leurs caractéristiques
Capteur de flamme KY-026
2-2-7-5-Système d’éclairage avec un capteur de mouvement
2-2-7-5-1-Description du système
2-2-7-5-2-Composants principales et leurs caractéristiques
Capteur de mouvement PIR
2-2-7-6-Système de refroidisseur automatique
2-2-7-6-1-Description du système
2-2-7-6-2-Composants principales et leurs caractéristiques
2-2-7-6-2-1-Capteur de température et d’humidité
2-2-7-6-2-2-Un ventilateur de 5V
2-2-7-7-Système de sécurité laser
2-2-7-7-1-Description du système
2-2-7-7-2- Composants principales et leurs caractéristiques
2-2-7-7-2-1-Capteur de présence laser
2-2-7-7-2-2-Photorésistance
2-2-7-8-Système d’éclairage automatique des lampes
2-2-7-8-1- Description du système
2-2-7-8-2- Composants principales et leurs caractéristiques
Photorésistance
2-2-8- Bloc d’entrée ou de sortie des différents systèmes non
exposés dans leur fonction dans le sous chapitre précèdent
2-2-8-1-Système de déverrouillage par code pin de la porte du
salon
2-2-8-2-Système de détection de gaz, de fumée et de feu
2-2-8-3-Système d’éclairage avec capteur de mouvement PIR
2-2-8-4-Système de sécurité par diode laser
2-2-8-5-Système d’éclairage automatique
2-2-8-6-Système de refroidissement automatique
2-2-8-7- La prise électrique et les batteries de 9v
9
2-2-9-Bloc de Commande
2-2-9-1-ARDUINO
2-2-9-1-1-INTRODUCTION sur l’ARDUINO :
2-2-9-1-2-LE LOGICIEL ARDUINO
2-2-9-1-3-L’ARDUINO UNO
2-2-9-1-4-Les caractéristique et l’architecture d’ARDUINO UNO
Chapitre 3
10
3-1-8-2- Code de programmation
3-1-Schéma de câblage du système générale
3-2-Organigramme du système général
3-3-Code de programmation du système général
3-4-Apercue de la maquette de notre système
Conclusion
Etude et coût de réalisation
Chapitre
1
Structure 11
d’ADESTI
PRESENTATION DU LIEU DE
STAGE
Dans la perspective d’allier nos connaissances théoriques à la
pratique, nous avons eu à effectuer un stage pratique de trois
(03) mois. Ce chapitre constitue la première partie de notre
sujet. Il présente la structure d’accueil et le déroulement du
stage.
[Link]-Historique
L’Association pour le Développement des Sciences et des
Techniques Industrielles (ADESTI) est une organisation non-
gouvernementale d’obédience industrielle et informatique qui a
vu le jour en 2008 et dont le siège social se situe à Cotonou au
quartier Gbèdegbé, carré 1619, parcelle J. Elle a été fondée par
un groupe d’ingénieurs et techniciens béninois et se revendique
tout, être un cadre privilégié de réflexion, de concentration et
d’actions au service du développement du Bénin. Elle est donc
la résultante de la volonté d’un ensemble d’individus décidés à
mettre en commun leurs connaissances et des ressources en
vue d’apporter des solutions aux problèmes que rencontre le
Bénin dans le domaine scientifique. Toutefois, il est logique de
remarquer qu’ADESTI est une association à but non-lucratif
régie par la loi du 1er juillet 1901.
[Link]-Activités d’ADESTI
12
ADESTI est une organisation non-gouvernementale ayant pour
principale activité la formation des étudiant(s)(es) de niveau
supérieur du premier au troisième cycle. Elle forme dans les
domaines ci-après :
— Initiations aux Automates Programmables Industriels (API) ;
— Initiations aux microcontrôleurs et cartes de microcontrôleurs
;
— Conception des systèmes automatiques ;
— Electronique ;
— Electricité générale ;
— Energies renouvelables.
1.1.2-Objectifs
ADESTI s’est fixée pour objectif principal de contribuer au
développement des sciences et techniques industrielles (STI) à
travers les objectifs spécifiques suivants :
• Le perfectionnement de ses membres et de tout le personnel
exerçant dans ce domaine ;
• L’échange au travers des informations et connaissances sur
les évolutions des techniques et méthodes ;
• La publication d’articles et divers travaux de recherches ;
• L’incitation des jeunes élèves et étudiants aux sciences et
techniques industrielles ;
• Le soutien aux organisations privées, publiques ou
parapubliques ayant la même vision que l’association ;
• La participation à la définition et à la conception des normes.
1.1.3-Mission
La principale mission d’ADESTI est de contribuer au
développement des sciences et techniques industrielles
pouvant offrir aux jeunes la possibilité de développer leurs
connaissances, grâce aux divers projets de recherches qui
seront initiés dans les domaines d’activités d’ADESTI. Par
ailleurs, elle se donne comme mission de former tout jeune
désireux de faire carrière dans le secteur industriel, afin de leur
permettre d’évoluer avec la technologie.
1.1.4-Structure organisationnelle
L’association est composée des membres actifs, des membres
associés ou honoraires. Les membres actifs participent
régulièrement aux activités de l’association et sont tenus de
s’acquitter de leurs obligations. Les associés ou honoraires sont
13
des personnes physiques ou morales admises par le Conseil
d’Administration pour leurs contributions dans les domaines
d’intérêts de l’association. Les organes de l’association sont :
l’assemblée générale, le conseil d’administration et quatre
sections techniques.
[Link]-Assemblée Générale
L’Assemblée Générale est l’organe suprême. Elle est composée
de tous les membres qui se réunissent une fois par an. Elle a à
sa tête un bureau qui s’occupe de la vérification des comptes,
approuve les rapports d’activités, les comptes d’exercices, vote
le budget d’exercices, procède, s’il y a lieu, au renouvellement
des membres du conseil d’administration. L’Assemblée confère
au Conseil d’Administration ou à des membres de son bureau
certaines autorisations pour accomplir certaines opérations
rentrant dans les objectifs de l’association. En outre, elle
délibère sur toutes les questions portées à l’ordre du jour, à la
demande signée du quart des membres de l’association.
[Link]-Conseil d’Administration
Le Conseil d’Administration est composé de neuf membres élus
au scrutin secret pour deux années par l’Assemblée Générale et
choisit parmi les membres actifs résidants au Bénin et jouissant
de leurs droits civiques. Ce sont :
• Un président chargé de convoquer les Assemblées Générales
et les réunions du Conseil d’Administration. Il représente
l’association dans tous les actes de la vie civile et est de tout
pouvoir à cet effet ;
• Un vice-président chargé de suppléer au président, de l’aider
dans l’accomplissement de ses tâches. Il coordonne les activités
des commissions techniques. Il est responsable de la formation
au sein de l’association ;
• Un secrétaire général chargé de l’administration, de la tenue
de la correspondance et des archives de l’association ;
• Un secrétaire général adjoint chargé d’aider le secrétaire
général dans l’exercice de ses fonctions. Il le remplace en cas
d’indisponibilité ;
• Un secrétaire général chargé des informations et des relations
publiques ;
• Un secrétaire chargé de l’organisation matérielle de toutes les
manifestations de l’association, de l’organisation interne de
14
l’information et de la diffusion de publication scientifique et
technique, des relations extérieures à l’association ;
• Un secrétaire aux affaires juridiques, professionnelles et
sociales : il conseille sur le caractère juridique des problèmes de
l’association. Il s’informe sur les problèmes professionnels et
sociaux afin de participer à leurs résolutions ;
• Un trésorier général chargé de la gestion du patrimoine de
l’association. Il effectue tous les payements et perçoit toutes les
recettes. Tout décaissement est subordonné à la signature
conjointe du président et du trésorier général.
1.1.5-Organigramme
15
Figure 1 : Organigramme d’ADESTI
[Link]-Difficultés rencontrées
1.2.2-Connaissances acquises
Les différentes activités menées au cours de notre stage nous
ont permis d’acquérir de nouvelles connaissances comme la
mise en fonctionnement de plusieurs systèmes domotique
simultanément
16
1.2.3-Observation du stage
Notre stage à ADESTI fut un véritable moment de partage et
d’apprentissage dans le domaine de l’électronique et de
l’informatique, tant sur le plan pratique que théorique. Nous
avons pu constater, durant notre passage, l’effort à fournir et la
patience qu’un technicien doit avoir pour pouvoir concevoir,
détecter des pannes et résoudre les problèmes y afférents.
Nous avons également compris la portée de l’esprit de groupe,
car il est d’une importance capitale dans la résolution de
certains problèmes. Soulignons aussi l’expertise et la
qualification des encadreurs de par leur rigueur au travail.
Conclusion partielle Ce stage a été très instructif pour nous tant
sur le plan professionnel que personnel. Il nous a permis en
autre, d’acquérir de nouvelles connaissances pratiques, de
découvrir l’ambiance professionnelle et d’avoir une certaine
organisation dans le travail.
Cependant, nous avons eu quelques difficultés que nous avons
réussi à surmonter grâce à l’apport de nos encadreurs .
17
Chapitre
2
Etude théorique du
système
Dans ce chapitre de notre mémoire nous
allons aborder l’étude théorique de notre système et des sous-
systèmes qui forment notre système domotique
2-1-Synthèse du projet
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 de
leur temps à domicile, d’où l’influence considérable de l’habitat
sur la qualité de vie. L’amélioration du sentiment de sécurité et
de confort dans l’habitat apparaît donc comme une tâche d’une
grande importance sociale.
La domotique regroupe les technologies de l’électronique, de
l'automatique, de l’informatique et des télécommunications
18
permettant d’améliorer le confort, la sécurité, la communication
et la gestion d’énergie d’une maison, d’un lieu public,
Elle permet ainsi de maintenir la qualité déviée à domicile.
Parmi les exemples, on peut citer les alarmes et détecteurs, les
commandes à distance, les automatismes d’éclairage ou
d’ouverture/fermeture de portes et volets ou encore les signaux
sonores.
2-2-Introduction
générale
Dans le cadre du projet du second semestre de 3éme année
nous avions le choix entre plusieurs sujets. Beaucoup des sujets
présentés nous intéressaient notamment la multitude de jeux à
mettre en œuvre. Mais en choisissant la domotique nous avons
voulu nous démarquer et changer de registre. En effet nous ne
connaissions que très peu se chose sur ce vaste domaine qu’est
la domotique ainsi notre curiosité l'emporta et nous voulions en
apprendre un peu plus, notamment comment la mettre en
place. Le but du projet est donc de créer un outil permettant de
contrôler divers équipements de la maison à distance. Pour
réaliser cela, nous devons utiliser une carte ARDUINO, c'est une
carte électronique qui peut être programmée avec un langage
spécifique. Ce projet mêle donc électronique et programmation,
l'objectif final étant de faciliter la vie des usagers.
La programmation du chauffage selon les heures et les pièces,
la mise en route de l’éclairage, le départ d’une machine est
autant de services pris en charge par la domotique.
19
Pleines de promesses quant aux économies d’énergies, a la
gestion intelligente des automatismes du bâtiments ou dans
l’aide des personnes en porte d’autonomie, la domotique peut
aussi être source d’interrogation pour les électriciens.
La domotique fait référence à l’ensemble des technologies
utilisées au seins de l’habitat. Certains individus sont déjà
familiarisés avec certains ces pratiques vues leur utilisations
dans leur quotidien comme allumer des lampes à distance,
l’éclairage crépusculaire et l’allumage des appareils à distance.
Mais il ne s’agit-là que d’un petit aperçu des nombreuses
possibilités qu’offre la domotique.
Aujourd’hui grâce aux progrès réalisés dans le domaine de
l’électronique la domotique offres d’immenses possibilités
20
*Faciliter les économies d’énergie grâce a la réactivité
maitrisée d’une maison intelligente ;
2-2-3-6-Fonction de sécurité
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, etc., des poignées biométriques,
l’automatisme des volets… sont installés sur les ouvertures et
préviennent de toute intrusion, car l’ensemble est couplé à des
alarmes silencieuses sans fil ou des sirènes. Pour l’intérieur des
pièces, des micros ultrasensibles, 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.
22
embarqué est dédié. Voici des exemples de systèmes
embarqués :
*les ordinateurs de bord d’une automobile, d'un avion, d'une
navette spatiale.
*les radars, les sonars, les satellites.
*les téléphones portables, les routeurs, les assistants
personnels, les lecteurs mp3.
*les robots, les automates programmables, les contrôleurs
d'usine, de périphériques industriels.
*les appareils d'imagerie et d'électrophysiologie médicale.
*les systèmes d'alarmes, les contrôleurs de climatisation,
d'ascenseurs, d'accès.
*les guichets automatiques, les télévisions, les photocopieurs….
Un système embarqué est défini comme un
système électroniqueet informatiqueautonome,souvent temps r
éel, spécialisé dans une tâche bien précise. Le terme désigne
aussi bien l’informatique que le logiciel utilisé. Ses ressources
sont généralement limitées. Cette limitation est généralement
d'ordre spatial (encombrement réduit) et énergétique
(consommation restreinte). Pour modéliser nos objets
connectés, une carte électronique où des capteurs de toutes
sortes peuvent être branchés est nécessaire. Les cartes
électroniques à bas prix présentes sur le marché sont les cartes
ARDUINO, la BAGLEBONE et la RASPBERRY PI. Dans notre cas
nous avons eu recours à l’utilisation d’une carte ARDUINO.
23
chapitre nous allons présenter la problématique de notre thème
puis une étude détaillée du système que nous avons réalisé.
2-2-5-1-Problématique de thème
La maison est un lieu particulièrement important et symbolique
pour toute personne. Il est bon de prendre soins de cet espace
mais il est encore mieux de faciliter le quotidien de vie dans ce
dernier et d’y vivre en pleine sécurité. Quels sont les moyens
auxquels l’Homme pourrais recourir afin d’assurer la sécurité et
le confort dans les maisons ? C’est ce problème que résous la
domotique et nous avons donc décider de concevoir une
maison intelligente connectée et sécurisée qui garantit un
environnement de vie plus sûr, confortable, économe en
énergie, pratique et durable malgré leur coût élevé.
24
une fuite de gaz ou une fumée de feu en déclenchant une
alarme et un ventilateur qui va éliminer la fumée ou le gaz.
Sécurité de la maison : Nous allons équiper la maison
d’un système d’alarme pour protéger contre les intrusions et les
incendies grâce à des capteurs de flamme et de mouvement
laser.
Éclairage intelligent : Nous allons équiper la maison d’un
système d’éclairage intelligent qui va automatiser l’éclairage de
la devanture et la cours.
Verrouillage de porte par système de code pin :
Nous allons contrôler l’accès de la porte principale de dans la
maison avec un système de déverrouillage code PIN
Système de refroidissement automatique du
salon de la maison : Nous allons contrôler la température
ambiante du salon grâce à un système de refroidissement
automatique qui va déclencher la mise en marche d’un
ventilateur en fonction de la température lue par un capteur de
température
25
2-2-5-2-2- Schéma synoptique de la maison
intelligente : connectée et sécurisée
Nous exposons le schéma synoptique de la maison intelligente
connectée et sécurisée
26
2-2-6-Objectif, fonctionnement,
avantages et inconvénients de notre
système
2-2-6-1-Objectifs de notre système
• Objectif général
Nous voulons réaliser un système de maison intelligente qui
améliore le confort et la sécurité des maisons tout en réduisant
la consommation d’énergie.
• Objectifs spécifiques
— Concevoir un système de maison intelligente interconnectée
avec une application mobile Bluetooth pour la commande a
distance ;
— Réaliser un ensemble de système de sécurité avec les sous-
systèmes tels que le système de détection de fumé, de fuite de
gaz et de flamme, le système de détection de présence par
laser et le système de déverrouillage par code PIN pour assurer
la sécurité des résidents et des biens ;
— Développer une application mobile comme interface entre
l’utilisateur et tout le système.
2-2-6-2-Fonctionnement du système
Le principe de fonctionnement de notre maison intelligente
connectée et sécurisée est basé sur l’utilisation de divers
équipements et dispositifs connectés en réseau, que nous
pouvons contrôler et surveillés à distance à l’aide d’un
smartphone, d’une tablette ou d’un ordinateur. Notre système
va inclure l’utilisation de plusieurs capteurs tels que des
capteurs de proximité pour la détection d’intrus, des capteurs
de fumée pour la détection de gaz et fumées, un système
27
d’alarme pour la protection contre les intrusions, un éclairage
intelligent, un microcontrôleur ARDUINO UNO, un module
Bluetooth HC-05 pour la commande à distance des lampes et
des portes et une intégration facile avec d’autres systèmes de
domotique et de sécurité existants.
28
La sécurité est vitale dans le monde en évolution rapide dans
lequel nous vivons aujourd’hui. Il n’y a jamais eu de moment
plus important pour sécuriser nos résidences et nos espaces
privés. C’est pourquoi un système de verrouillage de porte par
mot de passe basé sur Arduino et un clavier est utile. Nous
approfondirons ce concept créatif dans cet article de blog, qui
propose un moyen économique et pratique d’améliorer la
sécurité. Nous pouvons créer un système de verrouillage de
porte fiable et adaptable qui nécessite un mot de passe fort
pour s'ouvrir en combinant un Arduino, un clavier, un écran LCD
pour la lecture de l’information, un relais 5V et une serrure
électronique. Examinons les pièces nécessaires et comment
fabriquer cette serrure de porte à clavier.
Au lieu d'une clé, ce type de système de verrouillage nécessite
un code numérique pour autoriser l'entrée Le code est saisi par
les utilisateurs via un pavé numérique ou un écran tactile,
certains verrous de clavier ont une fonction de sécurité intégrée
qui maintient la porte verrouillée pendant une durée
déterminée après plusieurs tentatives incorrectes de saisie du
code.
29
armoires de distribution d'électricité, les coffres-forts, Armoires
de rangement, etc.
- C'est avec une structure simple, facile à installer, facile à
utiliser.
- Fabriqué en alliage d'aluminium. Il est résistant à la rouille,
robuste et durable, peut facilement et en toute sécurité
protéger vos objets précieux.
- Avec un faible coût d'utilisation. Ce verrou électrique utilise
une puissance instantanée, vous permet d'économiser de
l'énergie.
- Il est de petite taille et léger, prend juste un petit espace.
- Voltage : 12v DC
- Courant : 0.6A
- Consommation électrique : 7.5w
- Temps de déverrouillage : 1s
- Puissance continue : <10s
- Forme motorisée : interruption
-
- Matériau : alliage d'aluminium
- Taille : 6.6 x 4.2 x 2.7cm
- Poids : 153g
30
-Puissance maximale du circuit : 35 V CC, 100 mA.
- Résistance d'isolement : 100 M Ohm, 100 V.
-Tenue diélectrique : 250VRms, 50 - 60Hz, 1 min.
-Rebond de contact : inférieur ou égal à 5 ms.
-Espérance de vie : 1 million de fermetures.
-Température de fonctionnement : -20 à +40°C.
-Humidité de fonctionnement : 40°C, 90% ~ 95%.
-Type de connecteur : 8 broches.
-Type de montage : adhésif.
- Longueur de câble (connecteur inclus) : 88 mm.
-Taille : 77 * 69 mm
31
Arduino, Raspberry Pi, ESP32, ESP8266, etc.
Il y a 4 fils pour contrôler l'écran : GND, VCC, SDA, SCL.
32
Figure2-5 : Port d’entré de disque sur dvd
33
informations entre elles via l'Arduino donc qui va nous
permettre de commander des appareils et des portes. Dans
notre cas nous allons commander les lampes et des portes de la
maison grâce à une application Bluetooth.
34
Le module Bluetooth HC-05 présente 6 broches pour permettre
d'établir la connexion.
VCC broche d'alimentation. Directement connecté à la broche
5V de l'Arduino.
Masse GND. Directement connecté à la broche GND de l'Arduino
RX broche de réception. Directement connecté à la broche de
transmission (TX) de l'Arduino
TX broche de transmission. Directement connecté à la broche
de réception (RX) de l'Arduino
State retourne 1 lorsque le module est connecté
Key ou EN doit être alimentée pour entrer dans le mode de
configuration et ne doit pas être connecté pour être en mode
communication
35
(Raspberry Pi, Arduino, 8051, AVR, PIC, DSP , ARM, MSP430,
logique TTL)
• Tous les contacts sont accessibles par des bornes à vis
• LED d'indication de l'état du relais
2-2-7-2-2-3-Lampes LED
Nous allons utiliser des lampes LED comme sortie dans les
différentes pièces pour la commande a distance.
36
d'autres fonctionnalités pour les moteurs pas à pas, ce qui le
rend très populaire dans les domaines de la robotique, de
l'automatisation et de l'électronique. Nous allons l’utiliser pour
piloter un moteur lorsqu’on commandera a distance la porte du
garage
37
2-2-7-3-Système de détection de fumé et de gaz
2-2-7-3-1-Description du système
38
• Stable et longue durée de vie
• Réponse rapide et haute sensibilité
• Sorties analogiques et numériques
• Configuration du niveau de déclenchement Spécifications du
potentiomètre
• Modèle : FC-22-A
• Tension de fonctionnement : DC 5V
• Sortie analogique (AO) : tension de sortie analogique 0 ~ 5 V
• Sortie numérique (DO) : sortie 0V ou 5V
• Configuration : par potentiomètre (ajuste la transition du
niveau de sortie)
• Durée de préchauffage : brochage de 20 s 1. VCC (+ 5 V) 2.
GND (0 V) 3. DO (sortie numérique) 4. AO (sortie analogique)
39
présentes et les autorités compétentes. Les systèmes de
détection des incendies sont généralement utilisés dans les
bâtiments et les installations pour protéger les personnes et les
biens contre les incendies. On va donc réaliser un système de
détection incendie avec Arduino. Il utilise principalement un
capteur de flamme KY-026, buzzer et une LED.
Fonctionnalités :
Bosquet d'interface
Photo haute sensibilité
Temps de réponse rapide
Facile à utiliser
La sensibilité est réglable
Caractéristiques :
VCC : Entrée de tension positive : 5v pour analogique 3.3v pour
numérique.
A0 : Sortie analogique
D0 : Sortie numérique
Terre : sol
Température de service : -40 °C à +85 °C
Humidité de service : 30 à 90 % HR
Dimensions : 42 x 16 x 15 mm
Sortie analogique (A0) : Signal de tension de sortie en temps
réel sur la résistance thermique.
40
Sortie numérique (D0) : Lorsque la température atteint un
certain seuil, le seuil de signal de sortie haut et bas réglable via
un potentiomètre.
Poids : 4g
2-2-7-5-1-Description du système
41
Il s'agit d'un module hautement intégré couramment utilisé
pour la détection d'entrée, qu'il peut adopter facilement et
facilement dans le système. Il y a deux potentiomètres
réglables sur le module, vous pouvez les utiliser pour changer la
sensibilité de déclenchement et la durée du signal de
déclenchement. Résistants, bon marché et ultra-compacts, ces
petits capteurs sont fréquemment utilisés aussi bien dans la
conception de petits objets électroniques ou de gadgets basés
sur la détection de mouvement, que pour un prototype.
Caractéristiques :
• Plage de tension de fonctionnement : 4,5-20 V CC
• Courant de repos : <50 uA
• Sortie de niveau : élevée 3,3 V / faible 0 V
• Déclencheur : L ne peut pas être répété déclencheur / H peut
être répété déclencheur (déclencheur répété par défaut)
• Temps de retard : 5-200S (réglable) la plage est ([Link] seconde
à dizaines de seconde)
• Temps de blocage : 1S (par défaut) Peut être fait une plage
([Link] à des dizaines de secondes
• Dimensions à la carte : 32 mm * 24 mm
• Capteur d'angle : angle de cône < 100 °
• Température de fonctionnement : -15 + 70
• Capteur de taille d'objectif : Diamètre : 23 mm (par défaut)
42
2-2-7-6-Système de refroidisseur automatique
2-2-7-6-1-Description du système
43
2-2-7-6-2-1-Capteur de température et
d’humidité
Caractéristiques :
Alimentation : 5V
Consommation : 0.5 mA en nominal / 2.5 mA maximum
Etendue de mesure température : 0°C à 50°C ± 2°C
Etendue de mesure humidité : 20-90%RH ±5%RH
Taille :15 mm x 12 mm x 5,5 mm et Poids : 3 g
44
2-2-7-6-2-2-Un ventilateur de 5V
Un ventilateur de 5V est un dispositif de refroidissement
électrique qui fonctionne à une tension de 5 volts. Il est souvent
utilisé dans les projets électroniques pour refroidir des appareils
ou des systèmes qui produisent de la chaleur.
Figure2-14 : Ventilateur
2-2-7-7-1-Description du système
45
Le capteur projette un rayon laser sur un objet. La réflexion du
rayon laser sur l'objet atteint le récepteur du capteur sous un
angle certain en fonction de la distance entre l'objet et le
capteur.
Caractéristiques :
Tension de fonctionnement 5V
Longueur d'onde de sortie 650 nm
Module 3 broches
Avec trou de boulon fixe pour une installation facile
Poids : 2,1 g
Dimensions : 1,8cm/1,4cm
2-2-7-7-2-2-Photorésistance
46
pattes qui peuvent être connectées à un circuit électrique. Elle
peut être utilisée comme un capteur de lumière ou comme un
interrupteur contrôlé par la lumière.
Caractéristiques :
Type de capteur : résistif
Plage de mesure : de quelques lux à plusieurs milliers de lux
Précision : variable selon le modèle et les conditions d'utilisation
Conversion : linéaire ou non linéaire selon le modèle
Tension d'alimentation : aucune (composant passif)
Courant d'alimentation : dépend du circuit auquel il est
connecté
Temps de réponse : de quelques millisecondes à quelques
secondes
Température de fonctionnement : de -40 °C à +70 °C
Boîtier : cylindrique ou plat
Figure2-16 : Photorésistance
47
2-2-7-8-1- Description du système
Photorésistance
Figure2-17 : Photorésistance
48
2-2-8- Bloc d’entrée ou de sortie des
différents systèmes non exposés dans
leur fonction dans le sous chapitre
précèdent
2-2-8-1-Système de déverrouillage par code pin
de la porte du salon
-Un buzzer qui va sonner à chaque réponse du système
lorsqu’on entre un code pin ;
-une LED rouge qui va s’allumer lorsque le système ne
reconnait le code pin ;
-une LED rouge qui va s’allumer lorsque le système reconnait le
code pin ;
49
une LED rouge qui s’allume lorsque le ventilateur est en marche
2-2-9-Bloc de Commande
Le système de notre bloc de commande est constitué de
microcontrôleur Arduino qui reçoit des données des capteurs et
transforment en commande et les envoie au bloc des sorties
2-2-9-1-ARDUINO
50
Figure2-18 : Différents types de carte Arduino
51
La fonction Loop () décrit ensuite ce qui sera répété
indéfiniment : mettre PB5 à 1 pendant 200ms puis mettre PB5 à
0 pendant 1s, et ainsi de suite. Voici une explication détaillée
de ses fonctionnalités et de son utilisation :
Écriture de Code : L'IDE offre un éditeur de texte pour
écrire le code. Il supporte les langages de
programmation C et C++ et inclut des fonctions et des
commandes intégrées qui aident à la rédaction et au
débogage du code.
Compilation : Après l'écriture du code, l'IDE compile le
code pour s'assurer qu'il est exempt d'erreurs et prêt à
être téléchargé sur la carte Arduino.
Téléchargement sur la Carte : Une fois le code compilé,
l'IDE permet de le télécharger directement sur la carte
Arduino connectée à l'ordinateur.
Bibliothèques : L'IDE Arduino comprend de nombreuses
bibliothèques qui offrent des fonctionnalités
supplémentaires pour divers projets.
Exemples de Projets : Il y a aussi des exemples de
projets intégrés qui peuvent être utilisés comme point
de départ pour apprendre et expérimenter.
2-2-9-1-3-L’ARDUINO MEGA
La carte ARDUINO MEGA 2560 est une carte à microcontrôleur
basée sur un ATmega2560. Cette carte dispose :
-de 54 broches numériques d'entrées/sorties (dont 14 peuvent
être utilisées en sorties PWM (MLI : Modulation de largeur
d’impulsion).
-de 16 entrées analogiques (qui peuvent être utilisées en
broches entrées/sorties numériques).
-de 4 UART (port série matériel).
-d'un quartz de 16Mhz.
-d'une connexion USB.
-d'un connecteur d'alimentation jack.
-d'un connecteur ICSP (programmation "in-circuit").
-d'un bouton de réinitialisation (reset).
52
Elle contient tout ce qui est nécessaire pour le fonctionnement
du microcontrôleur ; Pour Pouvoir l'utiliser, il suffit simplement
de la connecter à un ordinateur à l'aide d'un câble USB (ou de
l'alimenter avec un adaptateur secteur ou une pile, mais ceci
n'est pas indispensable, l’alimentation étant fournie par le port
USB). La carte ARDUINO MEGA 2560 est compatible avec les
circuits imprimés prévus pour les cartes Arduino Uno,
Duemilanove ou Diecimila.
53
microcontrôleur est préprogrammé avec un boot loader de
façon à ce qu’un programmateur dédié ne soit pas nécessaire.
Description
Partie matérielle
Microcontrôleur ATMEGA2560
Tension de fonctionnement 5V
54
Tension d’alimentation 7 à 12V
Mémoire SRAM 8 KB
Mémoire EEPROM 4 KB
Le Microcontrôleur ATMega2560
Les mémoires
55
automatiquement par la carte. La carte peut fonctionner avec
une alimentation externe de 6 à 20 volts. Cependant, si la carte
est alimentée avec moins de 7V, la broche 5V pourrait fournir
moins de 5V, et la carte pourrait être instable. Si on utilise plus
de 12V, le régulateur de tension de la carte pourrait chauffer ce
dernier. Les broches d’alimentation sont les suivantes :
Chacune des 54 broches numériques de la carte Mega peut être
utilisée soit comme une entrée numérique, soit comme une
sortie numérique. Ces broches fonctionnent en 5V. Chaque
broche peut fournir ou recevoir un maximum de 40mA
d’intensité et dispose d’une résistance interne de”rappel au
plus” (pull-up) (déconnectée par défaut) de 20-50 Kohms. Cette
résistance interne s’active sur une broche en entrée à l’aide de
l’instruction digitalWrite (broche, HIGH). De plus, certaines
broches ont des fonctions spécialisées :
*Communication Série : Port Série Serial : 0 (RX) et 1 (TX) ; Port
Série Serial 1 : 19 (RX) and18 (TX) ; Port Série Serial 2 : 17 (RX)
and 16 (TX) ; Port Série Serial 3 : 15 (RX) and 14 (TX).
*Interruptions Externes : Broches 2 (interrupt 0), 3 (interrupt 1),
18 (interrupt 5), 19(interrupt 4),20 (interrupt 3), et 21
(interrupt 2). Ces broches peuvent être configurées pour
déclencher une interruption sur une valeur basse, sur un front
montant ou descendant, ou sur un changement de valeur.
*Impulsion PWM (largeur d’impulsion modulée) : Broches 0 à
13. Fournissent une impulsion PWM 8-bits à l’aide de
l’instruction analogWrite().
*SPI (Interface Série Périphérique) : Broches 50 (MISO), 51
(MOSI), 52 (SCK), 53 (SS). Ces broches supportent la
communication SPI (Interface Série Périphérique).
*I2C : Broches 20 (SDA) et 21 (SCL). Supportent les
communications de protocole I2C.
*LED : Broche 13. Il y a une LED incluse dans la carte connectée
à la broche 13.
.
-Communication Série : Port Série Serial : 0 (RX) et 1 (TX) ; Port
Série Serial 1 : 19 (RX) and 18 (TX) ; Port Série Serial 2 : 17 (RX)
and 16 (TX) ; Port Série Serial 3 : 15 (RX) and 14 (TX).
56
-Interruptions Externes : Broches 2 (interrupt 0), 3 (interrupt 1),
18 (interrupt 5), 19(interrupt 4),
-20 (interrupt 3), et 21 (interrupt 2).Ces broches peuvent être
configurées pour déclencher une interruption sur une valeur
basse, sur un front montant ou descendant, ou sur un
changement de valeur.
-Impulsion PWM (largeur d’impulsion modulée) : Broches 0 à 13.
Fournissent une impulsion PWM 8-bits à l’aide de l’instruction
analogWrite().
-SPI (Interface Série Périphérique) : Broches 50 (MISO), 51
(MOSI), 52 (SCK), 53 (SS). Ces broches supportent la
communication SPI (Interface Série Périphérique).
-I2C : Broches 20 (SDA) et 21 (SCL). Supportent les
communications de protocole I2C.
-LED : Broche 13. Il y a une LED incluse dans la carte connectée
à la broche 13.
Broches analogiques
Autres broches
57
USB, pour éviter cela, il existe différentes méthodes pour
utiliser ce dernier sans fil.
Chapitre
3
Réalisation du
système
Dans ce chapitre de notre mémoire nous allons présenter la
réalisation pratique de notre système. Pour ce fait nous allons
présenter l’organigramme de chaque sous-système et leur code
de programmation puis présenter la programmation du système
générale et enfin présenter un aperçue de la maquette de notre
système.
58
3-1- Organigramme et code de
programmation de chaque sous
système
59
3-1-1-1-Oganigramme
60
Figure3-1 : Organigramme du système de verrouillage
par code pin
3-1-1-2-Code de programmation
#include <Keypad.h>
#include<EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int LEDROUGE = 10;
int LEDVERT = 11;
int BUZZER = 12;
int relay = 9;
61
Keypad customKeypad( makeKeymap(keys), rowPins, colPins,
ROWS, COLS); //initialize an instance of class NewKeypad
void setup()
{
pinMode(LEDROUGE, OUTPUT);
pinMode(LEDVERT, OUTPUT);
pinMode(BUZZER, OUTPUT);
digitalWrite (LEDROUGE,LOW);
digitalWrite (LEDVERT, LOW);
digitalWrite (BUZZER, LOW);
[Link]();
[Link]();
pinMode (relay, OUTPUT);
digitalWrite (relay, LOW);
[Link](16, 2);
[Link](" BIENVENUE ");
[Link](0,1);
[Link]("LUCAS ");
delay(3000);
[Link]();
//[Link]("ENTRER CODE PIN");
[Link](0,1);
void loop()
{
if (door == 0)
{
customKey = [Link]();
if (customKey == '#')
62
[Link]();
[Link] (3,0);
[Link]("EN FERMETURE");
delay (700);
[Link] (10,0);
[Link](".");
delay (800);
[Link] (11,0);
[Link](".");
delay (800);
[Link] (12,0);
[Link](".");
delay (500);
[Link]();
delay (500);
digitalWrite (relay, HIGH);
digitalWrite (LEDVERT, LOW);
digitalWrite (BUZZER, LOW);
delay(100);
[Link] (5,0);
[Link]("FERMER");
delay (1700);
door = 1;
}
}
else Open();
}
void clearData()
{
while (data_count != 0)
{ // This can be used for any array size,
Data[data_count--] = 0; //clear array for new data
}
return;
}
63
void Open()
{
[Link](1, 0);
[Link]("ENTRER CODE PIN");
customKey = [Link]();
if (customKey) // makes sure a key is actually pressed, equal to
(customKey != NO_KEY)
{
[Link](0, 1);
[Link]("******"); //To hide your PASSWORD, make sure its
the same lenght as your password
Data[data_count] = customKey; // store char into data array
[Link](data_count, 1); // move cursor to show each
new char
[Link](Data[data_count]); // print char at said cursor
data_count++; // increment data array by 1 to store new
char, also keep track of the number of chars entered
}
64
[Link]();
[Link](1,0);
[Link]("ACCES BLOQUER!");
delay(1500);
digitalWrite (relay, HIGH);
digitalWrite (LEDROUGE,HIGH);
digitalWrite (BUZZER, HIGH);
delay(5000);
digitalWrite (LEDROUGE, LOW);
digitalWrite (BUZZER, LOW);
door = 1;
}
clearData();
}
}
3-1-2-1-Organigramme
65
Figure 3-2 : Organigramme du système de commande
Bluetooth partie 1
66
Figure 3-3 : Organigramme du système de commande
Bluetooth partie 2
3-1-2-1-3-Organigramme pour l’ouverture et la
fermeture de la porte du garage et du salon de la
maison
67
Figure 3-4 : Organigramme du système de commande
Bluetooth partie 3
3-1-2-2-Code de programmation
char Data;
int salon = 3;
int cuisine = 4;
int chambre1 = 5;
int chambre2 = 6;
int chambre3 = 7;
int garage = 8;
int couloir = 9;
int portesalon = 10;
int motorSpeedPin=3;
int in1=4;
int in2=5;
int ledrouge=12;
int ledverte=13;
int buzzer=;11
void setup() {
[Link](9600);
pinMode(salon,OUTPUT);
68
pinMode(cuisine,OUTPUT);
pinMode(chambre1,OUTPUT);
pinMode(chambre2,OUTPUT);
pinMode(chambre3,OUTPUT);
pinMode(couloir,OUTPUT);
pinMode(garage,OUTPUT);
pinMode(ledrouge,OUTPUT);
pinMode(ledverte,OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(1000);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
char c;
String voice;
void loop() {
if ([Link]()>0)
{
voice="";
voice=[Link]();
[Link](voice+'\n');
}
69
digitalWrite(cuisine,HIGH);
} else if(voice=="éteindre lampe cuisine")
{
digitalWrite(cuisine,LOW);
}
70
{
digitalWrite(garage,LOW);}
if(voice=="allumer tout")
{
digitalWrite(salon,HIGH);
digitalWrite(cuisine,HIGH);
digitalWrite(chambre1,HIGH);
digitalWrite(chambre2,HIGH);
digitalWrite(chambre3,HIGH);
digitalWrite(couloir,HIGH);
digitalWrite(garage,HIGH);
{
digitalWrite(salon,LOW);
digitalWrite(cuisine,LOW);
71
digitalWrite(chambre1,LOW);
digitalWrite(chambre2,LOW);
digitalWrite(chambre3,HIGH);
digitalWrite(couloir,HIGH);
digitalWrite(garage,HIGH); ;
}
if(voice=="ouvrir tout")
{
digitalWrite(portesalon,LOW);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(buzzer, HIGH);
delay(3000);
} else if(voice=="fermer tout")
{
digitalWrite(portesalon,HIGH);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(ledrouge, HIGH);
digitalWrite(buzzer, HIGH);
delay(3000);
72
3-1-3- Système de détection de fumé et
de gaz
3-1-3-1- Organigramme
73
pinMode(buzzerPin, OUTPUT);
pinMode(fireSensorPin, INPUT);
pinMode(LED, OUTPUT);
}
void loop()
{
int fireValue = digitalRead(fireSensorPin);
[Link](fireValue);
if(fireValue == 0)
{
digitalWrite(buzzerPin, HIGH);
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(buzzerPin, LOW);
digitalWrite(LED, LOW);
delay(200);
74
Figure3-6 : Organigramme du système de détection de
feu
3-1-4-2-Code de programmation
75
if(fireValue == 0)
{
digitalWrite(buzzerPin, HIGH);
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(buzzerPin, LOW);
digitalWrite(LED, LOW);
delay(200);
}
else
{
digitalWrite(buzzerPin, LOW);
}
delay(500);
}
76
Figure 3-7 : Organigramme du système d’éclairage par
capteur de mouvement
77
//before we assume all motion has stopped
long unsigned int pause = 5000;
/////////////////////////////
//SETUP
void setup(){
[Link](9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(Buzzer, OUTPUT);
digitalWrite(pirPin, LOW);
void loop(){
if(digitalRead(pirPin) == HIGH){
digitalWrite(ledPin, HIGH); //the led visualizes the sensors
output pin state
tone(Buzzer,500);
if(lockLow){
78
//makes sure we wait for a transition to LOW before any
further output is made:
lockLow = false;
[Link]("---");
[Link]("motion detected at ");
[Link](millis()/1000);
[Link](" sec");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW){
digitalWrite(ledPin, LOW); //the led visualizes the sensors
output pin state
noTone(Buzzer);
if(takeLowTime){
lowIn = millis(); //save the time of the transition from
high to LOW
takeLowTime = false; //make sure this is only done at
the start of a LOW phase
}
//if the sensor is low for more than the given pause,
//we assume that no more motion is going to happen
if(!lockLow && millis() - lowIn > pause){
//makes sure this block of code is only executed again
after
//a new motion sequence has been detected
lockLow = true;
[Link]("motion ended at "); //output
[Link]((millis() - pause)/1000);
[Link](" sec");
delay(50);
}
}
}
79
3-1-6-1- Système refroidissement
automatique
3-1-6-1- Organigramme
#include <DHT.h>;
#define DHT11_PIN A0
80
#define DHTTYPE DHT11
#define ventilateurpin 3
DHT dht(DHT11_PIN, DHTTYPE);
float temp, hum;
void setup() {
[Link](9600);
[Link]();
pinMode(ventilateurpin, OUTPUT);
}
void loop() {
temp = [Link]();
hum = [Link]();
[Link](temp);
[Link](" °C");
[Link](hum);
[Link](" %");
delay(1000);
if (temp >= 25) {
analogWrite(ventilateurpin, 255);
}
else {
analogWrite(ventilateurpin, 0);
}
}
81
3-1-7- Système de sécurité par
laser
3-1-7-1- Organigramme
82
Figure3-8 : Organigramme du système de sécurité par
laser
3-1-7-2- Code de programmation
83
const int RedLED = 4;
const int GreenLED = 5;
const int inputPin = A0;
const int speakerPin = 12;
const int armButton = 6;
void setup(){
pinMode(triggeredLED, OUTPUT);
pinMode(triggeredLED2, OUTPUT);
pinMode(RedLED, OUTPUT);
pinMode(GreenLED, OUTPUT);
pinMode(armButton, INPUT);
digitalWrite(triggeredLED, HIGH);
delay(500);
digitalWrite(triggeredLED, LOW);
calibrate();
setArmedState();
}
void loop(){
reading = analogRead(inputPin);
84
delay(500);
}
if (isTriggered){
digitalWrite(triggeredLED, HIGH);
delay(50);
digitalWrite(triggeredLED, LOW);
delay (50);
digitalWrite(triggeredLED2, HIGH);
delay (50);
digitalWrite(triggeredLED2, LOW);
delay (50);
}
delay(20);
}
void setArmedState(){
if (isArmed){
digitalWrite(GreenLED, HIGH);
digitalWrite(RedLED, LOW);
isTriggered = false;
isArmed = false;
} else {
digitalWrite(GreenLED, LOW);
85
digitalWrite(RedLED, HIGH);
tone(speakerPin, 220, 125);
delay(200);
tone(speakerPin, 196, 250);
isArmed = true;
}
}
void calibrate(){
int sample = 0;
int baseline = 0;
const int min_diff = 200;
const int sensitivity = 50;
int success_count = 0;
digitalWrite(RedLED, LOW);
digitalWrite(GreenLED, LOW);
do
{
sample = analogRead(inputPin);
digitalWrite(GreenLED, HIGH);
delay (100);
digitalWrite(GreenLED, LOW);
delay (100);
} else {
success_count = 0;
86
threshold = 0;
}
3-1-8-1- Organigramme
87
Figure3-9 : Organigramme du système d’éclairage
automatique
88
void setup() {
// put your setup code here, to run once:
[Link](9600);
pinMode(photo, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int lecture = analogRead(photo);
[Link](lecture);
if (lecture > 500) {
digitalWrite(led, LOW);
}
if (lecture < 400) {
digitalWrite(led, HIGH);
}
}
89
3-2-Schéma de câblage du système
générale
90
3-2-Organigramme du système général
91
3-3-Code de programmation du
système général
#include <DHT.h>;
#define DHT11_PIN A1
#define DHTTYPE DHT11
#define ventilateurpin 37
DHT dht(DHT11_PIN, DHTTYPE);
float temp, hum;
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
92
int couloir = 18;
int portesalon = 19;
int motorSpeedPin=3;
int in1=20;
int in2=21;
int ledrouge=22;
int ledverte=23;
int buzzer=24;
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define Password_Lenght 7 // Give enough room for six chars +
NULL char
char Data[Password_Lenght]; // 6 is the number of chars it can
hold + the null char = 7
char Master[Password_Lenght] = "123456"; //Change
PASSWORD here
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
bool door = true;
93
int ventillateurfume=29;
float sensorValue;
int triggeredLED = 30;
int triggeredLED2 = 31;
int RedLED = 32;
int GreenLED = 33;
int inputPin = A0;
int speakerPin = 35;
int armButton = 36;
boolean isArmed = true;
boolean isTriggered = false;
int buttonVal = 0;
int prev_buttonVal = 0;
int reading = 0;
int threshold = 0;
const int lowrange = 2000;
const int highrange = 4000;
void setup() {
[Link](9600);
pinMode(phot,INPUT);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(LEDROUGE, OUTPUT);
pinMode(LEDVERT, OUTPUT);
pinMode(BUZZER, OUTPUT);
digitalWrite (LEDROUGE,LOW);
digitalWrite (LEDVERT, LOW);
digitalWrite (BUZZER, LOW);
digitalWrite (portesalon, LOW);
pinMode(salon,OUTPUT);
pinMode(cuisine,OUTPUT);
pinMode(chambre1,OUTPUT);
pinMode(chambre2,OUTPUT);
pinMode(devanture,OUTPUT);
pinMode(couloir,OUTPUT);
pinMode (portesalon, OUTPUT);
pinMode(garage,OUTPUT);
pinMode(ledrouge,OUTPUT);
94
pinMode(ledverte,OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(1000);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
[Link]();
[Link]();
[Link](16, 2);
[Link](" BIENVENUE ");
[Link](0,1);
[Link]("LUCAS ");
delay(3000);
[Link]();
[Link]("ENTRER CODE PIN");
[Link](0,1);
[Link]();
pinMode(ventilateurpin, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(buzzerfume,OUTPUT);
pinMode(led,OUTPUT);
pinMode(ventillateurfume,OUTPUT);
pinMode(smokeA0,INPUT);
pinMode(fireSensorPin, INPUT);
pinMode(triggeredLED, OUTPUT);
pinMode(triggeredLED2, OUTPUT);
pinMode(RedLED, OUTPUT);
pinMode(GreenLED, OUTPUT);
pinMode(armButton, INPUT);
//calibrate();
//setArmedState();
[Link](9600); // sets the serial port to 9600
[Link]("Gas sensor warming up!");
delay(2000); // allow the MQ-6 to warm up
noTone(buzzerfume);
digitalWrite(ventillateurfume,HIGH);
digitalWrite(led,LOW);
delay(5000);
95
digitalWrite(triggeredLED, HIGH);
delay(500);
digitalWrite(triggeredLED, LOW);
digitalWrite(pirPin, LOW);
[Link]("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
[Link](".");
delay(1000);
[Link](" done");
[Link]("SENSOR ACTIVE");
delay(50);
}
}
void Open()
{
[Link](1, 0);
[Link]("ENTRER CODE PIN");
customKey = [Link]();
if (customKey) // makes sure a key is actually pressed, equal
to (customKey != NO_KEY)
{
[Link](0, 1);
[Link]("******"); //To hide your PASSWORD, make sure its
the same lenght as your password
Data[data_count] = customKey; // store char into data array
[Link](data_count, 1); // move cursor to show each
new char
[Link](Data[data_count]); // print char at said cursor
data_count++; // increment data array by 1 to store new
char, also keep track of the number of chars entered
}
96
{
[Link]();
digitalWrite (portesalon, LOW);
digitalWrite (LEDVERT, HIGH);
digitalWrite (BUZZER, HIGH);
[Link](" ACCES AUTORISER");
[Link](0,1);
[Link](" # pour fermer ");
delay(5000);
digitalWrite (LEDVERT, LOW);
digitalWrite (BUZZER, LOW);
door = 0;
}
else
{
[Link]();
[Link](1,0);
[Link]("ACCES BLOQUER!");
delay(1500);
digitalWrite (portesalon, HIGH);
digitalWrite (LEDROUGE,HIGH);
digitalWrite (BUZZER, HIGH);
delay(5000);
digitalWrite (LEDROUGE, LOW);
digitalWrite (BUZZER, LOW);
door = 1;
}
clearData();
}
}
void clearData()
{
while (data_count != 0)
{ // This can be used for any array size,
Data[data_count--] =0; //clear array for new data
}
return;
}
97
void loop() {
if ([Link]()>0)
{
voice="";
voice=[Link]();
[Link](voice+'\n'); }
if(voice=="allumer lampe salon")
{ digitalWrite(salon,HIGH); }
else if(voice=="éteindre lampe salon") {
digitalWrite(salon,LOW); }
if(voice=="allumer lampe cuisine")
{ digitalWrite(cuisine,HIGH);
} else if(voice=="éteindre lampe cuisine")
{ digitalWrite(cuisine,LOW); }
if(voice=="allumer lampe première chambre")
{ digitalWrite(chambre1,HIGH);
} else if(voice=="éteindre lampe première chambre")
{ digitalWrite(chambre1,LOW);}
if(voice=="allumer lampe deuxième chambre")
{ digitalWrite(chambre2,HIGH);
} else if(voice=="éteindre lampe deuxième chambre")
{ digitalWrite(chambre2,LOW);
} if(voice=="allumer lampe couloir")
{ digitalWrite(couloir,HIGH); }
else if(voice=="éteindre lampe couloir")
{ digitalWrite(couloir,LOW);
} if(voice=="allumer lampe garage")
{ digitalWrite(garage,HIGH);
} else if(voice=="éteindre lampe garage")
{ digitalWrite(garage,LOW);} if(voice=="ouvrir porte
garage")
{ digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(buzzer, HIGH);
delay(3000); }
else if(voice=="fermer porte garage")
{ digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
98
digitalWrite(ledrouge, HIGH);
digitalWrite(buzzer, HIGH);delay(3000);
} if(voice=="ouvrrir porte salon")
{ digitalWrite(portesalon,LOW);
} else if(voice=="fermer porte salon")
{ digitalWrite(portesalon,HIGH);}
if(voice=="allumer tout")
{ digitalWrite(salon,HIGH);
digitalWrite(cuisine,HIGH);
digitalWrite(chambre1,HIGH);
digitalWrite(chambre2,HIGH);
digitalWrite(devanture,HIGH);
digitalWrite(couloir,HIGH);
digitalWrite(garage,HIGH);
} else if(voice=="éteindre tout")
{ digitalWrite(salon,LOW);
digitalWrite(cuisine,LOW);
digitalWrite(chambre1,LOW);
digitalWrite(chambre2,LOW);
digitalWrite(devanture,LOW);
digitalWrite(couloir,LOW);
digitalWrite(garage,LOW); ; }
if(voice=="ouvrir tout")
{ digitalWrite(portesalon,LOW);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(buzzer, HIGH);
delay(3000);
} else if(voice=="fermer tout")
{ digitalWrite(portesalon,HIGH);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(ledrouge, HIGH);
digitalWrite(buzzer, HIGH);
delay(3000);
}
/************************************************************/
if (door == 0)
{
99
customKey = [Link]();
if (customKey == '#')
[Link]();
[Link] (3,0);
[Link]("EN FERMETURE");
delay (700);
[Link] (10,0);
[Link](".");
delay (800);
[Link] (11,0);
[Link](".");
delay (800);
[Link] (12,0);
[Link](".");
delay (500);
[Link]();
delay (500);
digitalWrite (portesalon, HIGH);
digitalWrite (LEDVERT, LOW);
digitalWrite (BUZZER, LOW);
delay(100);
[Link] (5,0);
[Link]("FERMER");
delay (1700);
door = 1;
}
}
else Open();
100
else
digitalWrite(led1, LOW);
if(digitalRead(pirPin) == HIGH){
digitalWrite(ledPin, HIGH); //the led visualizes the sensors
output pin state
if(lockLow){
//makes sure we wait for a transition to LOW before any
further output is made:
lockLow = false;
[Link]("---");
[Link]("motion detected at ");
[Link](millis()/1000);
[Link](" sec");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW){
digitalWrite(ledPin, LOW);
if(takeLowTime){
lowIn = millis();
takeLowTime = false;
}
lockLow = true;
[Link]("motion ended at ");
[Link]((millis() - pause)/1000);
[Link](" sec");
delay(50);
}
}
/************************************************************/
101
int fireValue = digitalRead(fireSensorPin);
[Link](fireValue);
if(fireValue == 0)
{
digitalWrite(buzzerfume, HIGH);
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(buzzerfume, LOW);
digitalWrite(LED, LOW);
delay(200);
}
else
{
digitalWrite(buzzerfume, LOW);
digitalWrite(LED, LOW);
}
delay(500);
sensorValue=analogRead(smokeA0);
if(sensorValue > 300)
{
[Link](" | Smoke detected!");
digitalWrite(ventillateurfume,LOW);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(led,LOW);
delay(100);
digitalWrite(buzzerfume,HIGH);
delay(100);
digitalWrite(buzzerfume,LOW);
delay(100);
}
else
{
[Link](" | Smoke not detected!");
digitalWrite(buzzerfume,LOW);
digitalWrite(led,LOW);
102
digitalWrite(ventillateurfume,HIGH);
}
reading = analogRead(inputPin);
if (isTriggered){
digitalWrite(triggeredLED, HIGH);
delay(50);
digitalWrite(triggeredLED, LOW);
delay (50);
digitalWrite(triggeredLED2, HIGH);
delay (50);
digitalWrite(triggeredLED2, LOW);
delay (50);
}
delay(20);
}
void setArmedState(){
103
if (isArmed){
digitalWrite(GreenLED, HIGH);
digitalWrite(RedLED, LOW);
isTriggered = false;
isArmed = false;
} else {
digitalWrite(GreenLED, LOW);
digitalWrite(RedLED, HIGH);
tone(speakerPin, 220, 125);
delay(200);
tone(speakerPin, 196, 250);
isArmed = true;
}
}
void calibrate(){
int sample = 0;
int baseline = 0;
const int min_diff = 200;
const int sensitivity = 50;
int success_count = 0;
digitalWrite(RedLED, LOW);
digitalWrite(GreenLED, LOW);
do
{
sample = analogRead(inputPin);
104
threshold += sample;
digitalWrite(GreenLED, HIGH);
delay (100);
digitalWrite(GreenLED, LOW);
delay (100);
} else {
success_count = 0;
threshold = 0;
}
temp = [Link]();
[Link](temp);
[Link]("°C");
if (temp >=25) {
analogWrite(ventilateurpin, 255);
}
else {
analogWrite(ventilateurpin, 0);
}
105
3-4-Apercue de la maquette de notre
système
106
Figure3-11 : Aperçu de la maquette du système
CONCLUSION
107
Driver de moteur 1 2400 2400
L298N
Relais 4 anneaux 2 1800 3600
Keypad clavier 1 960 960
Diode laser 1 360 360
Photorésistance 2 200 400
Lampes LED 7 800 5600
LED Rouge 4 50 200
LED Verte 4 50 200
Resistance 220omhs 8 25 200
Résistance 10komhs 1 25 25
Buzzer 2 300 600
Ventilateur 1 1000 1000
Capteur de 1 500 500
température dht11
Module Bluetooth hc- 1 4000 4000
05
LED bleu 1 50 50
Port d’entrée de 1 1000 1000
disque sur dvd
Fils conducteur 50 1750 1000
Maquette 1 60000 60000
Prise électrique 1 500 500
Douilles 7 500 3500
Total 98500
108
109
110