Professional Documents
Culture Documents
Gestion D'une Maison Intelligente Avec FreeRTOS PDF
Gestion D'une Maison Intelligente Avec FreeRTOS PDF
Semestre 2
Mini Projet
Gestion d’une maison intelligente avec FreeRTOS
2019-2020 2
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 3
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 4
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 5
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
INTRODUCTION GENERALE
Les systèmes embarqués sont désormais utilisés dans des applications diverses tels que
le transport (avionique, espace, automobile, ferroviaire), dans les appareils électriques et
électroniques (appareils photo, jouets, postes de télévision, électroménager, systèmes audio,
téléphones portables), dans la distribution d'énergie, dans l'automatisation … etc.
Ces systèmes représentent le premier marché de l'électronique. Ils sont interconnectés
et agissent à travers des réseaux, dans un environnement où la vitesse et la quantité de
données échangées croissent rapidement. Les enjeux dans ce domaine se situent dans la
maîtrise de la complexité, la diminution de coûts de production du logiciel, la performance et
la robustesse des architectures matérielles et logicielles.
Linux a fait des percées plus que significatives dans ce domaine. Dans un contexte où
robustesse, légèreté et interopérabilité sont essentielles, le système libre Linux se révèle un
excellent choix : open source et libre de droits, il peut être adapté et diffusé à grande échelle
pour un coût de licence nul. À travers ce cours orienté vers la pratique, les étudiants
développent une expertise dans la conception, le développement et l'intégration du matériel
et du logiciel. Celle-ci leur permet d'adapter les solutions technologiques aux contraintes des
différents environnements de déploiement. Les étudiants œuvrent par la suite au sein
d'équipes multidisciplinaires dans des domaines d'emploi très variés telles les équipes de
conception et développement de produits ou les bureaux d'études.
Ce mini projet sous le thème la gestion d’une maison intelligente avec l’utilisation d’un
système d’exploitation (FreeRTOS).
Pour arriver à notre objectif nous avons devisé ce mini projet sur quatre chapitres :
o Le chapitre1 : une présentation sur les systèmes embarqués en temps réel.
o le chapitre2 : qui parle sur un système d’exploitation FreeRtos.
o le chapitre3 : concerne certaines informations sur la domotique
o Le chapitre 4 : concerne la description de projet le code utilisé dans la réalisation.
o Enfin on a terminé ce mini projet par une conclusion.
2019-2020 6
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Chapitre1 :
2019-2020 7
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
I. Introduction :
La plupart des systèmes embarqués temps réel sont avant tout des systèmes de
contrôle commande. Un système de contrôle-commande est un système informatique de
contrôle de procédé. Le terme procédé est un terme générique désignant un système
physique contrôlé.
2019-2020 8
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Les systèmes embarqués de contrôle sont utilisés pour effectuer un contrôle en boucle
rétroactive fermée de systèmes temps réel. On les retrouve notamment dans les
moteurs de voiture, les centrales nucléaires et pour le contrôle aérien ;
On peut également utiliser des systèmes embarqués pour traiter des signaux, c'est-à-
dire réaliser des calculs sur des gros flux de données. Ces derniers se retrouvent
typiquement dans le traitement audio et vidéo et dans les radars et sonars ;
des systèmes embarqués sont également utilisés dans le domaine des communications
et réseaux, pour effectuer de la transmission de données et réaliser des
communications. Ils sont notamment utilisés dans la téléphonie et pour l'internet .
Il existe plusieurs critères de classification pour les systèmes embarqués, comme par
exemple le gabarit, le type de calcul, ou le segment du marché économique dans lequel
l'appareil figure. Ce dernier critère est le plus utilisé dans la littérature des systèmes
embarqués, c'est une classification où les dispositifs embarqués sont à peu près répartis dans
des secteurs de marchés divers comme le montre le Tableau1 :
2019-2020 9
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 10
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Les systèmes embarqués couvrent tous les aspects de la vie moderne et il existe
de nombreux exemples de leur utilisation.
2019-2020 11
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Un système temps réel est un système informatique qui interagit physiquement avec
le monde réel ;
Ces interactions avec le monde réel doivent obéir à des contraintes temporelles.
En règle générale, les interactions d'un système temps réel sur le monde réel
s'effectuent via des capteurs et des actionneurs, plutôt qu'un clavier et un écran d'ordinateur
standard. Et les contraintes temporelles généralement exigent que les interactions
s'accomplissent sur des intervalles temporels prédéfinis. Il convient de noter que cela est tout
à fait différent quand l'interaction s'exécute le plus rapidement possible.
2019-2020 12
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Figure 2: donne une représentation de l'afflux des événements dans les trois classes.
Dans le cas général, les événements en relation avec les mesures dans le monde
externe sont périodiques, car ils ont pour rôle de collecter des mesures à chaque unité de
temps (ou période). Le reste est apériodique ou sporadique. En sachant que les événements
sporadiques se distinguent des événements apériodiques quand un intervalle minimal dans le
temps entre deux événements est bien connu lors de la phase d'analyse, et c'est souvent grâce
aux connaissances sur les limitations physiques du système. L'exemple typique pour ce genre
d'événements est les événements déclenchés par des capteurs étalés sur des rails
transportant un chariot pour connaître sa position, étant donné que le chariot ne peut pas
excéder une vitesse maximum, un temps minimum est garanti entre le déclenchement de
deux événements pour deux capteurs qui se succèdent. Si le temps minimal entre deux
événements est a priori inconnu, l'événement est attribué à la classe des événements
apériodiques.
Grande diversité des dispositifs d’entrées/sorties : les données à acquérir qui sont
fournies par les capteurs et les données à fournir aux actionneurs sont de types très
variés (continu, discret, tout ou rien ou analogique). Il est aussi nécessaire de piloter
un bus de terrain pour les communications ;
2019-2020 13
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
4. Architecture physique :
2019-2020 14
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Une architecture générique pour un système temps réel est décrite dans la figure4.
Cette architecture est un modèle de tout système fondé sur l'interaction avec un
environnement extérieur par l'intermédiaire de capteurs et d'actionneurs.
Le système temps réel le plus simpliste est un système avec un processeur unique, mais
dans de nombreux cas, les systèmes temps réel sont des systèmes informatiques distribués
composés d'un ensemble de processeurs interconnectés par un réseau de communication.
Plusieurs raisons peuvent pousser les concepteurs à construire un système temps réel
distribué, parmi ceux-ci :
Le dernier point ne paraît pas aussi explicite que ça, mais si on considère l'architecture
générale du système vue précédemment, les systèmes temps réel sont habituellement
connectés aux capteurs et aux actionneurs qui sont souvent éparpillés physiquement à
différents endroits dans l'environnement. Un moyen efficace de réduire la quantité du câblage
est de regrouper les nœuds les plus proches sur un nœud de ralliement qui fera office d'un
nœud de communication avec le processeur central.
La figure 5 montre un exemple d'un système temps réel distribué dans une voiture
moderne. Dans une voiture il existe environ 20 à 100 nœuds de ce genre. Ce qui dans
l'industrie automobile est appelé unité de contrôle électronique (ECU : Electronique Control
Unit) interconnectés avec un ou plusieurs réseaux de communication. La première motivation
pour une architecture distribuée dans les voitures était la nécessité de réduire la quantité de
câblages comme signalé auparavant. Toutefois, cette architecture a également conduit à
d'autres améliorations importantes, y compris une réduction de la pollution avec
l’abaissement du nombre des compartiments mécano-hydrauliques et l'ajout de nouveaux
2019-2020 15
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
mécanismes de sécurité dans la voiture, comme les ESP (Electronique Stabilisation Programs
: ce sont des mécanismes anti-dérapage dans une voiture). La recherche actuelle dans le
domaine tente de rendre les compartiments les plus sensibles en termes de sécurité dans la
voiture, comme la direction et le freinage totalement contrôlable par ordinateurs. Ceci en
enlevant les connexions mécaniques (par exemple, entre le volant et les roues avant, et entre
la pédale et les plaques de freinage). Et les remplacer par des systèmes informatiques
distribués.
Figure 5: Architecture d'un système temps réel distribué dans une voiture moderne.
Tâches d’entrées/sorties : ces tâches permettent d’accéder aux données externes par
l’intermédiaire de cartes d’entrées/sorties et ensuite de capteurs et d’actionneurs
directement liés au procédé géré. Ces tâches peuvent être activées de façon régulière
ou par interruption ;
Tâches de traitement : ces tâches constituent le cœur de l’application. Elles intègrent
des traitements de signaux (analyse spectrale, corrélation, traitement d’images, etc.)
ou des lois de commande (régulation tout ou rien, régulation du premier ordre,
régulation PID, etc.). Dans le cadre de cet ouvrage, nous considérerons ces tâches
comme des boîtes noires, c’est-à-dire que le traitement effectué par ces tâches relève
des domaines comme le traitement du signal, le traitement d’images ou
l’automatique, disciplines qui débordent largement le contexte de ce livre ;
Tâches de gestion de l’interface utilisateur : ces tâches permettent de présenter
l’état du procédé ou de sa gestion à l’utilisateur. En réponse, l’opérateur peut modifier
les consignes données ou changer les commandes. Ces tâches peuvent être très
2019-2020 16
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Tâches de communications : ces tâches sont destinées à gérer les messages envoyés
ou reçus à travers un ou plusieurs réseaux ou bus de terrain. Si ce type de tâches existe,
l’application est dite distribuée ou répartie ;
IV. Conclusion :
Pour conclure au cours de ce chapitre nous avons essayé de parler sur un système
embarqué en temps réel : les définitions les types, les caractéristiques et certains
exemples…etc. Alors on peut déduire que les systèmes embarqués en temps réel absorbent
notre vie quotidienne.
Actuellement on trouve des fonctions réalisées automatisées grâce à les domaines
(d’électronique et l’informatique embarquée).
2019-2020 17
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Chapitre2 :
2019-2020 18
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
I. Introduction :
Un système d'exploitation temps réel, qui facilite la programmation, le déploiement,
la protection, la connexion et la gestion de petits appareils à faible puissance en périphérie.
Distribué gratuitement dans le cadre de la licence open source MIT, FreeRTOS inclut un noyau
et un ensemble toujours plus large de bibliothèques logicielles, adaptés à une utilisation dans
tous les secteurs et avec tous les types d'application.
3. Types de conceptions :
On a deux types de conceptions qui sont :
2019-2020 19
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
La conception par partage de tâche change de tâche plus souvent que c'est strictement
nécessaire mais donne un caractère plus doux, plus déterministe au multitâche, donnant
l'illusion à un processus ou à un utilisateur qu'il est le seul utilisateur de la machine.
Les premières conceptions de processeur avaient besoin de beaucoup de cycles pour
changer de tâche, durant lesquels le processeur ne pouvait rien faire d'utile. Ainsi, les
premiers RTOS essayaient de limiter le gaspi llage de temps CPU en évitant au maximum les
permutations de contexte.
Les plus récents processeurs utilisent largement moins de temps pour permuter de
contexte. Le cas extrême est le Barrel processor (en) qui commute d'une tâche à l'autre en
zéro cycle. Les plus récents RTOS implémentent invariablement l'ordonnancement par
partage de tâche avec un ordonnancement par priorité.
4. Les contraintes :
Les systèmes à contraintes temps réel doivent répondre à trois critères
fondamentaux :
Le déterminisme logique : les mêmes entrées appliquées au système doivent produire
les mêmes effets ;
Le déterminisme temporel : une tâche donnée doit obligatoirement être exécutée
dans les délais impartis, on parle d‘échéance ;
La fiabilité : le système doit être disponible. Cette contrainte est très forte dans le cas
d'un système embarqué car les interventions d'un opérateur sont très difficiles voire
même impossibles. Cette contrainte est indépendante de la notion de temps réel mais
la fiabilité du système sera d'autant plus mise à l'épreuve dans le cas de contraintes
dures.
2019-2020 20
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
1. Définition :
Un problème d'ordonnancement consiste à organiser dans le temps :
2019-2020 21
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Certains modèles intègrent la notion de date due, une date à laquelle la tâche doit être finie
dans ces cas le retard induit une pénalité ;
Selon les problèmes, les tâches peuvent être exécutées par morceaux, ou doivent être
exécutées sans interruption on parle alors respectivement de problèmes préemptifs et non
préemptifs ;
Lorsque les tâches ne sont soumises à aucune contrainte de cohérence, elles sont dites
indépendantes ;
Plusieurs tâches peuvent constituer une activité et plusieurs activités peuvent définir un
processus.
2. Les contraintes :
Les contraintes expriment des restrictions sur les valeurs que peuvent prendre
simultanément les variables de décision. On distingue :
3. Les objectifs :
Dans la résolution d'un problème d'ordonnancement, on peut choisir entre deux
grands types de stratégies, visant respectivement à optimiser les solutions, ou plus
simplement à leur admissibilité.
L'approche par optimisation suppose que les solutions candidates à un problème
puissent être ordonnées de manière rationnelle selon un ou plusieurs critères d'évaluation
numériques, construits sur la base d'indicateurs de performances. On cherchera donc à
minimiser ou maximiser de tels critères.
2019-2020 22
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
IV. Conclusion :
Au cours de ce chapitre nous avons conclu que le système d’exploitation FreeRtos est
utilisé pour étudier l’implémentation d’ordonnanceur, la gestion de taches et la
programmation modulaire.
Il permet également de développer des applications dans le domaine de
l’électronique par exemple comme la lecture de température et son affichage.
À la fin on a le montage du garage qui contient 3 capteurs le servo, led, et ultrason.
Pour le fonctionnement de ce montage ; lorsque ultrason détecte une voiture la porte ouvre
et le led s’allume.
2019-2020 23
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Chapitre 3 :
2019-2020 24
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
I. Introduction :
La domotique est un terme générique regroupant toutes les techniques permettant
d’automatiser la gestion d’une maison, de la rendre "intelligente". Ces techniques font
massivement appel à l’informatique et aux objets connectés afin de faciliter la vie de
l’utilisateur. Cet ensemble de techniques peut servir à plusieurs choses : automatiser certaines
tâches pour faciliter la vie de l’utilisateur, augmenter la sécurité de l’habitat, ou encore réduire
la consommation énergétique du logement.
II. La Domotique :
1. Définition :
La domotique est l’ensemble des techniques et technologies qui facilitent la vie
quotidienne et permettent une gestion automatisée des fonctions électriques de l’habitation.
Ce domaine concerne principalement les appareils électriques que l’on utilise dans le confort,
la sécurité, la gestion des énergies. Le mot domotique est formé à partir du mot latin « domus
» (la maison), et du suffixe « -ique » signifiant « relatif à ».
Nous connaissons déjà certains systèmes qui automatisent certaines tâches dans la maison.
Nous pouvons citer :
Le four qui nous permet de programmer l’heure et la durée de la cuisson d’un gâteau ;
Le radiateur sur lequel on peut régler la température ambiante à l’aide d’un
thermostat ;
L’enregistreur vidéo que l’on peut programmer pour enregistrer notre émission
préférée ;
Le détecteur de présence qui éclaire l’entrée de la maison.
3. Le principe de fonctionnement :
Le principe est relativement simple : les appareils que l’on souhaite programmer sont
branchés sur des modules programmables. Ceux-ci sont ensuite actionnés par des
télécommandes ou par un ordinateur qui sert de serveur à la maison. Les signaux ainsi
2019-2020 25
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
transmis circulent jusqu’aux appareils concernés, soit par le réseau électrique de l’habitation,
soit par les fils téléphoniques, soit par ondes radio, soit, pour finir, par rayons à infrarouges.
Il existe différents systèmes ; sachez seulement qu’ils sont nombreux, qu’ils ne
fonctionnent pas toujours les uns avec les autres et qu’ils ne répondent pas tous aux mêmes
normes.
4. Cibler les 5 fonctions de la Domotique :
La domotique vous offre la possibilité d'opter pour une maison adaptée au rythme
de vie et aux habitudes des habitants de la maison. La domotique assure des fonctions
automatiques et raisonnées de sécurité, de confort, de gestion d'énergie et de
communications, qu'on peut retrouver dans la maison.
Elle prend en charge des situations de la vie quotidienne que l'on peut définir en 5
fonctions : « déléguer, évoluer, automatiser, économiser et sécurise ».
2019-2020 26
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
5. L’utilisation de la Domotique :
L'automatisation d’un bâtiment ;
De contrôler sa maison du bout des doigts ;
De programmer et de coordonner des tâches et des services dans l’habitat ;
De recevoir et de donner de l’information.
1. La sécurité :
En termes de sécurité, la domotique permet entre autres de :
Prévenir les risques provenant de l’extérieur (intrusion, cambriolage…) comme ceux
provenant de l’intérieur (accidents domestiques) ;
Surveiller à distance vos locaux ou votre habitation depuis votre Smartphone, une
Tablette ou un ordinateur ;
Être averti d’un incident (alarmes techniques) par SMS et/ou par e-mail.
La vidéo connectée présente des fonctions domotiques (détection de présence,
alarme, détecteur de fumée…) et apporte des solutions dans ce domaine. En cas d’incident,
vous, et/ou des personnes de votre choix, peuvent être avertis en temps réel par SMS.
La télémédecine entre également dans notre quotidien avec la mise en place de dispositif de
maintien à domicile des personnes dépendantes.
2. Confort et simplicité :
La domotique permet d’améliorer le confort et de simplifier votre quotidien. La mise
en place d’un système domotique rend possible de nombreux scénarios tels que :
Éteindre toutes les lampes et fermer tous les volets roulants en appuyant sur un seul
bouton lors du départ de sa maison ;
2019-2020 27
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Avoir une agréable douceur dans son appartement lors de son retour de vacances
d’hiver ;
Lancer une musique d’ambiance, adapter la luminosité lorsque vous recevez des
invités.
4. Communication et multimédia :
Lire vos films sur le support de votre choix, mettre en place un système multiroom et
pouvoir diffuser le son et l’image dans votre logement sont des exemples de scénarios qu’offre
la domotique. Les équipements vidéo, home-cinéma, réseau téléphonique et internet sont
intégrés dans toutes les pièces de votre habitation.
Il est possible de gérer et diffuser ses bibliothèques de musiques et de vidéos dans
différentes pièces, de sauvegarder ses données informatiques, d’avoir accès à distance à ses
ordinateurs, de facilité la mobilité et le télétravail. Ces systèmes sont en général indépendants
et peuvent être pilotés par les fonctions domotiques.
2019-2020 28
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
composants communiquent entre eux avec le même langage afin qu’ils puissent échanger des
informations, les analyser et les traiter.
L’information circule dans les deux sens : une unité d’entrée envoie des informations
aux récepteurs de sortie chargés de faire effectuer une tâche précise à des équipements de
l’installation électrique (éclairage, ouvrants, chauffage, alarmes…). Ces derniers envoient
ensuite des informations concernant leur état vers la ou les unités d’entrée.
2019-2020 29
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
L’avantage d’une installation utilisant cette technologie est qu’elle ne nécessite pas
de travaux particuliers.
3. La radiofréquence :
Avec la technologie radio, la transmission d’informations s’effectue sans fil. Elle
convient particulièrement aux travaux de rénovation légère étant donné qu’elle est souvent
utilisée en complément d’une installation filaire traditionnelle.
En utilisant les ondes radio, l’émetteur (une commande sans fil) peut ainsi piloter un
récepteur (interrupteur, prise…).
L’avantage de la radiofréquence est qu’elle permet de faire évoluer une installation
électrique sans grands travaux.
Exemples de technologies radiofréquence :
KNX radio fréquence, Zigbee, EnOcean… ;
Solutions constructeurs telles que X3D de Delta Dore et MyHome RF de Legrand.
V. Conclusion :
Aujourd’hui la domotique devient simple et intuitive d’utilisation pour l’utilisateur final. Elle
se démocratise avec un coût rendu plus abordable et une offre attrayante qui s’enrichit
régulièrement.
2019-2020 30
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Chapitre 4 :
2019-2020 31
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
I. Introduction :
Aujourd’hui, l'électronique est de plus en plus remplacée par de l'électronique
programmée. On parle aussi de système embarqué ou d'informatique embarquée. Son but
est de simplifier les schémas électroniques et par conséquent réduire l’utilisation de
composants électroniques, réduisant ainsi le coût de fabrication d’un produit. Il en résulte des
systèmes plus complexes et performants pour un espace réduit. Depuis que l’électronique
existe, sa croissance est fulgurante et continue encore aujourd’hui.
L’électronique est devenue accessible à toutes personnes en ayant l’envie : ce que
nous allons apprendre dans ce travail est un mélange d'électronique et de programmation.
On va en effet parler d'électronique embarquée qui est un sous-domaine de l'électronique et
qui a l'habileté d'unir la puissance de la programmation à la puissance de l'électronique.
La domotique ouvre non seulement de nouvelles possibilités dans le domaine de
l'automatisation de l'habitation, mais constitue aussi et surtout un moyen offert à l'individu
de contrôler et de gérer son environnement. Grâce à cette nouvelle technologie, l'habitant
sera à même de mieux gérer son milieu de travail et de vie sur le plan de la sécurité, du confort,
des communications et des applications ménagères.
Structure de la maison :
La première étape consiste à créer une maison. Pour cela, nous avons dessiné la
structure principale, c’est-à-dire les murs extérieurs et le sol. La maquette est de taille de 60cm
sur 40 cm constitue d’une chambre, une cuisine, un garage, salle de bains, un salon, et une
salle de matérielles.
2019-2020 32
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2. Servomoteur
3. Capteur de gaz
4. Afficheur LCD
5. Buzzer
6. 3*4keypad
8. Ventilateur
10. LED
2019-2020 33
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
1. Servomoteur :
Un servomoteur… Étrange comme nom Il semblerait qu’il le porte bien puisque ces
moteurs, un peu particuliers, emportent avec eux une électronique de commande (faisant
office de « cerveau »). Le nom vient en fait du latin « servus » qui signifie esclave.
1.1 Définition :
Un servomoteur est un système qui a pour but de produire un mouvement précis en
réponse à une commande externe, C'est un actionneur (système produisant une action) qui
mélange l'électronique, la mécanique et l'automatique.
2019-2020 34
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Le servomoteur a besoin de trois fils de connexion pour fonctionner. Deux fils servent
à son alimentation, le dernier étant celui qui reçoit le signal de commande :
2019-2020 35
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
1.3 Fonctionnement :
Les servomoteurs sont commandés par l'intermédiaire d'un câble électrique à 3 fils
qui permettent d’alimenter le moteur et de lui transmettre des ordres de positions sous
forme d’un signal codé en largeur d'impulsion plus communément appelés PWM (Pulse Width
Modulation ou Modulation de Largeur d'Impulsion) ou RCO (Rapport Cyclique d’Ouverture).
Cela signifie que c'est la durée des impulsions qui détermine l'angle absolu de l'axe
de sortie et donc la position du bras de commande du servomoteur. Le signal est répété
périodiquement, en général toutes les 20 millisecondes, ce qui permet à l'électronique de
contrôler et de corriger continuellement la position angulaire de l'axe de sortie, cette dernière
étant mesurée par le potentiomètre.
2019-2020 36
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Le fil signale à faible courant peut être raccordé directement à une sortie du PIC, pas
besoin de circuit d'interface ;
On peut commander l'arrêt, la marche, le sens de rotation et la vitesse du
servomoteur à l'aide d'un seul fil, Economie d'E/S ;
Le servomoteur tourne à la bonne vitesse pour notre robot ;
Le servomoteur offre un couple important sous un volume réduit ;
Inconvénients :
2. Afficheur LCD
Tout d’abord que veut dire LCD ? LCD est l'abréviation du terme anglais "Liquid Crystal
Display " qui signifie en français "Écran à cristaux liquides". D’où afficheur LCD.
2.1 Définition Afficheur LCD :
L'afficheur LCD est en particulier une interface visuelle entre un système (projet) et
l'homme (utilisateur). Son rôle est de transmettre les informations utiles d'un système à un
utilisateur. Il affichera donc des données susceptibles d'être exploiter par l'utilisateur d'un
système.
Plusieurs afficheurs sont disponibles sur le marché et diffèrent les uns des autres, non
seulement par leurs dimensions, (de 1 à 4 lignes de 6 à 80 caractères), mais aussi par leurs
caractéristiques, techniques et leur tension de service. Certains sont dotés d'un rétro
éclairage de l'affichage. Cette fonction fait appel à des LED montées derrière l'écran du
module, cependant, cet éclairage est gourmand en intensité (de 80 à 250 mA). Ils sont très
utilisés dans les montages à microcontrôleur, et permettent une grande convivialité. Ils
peuvent aussi être utilisés lors de la phase de développement d'un programme, car on peut
facilement y afficher les valeurs de différentes variables. 4. Le connecteur de l’afficheur LCD :
2019-2020 37
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 38
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
4. Buzzer :
Ce module est utilisé pour déclencher une alarme s’il y a un danger dans notre maison
comme une fuite de gaz ou bien s’il y a une intrusion.
4.1 Description :
VCC Tension externe 3,3 V-5 V (peut être directement connecté au microcontrôleur 5
V et au microcontrôleur 3,3 V) ;
GND GND externe ;
Port E / S externe du microcontrôleur externe.
2019-2020 39
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
5.1 Description :
Ce composant permet de mesurer la température autour du capteur. Il est précis, peu
coûteux, très simple d'utilisation et extrêmement fiable. La température mesurée par le
capteur est proportionnelle à la tension sur la sortie analogique du capteur. Pour diminuer
l'écart entre la température réelle et la température mesurée, notamment aux extrêmes (vers
0° et vers 100°), il est conseillé de réaliser plusieurs mesures (une toutes les 40 ms maximums
d'après la doc, plutôt toutes les 250 ms) et de réaliser une moyenne de ces températures.
5.2 Applications :
2019-2020 40
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
6.1 Définition :
Le capteur à ultrasons HC-SR04 est capable de mesurer la distance des objets situés
de 2cm à 400cm du capteur avec une précision de 3mm. Le capteur est composé d’un
émetteur d’ultrasons, d’un récepteur et du circuit de commande.
6.2 Caractéristiques :
Dimensions : 45 mm x 20 mm x 15 mm ;
Plage de mesure : 2 cm à 400 cm ;
Résolution de la mesure : 0.3 cm ;
Angle de mesure efficace : 15 ° ;
Largeur d'impulsion sur l'entrée de déclenchement : 10 µs.
Broches de connexion :
Vcc = Alimentation +5 V DC ;
Trig = Entrée de déclenchement de la mesure (Trigger input) ;
Echo = Sortie de mesure donnée en écho (Echo output) ;
GND = Masse de l'alimentation.
Spécifications et limites :
6.3 Fonctionnement :
Il faut fournir un signal à l’état haut pendant 10µs à l’entrée de l’émetteur pour
déclencher la salve d’ultrasons. Le module envoie ensuite 8 cycles d’ultrasons à 40 kHz et
2019-2020 41
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
attend le signal reçu. Le récepteur reçoit un signal à l’état haut dont la durée est
proportionnelle à la distance de l’objet perçu.
La distance parcourue par un son se calcule en multipliant la vitesse du son, environ
340 m/s (ou 34'000 cm/1'000'000 µs) par le temps de propagation, soit : d = v · t (distance =
vitesse · temps).
Le HC-SR04 donne une durée d'impulsion en dizaines de µs. Il faut donc multiplier la
valeur obtenue par 10 µs pour obtenir le temps t. On sait aussi que le son fait un aller-retour.
La distance vaut donc la moitié.
d = 34000 cm /1000000µs * 10 µs * valeur /2 en simplifiant d =170'000 /1'000'000 cm
* valeur Finalement, d = 17/100 cm *valeur
7. Module Bluetooth :
7.1 Définition générale :
Bluetooth est une technologie de réseau personnel sans fils , c'est-à-dire une
technologie de réseaux sans fils d'une faible portée permettant de relier des appareils entre
eux sans liaison filaire. Il a vu le jour à la fin des années 1990 et n’a vraiment percé que dans
les années 2000. Il a subi de nombreuses révisions et évolutions pour Atteindre aujourd’hui
la version 4.1 depuis la fin 2013.
7.2 Fonctionnement de Bluetooth :
Le Bluetooth, comme le Wifi, se sert des ondes radios pour transmettre les
informations. C’est pour cette raison que placer un objet, voire un mur entre l’émetteur et le
récepteur n’empêche en aucun cas la bonne transmission des données. Le Bluetooth utilise la
bande 2,4 GHz, comme le Wifi encore une fois. Cette bande faisant partie des bandes de
fréquences dites ISM (Industrielles, Scientifiques, Médicales), elle ne nécessite pas de licence
pour être exploitée.
Toutefois, les similitudes avec le Wifi s’arrêtent là et les différences sont nombreuses.
Par la portée et la puissance tout d’abord. Le Bluetooth a principalement été conçu pour des
appareils mobiles, ne disposant pas nécessairement d’une alimentation secteur. Sa
2019-2020 42
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
consommation d’énergie est donc beaucoup plus faible, pour une portée bien plus restreinte.
La plupart des transmetteurs Bluetooth vendus sur le marché, dits “de classe II”, sont vendus
pour une portée maximale de 15 à 20 mètres… qui se limite dans la pratique bien souvent à
quelques mètres.
Par le débit également : les connexions Bluetooth les plus efficaces atteignent 24
Mb/s, en utilisant d’ailleurs la norme 802.11 comme son grand-frère, tandis que les meilleurs
connexions Wifi “classiques” dépassent aisément les 1 Gb/s (1024 Mb/s, 1000 de plus quoi…)
Et surtout, ils différent dans leur mode de fonctionnement. Le Bluetooth utilise le
principe des pico nets (pico-réseaux) pour la connexion : un appareil maître, et jusqu’à sept
appareils esclaves, qui ne peuvent pas communiquer entre eux. En réalité, l’appareil maître
ne peut maintenir la connexion qu’avec un seul des appareils, et alterne donc
l’envoi/réception des données à chacun d’entre eux… divisant ainsi le débit total disponible
par le nombre d’appareils connectés. La sécurité est également fondamentalement différente
de celle du Wifi. La recherche des périphériques disponibles à portée est automatique et
permanente. Quand un périphérique est trouvé la connexion est effectuée par un premier
appairage des deux appareils ne nécessitant qu’une authentification basique par code PIN.
Heureusement que la portée est faible… le Bluetooth est absolument inadapté au transfert
d’informations sensibles.
7.3 Les versions du Bluetooth :
Le problème avec le Bluetooth, c’est qu’il est facile de se perdre dans les méandres
des différentes normes utilisées au cours de l’évolution du protocole. Le Bluetooth SIG, à
l’origine du nom commercial du standard, a estampillé d’un numéro les différentes versions
de celui-ci. Pendant ce temps, l’IEEE en charge de la normalisation « officielle » des différents
protocoles, en a normalisé quelques-unes de son côté… mais pas toutes ! Enfin, plusieurs
protocoles additionnels et facultatifs peuvent accompagner certaines versions du Bluetooth:
Bluetooth 1.0 ;
Bluetooth 1.1 ;
Bluetooth 1.2 ;
Bluetooth 2.0/2.1 + EDR ;
Bluetooth 3.0 + HS ;
Bluetooth 4.0 + LE ;
Bluetooth 4.1/4.2/ .
HC-05 : 6 sorties. Ce module peut être « maître » (il peut proposer à un autre élément
Bluetooth de s’appairer avec lui) ou « esclave » (il ne peut que recevoir des demandes
d’appairage) ;
2019-2020 43
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Dans notre cas on va utiliser le module Bluetooth HC-05, ce module Bluetooth permet
de faire de la communication sans fil avec un ordinateur, Smartphone ou un autre module
Bluetooth.
9. Arduino méga :
Définition d’Arduino méga :
2019-2020 44
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Original Arduino Méga 2560 est une carte à microcontrôleur basée sur l’ATmega2560.
Il possède 54 broches d'E / S numériques (dont 14 peuvent être utilisées en tant que sorties
PWM), 16 entrées analogiques, 4 UART (interfaces matérielles en série), un oscillateur à
cristal de 16 MHz, une interface USB, une connexion d'alimentation, un en-tête ICSP et un
bouton de réinitialisation. Il contient tout ce dont vous avez besoin pour accompagner le
microcontrôleur. Connectez simplement la carte à un ordinateur via USB ou exécutez-la sur
un adaptateur CA / CC ou une batterie pour commencer.
9.1 Architecteur d’une carte Arduino méga :
Microcontrôleur : ATmega2560 ;
Tension de fonctionnement : 5V ;
Tension d'entrée (recommandée) : 7-12V ;
Tension d'entrée (limites) : 6-20V ;
2019-2020 45
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
9.2 Mémoire :
La carte Arduino Méga 2560 à 256 Ko de mémoire FLASH pour stocker le programme.
Elle a également 8 ko de mémoire SRAM (volatile) et 4 Ko d'EEPROM non volatile- mémoire
qui peut être lue à l'aide de la librairie EEPROM.h.
9.3 Entrées et sorties numériques :
Chacune des 54 broches numériques de la carte Arduino Méga 2560 peut être utilisée
soit comme une entrée numérique, soit comme une sortie numérique, en utilisant les
instructions pinMode (), digitalWrite () et digital Read () du langage Arduino. 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 KΩ.
9.4 Broches analogiques :
La carte Arduino Méga 2560 dispose de 16 entrées analogiques, chacune pouvant
fournir une mesure d'une résolution de 10 bits à l'aide de la très utile fonction analogRead ()
du langage Arduino. Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur
1023), mais il est possible de modifier la référence supérieure de la plage de mesure en
utilisant la broche AREF et l'instruction analogReference () du langage Arduino. Les broches
analogiques peuvent être utilisées en tant que broches numériques.
10.Autres broches :
Il y a deux autres broches disponibles sur la carte : - AREF : Tension de référence pour
les entrées analogiques (si différent du 5V). Utilisée avec l'instruction analogReference (). -
RESET : Mettre cette broche au niveau BAS entraîne la réinitialisation du microcontrôleur.
Typiquement, cette broche est utilisée pour ajouter un bouton de réinitialisation sur le
circuit qui bloque celui présent sur la carte.
10.1 Communications :
La carte Arduino Méga 2560 dispose de toute une série de facilités pour communiquer
avec un ordinateur, une autre carte Arduino, ou avec d'autres microcontrôleurs. Elle dispose
de 4 UARTs (Universal Asynchronous Receiver Transmitter ou émetteur-récepteur
asynchrone universel en français) pour communication série de niveau TTL (5V) et qui est
disponible sur les broches 0 (RX) et 1 (TX).
2019-2020 46
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
11.La LED :
La LED La Diode Electro Luminescente en Français (DEL) et Light-Emitting Diode en
Anglais (LED), est un dispositif capable d’émettre de la lumière lorsqu’elle est parcourue par
un courant électrique.
Elle est utilisée dans la construction des écrans plats de télévision : pour le rétro
éclairage des écrans à cristaux liquides ou comme source d'illumination principale dans les
télévisions à OLED.
L’interface de l’IDE Arduino est plutôt simple, il offre une interface minimale et épurée
pour développer un programme sur les cartes Arduino ou tous autres microcontrôleurs. Il est
doté d’un éditeur de code avec coloration syntaxique [1] et d’une barre d’outils rapide [2]. Ce
sont les deux éléments les plus importants de l’interface, c’est ceux que l’on utilise le plus
souvent. On retrouve aussi une barre de menus [3] plus classique qui est utilisé pour accéder
aux fonctions avancées de l’IDE. Enfin, une console [4] affichant les résultats de la compilation
du code source, des opérations sur la carte, c’est le débogueur.
2019-2020 47
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Proteus est une suite logicielle destinée à l'électronique. Développé par la société
Labcenter Electronics, les logiciels incluent dans Proteus permettent la CAO dans le domaine
électronique. Deux logiciels principaux composent cette suite logicielle : ISIS, ARES, PROSPICE
et VSM.
Cette suite logicielle est très connue dans le domaine de l'électronique. De
nombreuses entreprises et organismes de formation (incluant lycée et université) utilisent
cette suite logicielle. Outre la popularité de l'outil, Proteus possède d'autres avantages : Pack
contenant des logiciels facile et rapide à comprendre et utiliser. Le support technique est
performant. L'outil de création de prototype virtuel permet de réduire les coûts matériel et
logiciel lors de la conception d'un projet.
2019-2020 48
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Ouverture le garage.
2019-2020 49
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 50
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
#include <Arduino_FreeRTOS.h>
#include <SoftwareSerial.h> // librairie pour créer une nouvelle connexion série max 9600 baud
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>
2019-2020 51
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
void setup() {
// Salon task
xTaskCreate( TaskSalon
, "TaskSalon" // A name just for humans
, 128 // This stack size can be checked & adjusted by reading the Stack Highwater
, NULL
, 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest.
, NULL );
// Door task
xTaskCreate( TaskDoor
, "TaskDoor" // A name just for humans
, 128 // This stack size can be checked & adjusted by reading the Stack Highwater
, NULL
, 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest.
, NULL );
// AnalogSensor task
xTaskCreate( AnalogSensor
, "AnalogSensor" // A name just for humans
, 128 // This stack size can be checked & adjusted by reading the Stack Highwater
, NULL
, 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest.
, NULL );
// garage task
xTaskCreate( Taskgarage
, "Taskgarage" // A name just for humans
, 128 // This stack size can be checked & adjusted by reading the Stack Highwater
, NULL
, 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest.
, NULL );}
void loop(){}
//============================= =================
// Cuisine
void AnalogSensor(void *pvParameters) // voila la tache
{
2019-2020 52
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
(void) pvParameters;
(void) pvParameters;
lcd2.begin(16,2);
lcd2.print("MASTER SER");
delay(4000);
2019-2020 53
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
displayscreen();
Serial.begin(9600);
pinMode(buzz, OUTPUT);
myservo2.attach(9); //SERVO ATTACHED//pin7
unlockdoor();
currentposition=0;
}
}
else
{
++invalidcount;
incorrect();
currentposition=0;
}
if(invalidcount==5)
{
++invalidcount;
torture1();
}
if(invalidcount==8)
{
torture2();
}
}
2019-2020 54
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
// LOOP ENDS!!!//
}
}
//////////
void unlockdoor()
{
//delay(900);
vTaskDelay( 900 / portTICK_PERIOD_MS );
lcd2.setCursor(0,0);
lcd2.println(" ");
lcd2.setCursor(1,0);
lcd2.print("Access Granted");
lcd2.setCursor(4,1);
lcd2.println("WELCOME!!");
lcd2.setCursor(15,1);
lcd2.println(" ");
lcd2.setCursor(16,1);
lcd2.println(" ");
lcd2.setCursor(14,1);
lcd2.println(" ");
lcd2.setCursor(13,1);
lcd2.println(" ");
unlockbuzz ();
for(pos = 180; pos>=0; pos-=5) // goes from 180 degrees to 0 degrees
{
myservo2.write(pos); // tell servo to go to position in variable 'pos'
//delay(5); // waits 15ms for the servo to reach the position
vTaskDelay( 5 / portTICK_PERIOD_MS );
}
//delay(2000);
vTaskDelay( 2000 / portTICK_PERIOD_MS );
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
counterbeep();
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
for(pos = 0; pos <= 180; pos +=5) // goes from 0 degrees to 180 degrees
{
// in steps of 1 degree
myservo2.write(pos); // tell servo to go to position in variable 'pos'
//delay(15);
vTaskDelay( 15 / portTICK_PERIOD_MS );
currentposition=0;
lcd2.clear();
displayscreen();
}
}
//****WRONG CODE FUNCTION*****//
void incorrect ()
{
//delay (500);
vTaskDelay( 500 / portTICK_PERIOD_MS );
2019-2020 55
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
lcd2.clear();
lcd2.setCursor(1,0);
lcd2.print("CODE");
lcd2.setCursor(6,0);
lcd2.print("INCORRECT");
lcd2.setCursor(15,1);
lcd2.println(" ");
lcd2.setCursor(4,1);
lcd2.println("GET AWAY!!!");
lcd2.setCursor(13,1);
lcd2.println(" ");
Serial.println("CODE INCORRECT YOU ARE UNAUTHORIZED");
//delay(3000);
vTaskDelay( 3000 / portTICK_PERIOD_MS );
lcd2.clear();
digitalWrite(buzz,LOW);
displayscreen();
}
//**** CLEAR THE SCREEN!!!****//
void clearscreen()
{
lcd2.setCursor(0,0);
lcd2.println(" ");
lcd2.setCursor(0,1);
lcd2.println(" ");
lcd2.setCursor(0,2);
lcd2.println(" ");
lcd2.setCursor(0,3);
lcd2.println(" ");
}
//****KEYPRESS*****//
void keypress()
{
digitalWrite(buzz, HIGH);
//delay(50);
vTaskDelay( 50 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
}
//****DISPALAY FUNCTION!!!*******//
void displayscreen()
{
lcd2.setCursor(0,0);
lcd2.println("ENTER THE CODE");
lcd2.setCursor(1 ,1);
lcd2.println("TO / (OPEN)!!");
}
//*** ARM SERVO**********//
void armservo()
{
for (pos=180;pos<=180;pos+=50)
{
2019-2020 56
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
myservo2.write(pos);
//delay(5);
vTaskDelay( 5 / portTICK_PERIOD_MS );
}
//delay(5000);
vTaskDelay( 5000 / portTICK_PERIOD_MS );
for(pos=180;pos>=0;pos-=50)
{
myservo2.write(pos);
}
}
//****UNLOCK BUZZ*****//
void unlockbuzz()
{
digitalWrite(buzz, HIGH);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
//delay(200);
vTaskDelay( 200 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
//delay(80);
vTaskDelay( 80 / portTICK_PERIOD_MS );
}
//***COUNTER BEEP*****//
void counterbeep()
{
//delay(1200);
vTaskDelay( 1200 / portTICK_PERIOD_MS );
lcd2.clear();
digitalWrite(buzz, HIGH);
lcd2.setCursor(2,15);
lcd2.println(" ");
lcd2.setCursor(2,14);
lcd2.println(" ");
lcd2.setCursor(2,0);
//delay(200);
vTaskDelay( 200 / portTICK_PERIOD_MS );
2019-2020 57
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
lcd2.println("GET IN WITHIN:::");
lcd2.setCursor(4,1);
lcd2.print("5");
//delay(200);
vTaskDelay( 200 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
//2
digitalWrite(buzz, HIGH);
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
lcd2.setCursor(4,1); //2
lcd2.print("4");
//delay(100);
vTaskDelay( 100 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
//3
digitalWrite(buzz, HIGH);
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
lcd2.setCursor(4,1); //3
lcd2.print("3");
//delay(100);
vTaskDelay( 100 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
//4
digitalWrite(buzz, HIGH);
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
lcd2.setCursor(4,1); //4
lcd2.print("2");
//delay(100);
vTaskDelay( 100 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.println("GET IN WITHIN:");
digitalWrite(buzz,LOW);
//delay(1000);
2019-2020 58
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 59
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
lcd2.clear();
lcd2.setCursor(4,0);
lcd2.print("LOCKED!");
//delay(440);
vTaskDelay( 440 / portTICK_PERIOD_MS );
}
//***TORTURE1****//
void torture1()
{
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.print("WAIT FOR ");
lcd2.setCursor(5,1);
lcd2.print("15 SECONDS");
digitalWrite(buzz, HIGH);
//delay(15000);
vTaskDelay( 15000 / portTICK_PERIOD_MS );
digitalWrite(buzz, LOW);
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.print("LOL..");
lcd2.setCursor(1,1);
lcd2.print(" HOW WAS THAT??");
//delay(3500);
vTaskDelay( 3500 / portTICK_PERIOD_MS );
lcd2.clear();
}
//****TORTURE2*****//
void torture2()
{
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
lcd2.setCursor(1,0);
lcd2.print(" ");
lcd2.setCursor(2,0);
lcd2.print("EAR DRUMS ARE");
lcd2.setCursor(0,1);
lcd2.print(" PRECIOUS!! ");
//delay(1500);
vTaskDelay( 1500 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(1,0);
lcd2.print(" WAIT FOR");
lcd2.setCursor(4,1);
lcd2.print(" 1 MINUTE");
digitalWrite(buzz, HIGH);
2019-2020 60
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
//delay(55000);
vTaskDelay( 55000 / portTICK_PERIOD_MS );
counterbeep();
lcd2.clear();
digitalWrite(buzz, LOW);
lcd2.setCursor(2,0);
lcd2.print("WANT ME TO");
lcd2.setCursor(1,1);
lcd2.print("REDICULE MORE??");
//delay(2500);
vTaskDelay( 2500 / portTICK_PERIOD_MS );
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.print("Ha Ha Ha Ha");
//delay(1700);
vTaskDelay( 1700 / portTICK_PERIOD_MS );
lcd2.clear();
}
//======================== ======================
// SALON
void TaskSalon(void *pvParameters) // This is a task.
{
(void) pvParameters;
2019-2020 61
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
//Warte
// garage
void Taskgarage (void *pvParameters) // This is a task.
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = 0.034*(duration/2);
Serial.print("Distance : ");
Serial.println(distance);
if (distance < 27)
{
digitalWrite(led,HIGH);
myservo3.write(pos+160);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
}
else{
digitalWrite(led,LOW);
myservo3.write(posG);
vTaskDelay( 300 / portTICK_PERIOD_MS );
}
}
}
2019-2020 62
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
V. Conclusion :
Dans ce chapitre, nous avons présenté en détail les besoins de notre projet.
En effet, fabriquer cette maison a nécessité des compétences dans plusieurs secteurs
d'activités : l'informatique, l'électronique, les matériaux, le génie civil, même si cela est à une
moindre échelle.
Possible de faire de la domotique à moindre coût au prix de quelques efforts. Il
conviendra, cependant, d'élargir le nombre de modules, en gardant à l’esprit qu’i y a des
modules qui sont couteux et gourmands en énergie. Les seules limitations restent
l'imagination et les connaissances techniques.
2019-2020 63
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
CONCLUSION GENERALE :
Nous avons fabriqué une maison dite « intelligente ». Effectivement, dans le cadre du
thème de la domotique, nous avons conçu une maison automatisée. Elle est capable de gérer
l'éclairage des chambres et les portes, de prévenir en cas d'incendie ou dans le cas de fuite
de gaz aussi surveillé l'état de la température et l'humidité. Cependant, les fonctionnalités ne
se restreignent pas à celles-ci et d'autres peuvent être ajoutées grâce à un système de
centralisation. Nous sommes unanimes pour dire que ce projet nous a permis de nous amuser
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 un secteur que nous ne connaissions pas vraiment et
qui nous a intéressés de plus en plus au fur et à mesure que nous approfondissions nos
recherches. En plus de l’expérience humaine, la rencontre avec des professionnels travaillant
dans la domotique nous a permis de recueillir des informations techniques et des explications
nécessaires à la compréhension du principe de fonctionnement de certaine technologie.
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 tache qi peut être
amélioré.
et nous avons également découvert qu'il existe un certain nombre de fonctionnalités
pour FreeRTOS parmi ses fonctionnalités : des tâches préemptives, un support de 23
architectures de microcontrôleurs1 par ses développeurs, un faible encombrement2 (4,3 Ko
sur un ARM7 après compilation3), écrit en C et compilé avec divers compilateurs C . Il permet
également à un nombre illimité de tâches d'exécuter en même temps et aucune limitation de
leurs priorités tant que le matériel utilisé peut se le permettre. Enfin, il implémente des files
d'attente, des sémaphores binaires et de comptage et des mutex.
2019-2020 64
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
Annexes et Programmes :
Découvrir Arduino :
2019-2020 65
Mini projet : Gestion d’une maison intelligente avec FreeRTOS
2019-2020 66