You are on page 1of 66

Royaume de Maroc

Université Abdelmalek Essaadi


Faculté des Sciences et Techniques
Al Hoceima

Master Sciences et Techniques

Filière de Systèmes Embarqués et Robotique

Semestre 2

Mini Projet
Gestion d’une maison intelligente avec FreeRTOS

Réalisé par : Encadré par :


ZALLOUGH Younes Mme. DIB Faiza
CHIHI Mohamed
TOUTOUH Chaima
BOUDJAJ Maryame
GOUIZA Nisrine
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Table des matières :


Table des matières : ---------------------------------------------------------------------------------------------------------- 2
Liste des figures :-------------------------------------------------------------------------------------------------------------- 5
liste des tableaux : ------------------------------------------------------------------------------------------------------------ 5
INTRODUCTION GENERALE ------------------------------------------------------------------------------------------------- 6
Chapitre1 :---------------------------------------------------------------------------------------------------------------------- 7
Un système embarqué en temps réel ------------------------------------------------------------------------------- 7
I. Introduction : ----------------------------------------------------------------------------------------------------- 8
II. Généralités sur les systèmes embarqués : ---------------------------------------------------------------- 8
1. Définition : ----------------------------------------------------------------------------------------------------- 8
2. Les types de systèmes embarqués : --------------------------------------------------------------------- 8
3. Principales caractéristiques d'un système embarqué : --------------------------------------------- 9
4. Classification des systèmes embarqués : --------------------------------------------------------------- 9
5. Quelques exemples de systèmes embarqués :------------------------------------------------------ 11
III. Les systèmes embarqués en temps réel : ------------------------------------------------------------ 12
1. Définition : --------------------------------------------------------------------------------------------------- 12
2. Types d'événement dans les systèmes temps réel : ----------------------------------------------- 12
3. Principales caractéristiques des systèmes temps réel : ------------------------------------------- 13
4. Architecture physique : ----------------------------------------------------------------------------------- 14
IV. Conclusion : -------------------------------------------------------------------------------------------------- 17
Chapitre2 :-------------------------------------------------------------------------------------------------------------------- 18
Un système d’exploitation FreeRTOSS ---------------------------------------------------------------------------- 18
I. Introduction : --------------------------------------------------------------------------------------------------- 19
II. Système d’exploitation temps réel (FreeRTOS) :------------------------------------------------------- 19
1. Définition : --------------------------------------------------------------------------------------------------- 19
2. Pourquoi un système d’exploitation temps réel : -------------------------------------------------- 19
3. Types de conceptions : ------------------------------------------------------------------------------------ 19
4. Les contraintes : -------------------------------------------------------------------------------------------- 20
5. Les différents types de RTOS : --------------------------------------------------------------------------- 20
6. Choix d’un RTOS :------------------------------------------------------------------------------------------- 21
III. La théorie de l'ordonnancement : ---------------------------------------------------------------------- 21
1. Définition : --------------------------------------------------------------------------------------------------- 21
2. Les contraintes : -------------------------------------------------------------------------------------------- 22
3. Les objectifs : ------------------------------------------------------------------------------------------------ 22
4. Critères de performance de l’ordonnancement : -------------------------------------------------- 23

2019-2020 2
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

IV. Conclusion : -------------------------------------------------------------------------------------------------- 23


Chapitre 3 : ------------------------------------------------------------------------------------------------------------------- 24
La Domotique ------------------------------------------------------------------------------------------------------------ 24
I. Introduction : --------------------------------------------------------------------------------------------------- 25
II. La Domotique : ------------------------------------------------------------------------------------------------- 25
1. Définition : --------------------------------------------------------------------------------------------------- 25
2. Les applications de la Domotique :--------------------------------------------------------------------- 25
3. Le principe de fonctionnement :------------------------------------------------------------------------ 25
4. Cibler les 5 fonctions de la Domotique : -------------------------------------------------------------- 26
5. L’utilisation de la Domotique : -------------------------------------------------------------------------- 27
III. Les usages de la domotique : ---------------------------------------------------------------------------- 27
1. La sécurité : -------------------------------------------------------------------------------------------------- 27
2. Confort et simplicité : ------------------------------------------------------------------------------------- 27
3. Économie et performances énergétiques : ---------------------------------------------------------- 28
4. Communication et multimédia : ------------------------------------------------------------------------ 28
IV. Les technologies utilisées pour la domotique : ----------------------------------------------------- 28
1. La technologie bus filaire : ------------------------------------------------------------------------------- 28
2. Le courant porteur en ligne (CPL): --------------------------------------------------------------------- 29
3. La radiofréquence : ---------------------------------------------------------------------------------------- 30
V. Conclusion : ----------------------------------------------------------------------------------------------------- 30
Chapitre 4 : ------------------------------------------------------------------------------------------------------------------- 31
Description de projet -------------------------------------------------------------------------------------------------- 31
I. Introduction : --------------------------------------------------------------------------------------------------- 32
II. Cahier de charge : --------------------------------------------------------------------------------------------- 32
III. Composons utiliser : --------------------------------------------------------------------------------------- 33
1. Servomoteur : ----------------------------------------------------------------------------------------------- 34
1.1 Définition : --------------------------------------------------------------------------------------------- 34
1.2 Composition d’un servomoteur : ---------------------------------------------------------------- 34
1.3 Fonctionnement : ------------------------------------------------------------------------------------ 36
1.4 Avantages et inconvénients du servomoteur : ----------------------------------------------- 37
2. Afficheur LCD ------------------------------------------------------------------------------------------------ 37
2.1 Définition Afficheur LCD : ------------------------------------------------------------------------------- 37
3. Capteur de gaz MQ2 : ------------------------------------------------------------------------------------- 38
3.1 description produit : -------------------------------------------------------------------------------- 39
4. Buzzer :-------------------------------------------------------------------------------------------------------- 39
4.1 Description :------------------------------------------------------------------------------------------------ 39

2019-2020 3
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

4.2 Description des broches 3 fils : ------------------------------------------------------------------------ 39


5. Capteur de la température LM35DZ : ----------------------------------------------------------------- 40
5.1 Description :------------------------------------------------------------------------------------------------ 40
5.2 Applications : ---------------------------------------------------------------------------------------------- 40
6. Capteur ultrason HC-SR04 : ------------------------------------------------------------------------------ 40
6.1 Définition : -------------------------------------------------------------------------------------------------- 41
6.2 Caractéristiques : ----------------------------------------------------------------------------------------- 41
6.3 Fonctionnement : ----------------------------------------------------------------------------------------- 41
7. Module Bluetooth : ---------------------------------------------------------------------------------------- 42
7.1 Définition générale : ------------------------------------------------------------------------------------- 42
7.2 Fonctionnement de Bluetooth : ----------------------------------------------------------------------- 42
7.3 Les versions du Bluetooth :----------------------------------------------------------------------------- 43
7.4 Les modules Bluetooth : -------------------------------------------------------------------------------- 43
8. Clavier de sécurité (3*4Key Pad) : ---------------------------------------------------------------------- 44
9. Arduino méga : ---------------------------------------------------------------------------------------------- 44
9.1 Architecteur d’une carte Arduino méga : ----------------------------------------------------------- 45
9.2 Mémoire :--------------------------------------------------------------------------------------------------- 46
9.3 Entrées et sorties numériques : ----------------------------------------------------------------------- 46
9.4 Broches analogiques : ----------------------------------------------------------------------------------- 46
10. Autres broches : ----------------------------------------------------------------------------------------- 46
10.1 Communications : --------------------------------------------------------------------------------------- 46
11. La LED :----------------------------------------------------------------------------------------------------- 47
IV. Réalisation avec FreeRTOS : ----------------------------------------------------------------------------- 47
1. Logiciels ------------------------------------------------------------------------------------------------------- 47
1.1 Arduino : ----------------------------------------------------------------------------------------------- 47
1.2 Proteus 8 Professional : ---------------------------------------------------------------------------- 48
2. Réalisation avec FreeRtos :------------------------------------------------------------------------------- 48
2.1 Cycle de fonctionnement : ----------------------------------------------------------------------------- 48
2.2 Moniteur série : ------------------------------------------------------------------------------------------- 50
2.3 Code source: ----------------------------------------------------------------------------------------------- 51
V. Conclusion : ----------------------------------------------------------------------------------------------------- 63
CONCLUSION GENERALE : ------------------------------------------------------------------------------------------------ 64
Annexes et Programmes : ------------------------------------------------------------------------------------------------ 65

2019-2020 4
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Liste des figures :

Figure 1: présente quelques images d'appareils équipés de système embarqué.-------------------------- 11


Figure 2: donne une représentation de l'afflux des événements dans les trois classes. ------------------ 13
Figure 3: Exemple d’une application de contrôle-commande d’un moteur à combustion. -------------- 14
Figure 4: Architecture générique d'un système temps réel. ----------------------------------------------------- 15
Figure 5: Architecture d'un système temps réel distribué dans une voiture moderne. ------------------- 16
Figure 6: Architecture logicielle d’une application de contrôle-commande multitâche. ----------------- 17
Figure 7 : représente l’utilité des Smartphones et les Tablettes dans la Domotique ---------------------- 27
Figure 8 : Le schéma rend compte de l’installation avec une technologie BUS. ---------------------------- 29
Figure 9: représente L’installation de réseaux électrique existante.------------------------------------------- 30
Figure 10: Plan de la maison intelligente.----------------------------------------------------------------------------- 33
Figure 11: servomoteur. -------------------------------------------------------------------------------------------------- 34
Figure 12: schéma représentatif des composants de servomoteur à l’intérieur et extérieur. ---------- 35
Figure 13: les fils de servomoteur. ------------------------------------------------------------------------------------- 35
Figure 14: Principe d’un signal de commande par PWM. --------------------------------------------------------- 36
Figure 15: Exemples des signaux PWM-------------------------------------------------------------------------------- 36
Figure 16: afficheur LCD --------------------------------------------------------------------------------------------------- 37
Figure 17: connecteur de l’afficheur LCD ----------------------------------------------------------------------------- 38
Figure 18: Capteur de gaz MQ. ------------------------------------------------------------------------------------------ 39
Figure 19: Buzzer. ----------------------------------------------------------------------------------------------------------- 39
Figure 20: Capteur d’humidité DHT11. -------------------------------------------------------------------------------- 40
Figure 21: Capteur ultrason HC-SR04. --------------------------------------------------------------------------------- 40
Figure 22: fonctionnement de capteur ultrason HC-SR04. ------------------------------------------------------- 41
Figure 23: La communication entre les différents appareils par Bluetooth ---------------------------------- 42
Figure 24: module Bluetooth HC-05 ----------------------------------------------------------------------------------- 44
Figure 25: key pad. --------------------------------------------------------------------------------------------------------- 44
Figure 26: carte Arduino -------------------------------------------------------------------------------------------------- 45
Figure 27: Architecteur d’une carte Arduino. ------------------------------------------------------------------------ 45
Figure 28: Diode Electro Luminescente ------------------------------------------------------------------------------- 47
Figure 29: IDE Arduino. ---------------------------------------------------------------------------------------------------- 48
Figure 30: Proteus 8 -------------------------------------------------------------------------------------------------------- 48
Figure 31: application de détecteur de gaz. -------------------------------------------------------------------------- 49
Figure 32: réalisation ------------------------------------------------------------------------------------------------------ 50
Figure 33: réalisation ------------------------------------------------------------------------------------------------------ 50

liste des tableaux :

Tableau 1: Classification des systèmes embarqués.---------------------------------------------------------------- 10


Tableau 2: Nomenclature du connecteur de l’afficheur LCD.. --------------------------------------------------- 38

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é.

II. Généralités sur les systèmes embarqués :


1. Définition :
Un système embarqué est un système informatique dont les moyens de calcul sont
embarqués sur le procédé contrôlé. Le fait d’embarquer les moyens de calcul implique, en
plus des contraintes d’encombrement (taille, poids, forme), des contraintes de consommation
d’énergie puisque l’alimentation électrique des éléments de calcul est soit embarquée
(batteries, carburant, etc.), soit ambiante (panneaux solaires, etc.). À technologie équivalente,
l’énergie consommée par un calculateur est fonction du carré de la vitesse de celui-ci ; en
d’autres termes, plus le calculateur est performant, plus l’énergie consommée est importante,
avec une relation quadratique.

Un système embarqué se caractérise donc souvent par des ressources de calcul


dimensionnées (ou à dimensionner) au plus juste en fonction des besoins en calcul. Un
système temps réel est un système informatique soumis à des contraintes de temps. Une
définition du temps réel peut être : « Un système est dit temps réel si l’exactitude des
applications ne dépend pas seulement du résultat mais aussi du temps auquel ce résultat est
produit ».
Un système embarqué est un système servant à résoudre des fonctions et des tâches
spécifiques et limitées. Associé à contraintes en temps réel

Souvent conçu en matériel avec des parties en logiciel ;


La complexité du système et des fonctions varient largement ;
Contrôleur d’un lave-vaisselle ;
Portable MP3 ;
Contrôleur de missiles ;
Le logiciel est utilisé pour la flexibilité ;
Le matériel est utilisé pour la performance et la consommation.

2. Les types de systèmes embarqués :


On trouve quatre types de systèmes embarqués en fonction du type d'application
visé :
Les systèmes embarqués à usage général exécutent des applications similaires à celles
exécutées sur des ordinateurs « traditionnels », mais ils sont embarqués dans des
packages de petite taille. On a, par exemple, les assistants personnels (PDA) et les
guichets automatiques bancaires (ATM) ;

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 .

3. Principales caractéristiques d'un système embarqué :


Les caractéristiques principales d'un système électronique embarqué sont :
Autonomes. Une fois enfouis dans l'application ils ne sont (le plus souvent) plus
accessibles ;
Temps réel. Les temps de réponses de ces systèmes sont aussi importants que
l'exactitude des résultats ;
Réactifs. Il doit réagir à l'arrivée d'informations extérieures non prévues.

4. Classification des systèmes embarqués :

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

Tableau 1: Classification des systèmes embarqués.

2019-2020 10
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

5. Quelques exemples de systèmes embarqués :

Les systèmes embarqués couvrent tous les aspects de la vie moderne et il existe
de nombreux exemples de leur utilisation.

La consommable électronique : les assistants numériques personnels (PDA), lecteurs


mp3, appareils photo numériques, lecteurs DVD, récepteurs GPS ;
La domotique : contrôle de l'éclairage, la climatisation, la sécurité, l'audiovisuel…etc ;
Transport : Automobile, Aéronautique (avionique) …etc ;
Spatiale : fusée, satellite artificiel, sonde spatiale…etc ;
Militaire : missile, radar, vision nocturne…etc ;
Télécommunication : Set-top box, téléphonie, routeur, pare-feu, serveur, passerelles,
téléphone portable…etc ;
Électroménager : télévision, four à micro-onde, lave-linge, lave-vaisselle ;
Impression : imprimante multifonction, photocopieur…etc ;
Informatique : disque dur, Lecteur CD…etc ;
Multimédia : console de jeux vidéo, TVHD, PVR (Personal Video Recorder) ;
Guichet Automatique Bancaire (GAB) ;
Équipement médical ;
Automate programmable industriel ;
Métrologie.

Figure 1: présente quelques images d'appareils équipés de système embarqué.

2019-2020 11
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

III. Les systèmes embarqués en temps réel :


1. Définition :
Il existe une définition sur le temps réel selon laquelle ''un système temps réel, n'est
pas tel, si des données sont présentées au système, lui permettant de calculer pour une
période de temps indéterminée, puis de fournir les résultats en sortie. Les résultats en sortie
doivent absolument être disponibles en temps opportun, et le processeur (ou les processeurs)
doit être capable de choisir avec soin les tâches spécialement ordonnancées pour que les
délais en temps soit respectés.
Un système temps réel est un système dans lequel les performances ne dépendent pas
seulement de l'exactitude des résultats, mais aussi du temps dans lesquels ils sont fournis.''. Il
n'existe pas de définition commune pour tous les chercheurs pour un système temps réel, à
cause de la diversité des domaines dans lesquels le temps réel est impliqué, quoique les
qualifications suivantes soient communément acceptées :

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.

2. Types d'événement dans les systèmes temps réel :


Les événements qui sont en mesure d'être traités par un système temps réel peuvent
être classés en trois catégories : les événements périodiques, les événements apériodiques et
les événements sporadiques. Les événements périodiques s'affluent selon un laps de temps
constant (appelé période). Tandis que les événements apériodiques ne possèdent pas de
période, ainsi ils ne suivent aucune règle dans le temps et arrivent d'une façon totalement
aléatoire. De même, les événements sporadiques ne suivent aucune période dans le temps,
mais contrairement aux événements apériodiques, lors de l'avènement d'un événement, un
laps de temps minimal doit s'écouler pour que l'événement suivant puisse se manifester.

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.

3. Principales caractéristiques des systèmes temps réel :


Considérons un exemple représentatif d’une application temps réel de contrôle-
commande représenté sur (la figure 2), Cet exemple de contrôle-commande d’un moteur à
combustion est repris de façon détaillée dans le chapitre suivant. Le contrôle-commande de
cette application est fait par l’intermédiaire d’un ensemble de capteurs et d’actionneurs
(pédale d’accélérateur, température air, pression air, température eau, rotation vilebrequin,
capteurs de pollution, injection essence, allumage, admission air, etc.) et d’une connexion au
réseau interne à l’automobile. L’analyse de cet exemple d’application permet de mettre en
exergue les principales caractéristiques des systèmes de contrôle-commande :

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

Prise en compte des comportements concurrents : l’ensemble de ces données


physiques qui arrivent de l’extérieur et le réseau qui permet de recevoir des messages
ne sont pas synchronisés au niveau de leurs évolutions, par conséquent, le système
informatique doit être capable d’accepter ces variations simultanées des paramètres ;

Respect des contraintes temporelles : la caractéristique précédente impose de la part


du système informatique d’avoir une réactivité suffisante pour prendre en compte
tous ces comportements concurrents et en réponse à ceux-ci, de faire une commande
en respectant un délai compatible avec la dynamique du système ;
Sûreté de fonctionnement : les systèmes de type contrôle-commande mettent
souvent en jeu des applications qui demandent un niveau important de sécurité pour
raisons de coût ou de vies humaines. Pour répondre à cette demande, il est nécessaire
de mettre en œuvre toutes les réponses de la sûreté de fonctionnement
(développements sûrs, tests, méthodes formelles, prévisibilité, déterminisme,
continuité de service, tolérance aux fautes, redondance, ségrégation des moyens de
calcul et de communication, etc.).

Figure 3: Exemple d’une application de contrôle-commande d’un moteur à combustion.

4. Architecture physique :

L'architecture physique comme son nom l'indique définie l’architecture matérielle du


système, prise en charge généralement par un groupe de concepteurs matériel.
Contrairement à la conception logicielle qui est-elle prise par un tout autre groupe de
concepteurs logiciel. Pour une bonne conception du système, les deux groupes doivent être
en relation constante l'un avec l'autre tout au long du cycle de développement, en raison de
prendre des décisions communes sur les différents points qui impliquent les deux parties.
L'architecture physique a pour rôle de définir les composants matériels, comme les unités de
calcul, les mémoires, les supports de communication, les capteurs... et leurs distributions
spatiales.

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.

Figure 4: Architecture générique d'un système temps réel.

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 :

La distribution physique de l'application ;


Les exigences de calcul qui peuvent ne pas être facilement assuré par un seul
processeur ;
Le besoin de redondance pour répondre à la disponibilité, la fiabilité, ou d'autres
exigences en matière de sécurité ;
Afin de réduire le câblage du système.

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.

1. Multitâche des applications en temps réel :


Nous pouvons définir la tâche ou activité ou processus comme « une entité d’exécution
et de structuration de l’application ». Cette architecture logicielle multitâche facilite la
conception et la mise en œuvre et surtout augmente l’évolutivité de l’application réalisée.
D’une manière très générique, la figure 6 donne l’architecture logicielle d’une application de
contrôle-commande multitâche et nous pouvons ainsi découper cet ensemble de tâches ou
activités selon les groupes suivants :

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

complexes et coûteuses en temps de calcul si l’interface gérée est de taille importante


(tableau de bord) ou de type graphique (représentation 3D) ;

Figure 6: Architecture logicielle d’une application de contrôle-commande multitâche.

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 ;

Tâches de sauvegarde : ces tâches permettent de stocker l’état du système à des


instants fixés. Cette sauvegarde peut être utilisée a posteriori pour analyser le
fonctionnement de l’application ou lors d’une reprise d’exécution à une étape
précédente.

Après l’analyse et la conception de l’application, nous obtenons un ensemble de tâches


ou activités qui coopèrent afin de réaliser le contrôle-commande du procédé géré. Ces tâches
appartiennent aux différents groupes listés précédemment : tâches d’entrées/sortie, tâches
de traitement, tâches de gestion de l’interface utilisateur, tâches de communications et tâches
de sauvegarde.

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.

II. Système d’exploitation temps réel (FreeRTOS) :


1. Définition :
Un système d'exploitation ou Operating System (OS) est un programme qui agit
comme un intermédiaire entre l'utilisateur et la machine.
Son but est de fournir un environnement dans lequel un utilisateur peut exécuter des
programmes et son rôle est de coordonner l'exécution simultanée de plusieurs taches
utilisateurs.
Il doit répartir les ressources du système telles que le CPU, la mémoire, les
périphériques. Il a aussi pour rôle de fournir des services tels que la communication entre
processus, la synchronisation, l'affichage, … .

2. Pourquoi un système d’exploitation temps réel :


Un Système d'Exploitation Temps Réel ou Real Time Operating System (RTOS) est
utilisé quand il y a des exigences temporelles fixe sur les opérations d'un processeur ou sur le
flux de données
Il possède des contraintes de temps fixes et bien définies : le traitement doit être
effectué dans la contrainte de temps sinon le système échoue.
La gestion d'un airbag est temps réelle : quand un capteur détecte une déformation de
la carrosserie suffisamment importante, il envoie un signal au contrôleur qui doit avoir gonflé
les airbags dans les 10 ms sous peine d'arriver trop tard ce qui aurait des conséquences
désastreuses pour les occupants de la voiture.
Un RTOS permet de réaliser un système complexe à l'aide de petites taches simples.
Ces petites taches permettent de répondre rapidement à des évènements importants tout en
définissant une priorité des taches à effectuer.

3. Types de conceptions :
On a deux types de conceptions qui sont :

événementielle (ordonnancement par priorité) : l'ordonnanceur ne change de tâche que


lorsqu'un événement de plus haute priorité a besoin de service ;
par partage de tâche : L'ordonnanceur change de tâche aux interruptions de l'horloge, et
lors des événements.

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.

5. Les différents types de RTOS :


Les différents types de RTOS Il convient avant tout de préciser les différences entre
Noyau, Exécutif et Système d‘Exploitation temps réel :

 Un noyau temps réel :


Est le minimum logiciel pour pouvoir faire du temps réel : Ordonnanceur, gestion de tâches,
communications inter-tâches (un système plutôt limité mais performant) ;

 Exécutif temps réel :


Un exécutif temps réel possède un noyau temps réel complété de modules/bibliothèques
pour faciliter la conception d'applications temps réel : gestion mémoire, gestion des E/S,
gestion de timers, gestion d'accès réseau, gestion de fichiers. Nécessité d’une machine hôte
(HOST) et de son environnement de développement croisé (compilateur C croisé, utilitaires,
debugger) ainsi que du système cible (TARGET) ;

 Système d'exploitation temps réel :


Un système d'exploitation temps réel est le cas particulier où l'on a confusion entre le système
hôte et le système cible qui ne font plus qu'un. On a donc ici un environnement de
développement natif ;

2019-2020 20
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

6. Choix d’un RTOS :


Les concepteurs des systèmes embarqués temps réel doivent maîtriser le
comportement et les performances des parties Soft et Hard 2 ;
Un RTOS doit être déterministe et garantir :
 Temps de latence max d’interruption (Worst-Case Interrupt Latency)
 Temps de changement de contexte (Switch Context)
 L’exécution des appels systèmes doivent être calculable (Utilisation de la
technique d’analyse : Rate Monotonic Scheduling proposée par David
STEWART) ;
Un fournisseur sérieux de système RTOS doit publier un Datasheet présentant :
 Le min, la moyenne et le max de nombre de cycles exigés par les appels
systèmes.
 Temps de latence d’une interruption.
 Temps entre l’arrivée d’une interruption et le début d’exécution de la routine
associée (ISR).
 Temps alloué pour le changement de contexte ;
Expérience du constructeur de RTOS :
 Partenaires industriels.
 Applications réalisées.
 Chiffre d’affaire.

III. La théorie de l'ordonnancement :


C’est une branche de la recherche opérationnelle qui s'intéresse au calcul de dates
d'exécution optimales de tâches. La théorie de l'ordonnancement Un problème
d'ordonnancement peut être considéré comme un sous-problème de planification dans
lequel il s'agit de décider de l'exécution opérationnelle des tâches planifiées.

1. Définition :
Un problème d'ordonnancement consiste à organiser dans le temps :

La réalisation de tâches, compte tenu de contraintes temporelles (délais, contraintes


d'enchaînement) et de contraintes portant sur la disponibilité des ressources requises ;
En production (manufacturière, de biens, de service), on peut le présenter comme un
problème où il faut réaliser le déclenchement et le contrôle de l'avancement d'un
ensemble de commandes à travers les différents centres composant le système ;
Un ordonnancement constitue une solution au problème d'ordonnancement. Il est
défini par le planning d'exécution des tâches (« ordre » et « calendrier ») et d'allocation
des ressources ;
Une tâche est une entité élémentaire localisée dans le temps par une date de début et/ou de
fin, dont la réalisation nécessite une durée, et qui consomme un moyen selon une certaine
intensité ;

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 :

Les contraintes temporelles :


les contraintes de temps alloué, issues généralement d'impératifs de gestion et
relatives aux dates limites des tâches (délais de livraisons, disponibilité des
approvisionnements) ou à la durée totale d'un projet ;
les contraintes de cohérence technologique, ou contraintes de gammes, qui décrivent
des relations d'ordre entre les différentes tâches.

Les contraintes de ressources :


les contraintes d'utilisation de ressources qui expriment la nature et la quantité des
moyens utilisés par les tâches, ainsi que les caractéristiques d'utilisation de ces
moyens ;
les contraintes de disponibilité des ressources qui précisent la nature et la quantité des
moyens disponibles au cours du temps. Toutes ces contraintes peuvent être
formalisées sur la base des distances entre débuts de tâches ou potentiels.

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.

On note par exemple ceux liés au temps :


Le temps total d'exécution ou le temps moyen d'achèvement d'un ensemble de
tâches ;
Le stock d'en-cours de traitement ;
Différents retards (maximum, moyen, somme, nombre, etc.) ou avances par rapport
aux dates limites fixées.

2019-2020 22
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Et ceux liés aux ressources :


La quantité totale ou pondérée de ressources nécessaires pour réaliser un ensemble
de tâches ;
La charge de chaque ressource ;
Liés à une énergie ou un débit ;
Liés aux coûts de lancement, de production, de transport, etc., mais aussi aux revenus,
aux retours d'investissements.

4. Critères de performance de l’ordonnancement :


Temps de séjour d’un processus (temps de rotation ou de virement) : temps entre
l’admission du processus et sa sortie ;
Temps d'attente d’un processus : somme des périodes que le processus passe à l'état
prêt ;
Temps de réponse : temps entre l'entrée d'un processus et le moment où il commence
à être traité ;
Capacité de traitement : nombre de processus traités par unité de temps ;
Taux d’utilisation d’un processeur.

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.

2. Les applications de la Domotique :


L’électricité c’est magique, mais on peut encore améliorer l’installation de la maison
en évitant à l’usager de réaliser toujours les mêmes tâches répétitives, allumer, éteindre,
ouvrir les volets, remonter le chauffage, éteindre la télé...
Permet d’automatiser tout cela. La domotique est l’ensemble des techniques et
technologies qui facilitent la vie quotidienne et permettent une gestion automatisée de
l’habitation. Nous l'avons défini précédemment. Les divers appareils électriques domotisés de
l’habitat, échangent entre eux des informations et assurent aux habitants un meilleur confort.
Il s’agit par exemple de la gestion du chauffage, de la fermeture et de l’ouverture des
portes et volets, de la mise sous surveillance de la maison… Son fonctionnement est très
simple et ses utilisations, en théorie, presque infinies.

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 ».

La domotique permet de déléguer :


Elle évite de perdre du temps dans des tâches répétitives et ingrates :
 actionner manuellement les stores, les volets roulants, les portes de garage
 faire le tour de la maison pour la mettre en sécurité avant de partir...
 éteindre les éclairages oubliés
La domotique se place aussi comme un allié de choix au service des personnes handicapées.
Le contrôle de l'environnement et la gestion technique du bâtiment apportent aux personnes
à mobilité réduite, l'accessibilité, l'autonomie, la communication, la circulation dans l'espace,
le pilotage à distance.

La domotique permet d'évoluer :


Un système domotique peut aussi s'adapter, se modifier ou se compléter en permanence, au
fil du temps, en fonction de l'évolution de la famille ou au gré des exigences des utilisateurs.
En cas de déménagement, il est possible d'emmener sa domotique avec soi et l'adapter à la
nouvelle habitation.

La domotique permet d'automatiser :


Par des commandes multi-actions, vous pouvez définir des scénarios tels que quitter son
domicile :
 commande d'extinction générale
 descente de tous les volets
 passage en mode éco du chauffage

La domotique permet d'économiser :


 mettre le chauffage en mode "économie"
 commander l'extinction des lampes à l'arrivée du jour.
 augmenter le chauffage au réveil

La domotique permet de sécuriser :


 simulation de présence
 baisse automatique des volets, même en cas d'absence ou de retour tardif à la maison.
 mise en route de l'alarme... autant de bénéfices qui libèrent l'esprit et permettent de
partir en toute tranquillité.

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.

III. Les usages de la domotique :


L’utilisation de plus en plus importante des Smartphones et des Tablettes contribue à
favoriser l’acceptation de la domotique au sein de l’habitat. Les domaines d’application sont
au cœur de la vie quotidienne. Ils peuvent être regroupés selon 4 grands thèmes : la sécurité,
le confort, la gestion de l’énergie et le multimédia.

Figure 7 : représente l’utilité des Smartphones et les Tablettes dans la Domotique

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.

L’installation électrique de votre habitation s’adapte donc à vos besoins et à vos


envies. Par exemple, la gestion de l’éclairage, celle des volets, du chauffage vont pouvoir être
automatisées et programmées. La domotique permet également d’obtenir une meilleure
qualité d’éclairage et de confort thermique. Elle facilite la centralisation des commandes, et
le pilotage à distance des équipements. Elle rend possible la modularité des espaces et
l’évolutivité des équipements. C’est donc le bâtiment qui s’adapte aux occupants.

3. Économie et performances énergétiques :


Suivre sa consommation d’énergie afin de contrôler ses dépenses, optimiser ses
consommations tout en gardant un certain confort (en gérant la température de son intérieur
par zone et selon son occupation) sont autant d’atouts qui vont permettre une meilleure
gestion des dépenses énergétiques. L’augmentation des coûts de l’énergie aussi bien que
l’émergence des préoccupations écologiques sont des enjeux importants de notre société
actuelle. La domotique propose ainsi de réduire les consommations énergétiques des
bâtiments en adaptant ces consommations aux modes de vie des occupants et à
l’environnement extérieur.
Cela comprend la régulation de l’éclairage et du chauffage, le traitement de l’air,
l’optimisation des ouvrants, la programmation horaire, les commandes à distance, les
interrupteurs automatiques pour l’éclairage d’un escalier ou d’un couloir, l’ouverture ou la
fermeture d’un volet selon l’ensoleillement... .

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.

IV. Les technologies utilisées pour la domotique :


Généralement, une installation domotique peut être conçue sur trois principaux
types de technologie. Ces technologies peuvent cohabiter, être superposées suivant
l’évolution de l’installation dans le temps.

1. La technologie bus filaire :


La technologie bus filaire, est souvent utilisée dans la construction ou la rénovation de
bâtiments en raison de l’installation d’un bus filaire. Cette technologie veille à ce que tous les

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.

L’installation de ce dispositif est composée de deux réseaux :


un réseau bus filaire reliant les capteurs (détecteurs, interrupteurs, sondes) aux
actionneurs (éclairage, ouvrants, chauffage, produits de puissance) ;
un réseau d’alimentation reliant les actionneurs au courant fort ;
Ce type d’installation présente pour les utilisateurs plusieurs avantages ;
la réduction massive du câblage : un seul câble en général pour tous les équipements
au lieu d’un par équipement ;
une meilleure fiabilité de la transmission des informations et de l’installation ;
une supervision en local ou à distance ;
une évolutivité de l’installation à tout moment.

Figure 8 : Le schéma rend compte de l’installation avec une technologie BUS.

Exemples de réseaux bus filaires :

KNX, standard ouvert international, suivi par un ensemble de constructeurs comme


Hager, Schneider, ABB, Theben, Siemens… ;
Solutions constructeurs comme MyHome de Legrand.

2. Le courant porteur en ligne (CPL):


La technologie du courant porteur en ligne (CPL) permet le transfert et l’échange
d’informations et de données en passant par le réseau électrique existant. L’installation est
composée d’émetteurs et de récepteurs connectés au réseau électrique qui communiquent
entre eux.

2019-2020 29
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Figure 9: représente L’installation de réseaux électrique existante.

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.

II. Cahier de charge :


Notre mission consiste à faire la conception d’une maison intelligente didactique ainsi
d’implémenter des fonctions de domotique à savoir la gestion d’éclairage, l’ouverture
sécurisée de la porte principale et du garage, l’ouverture et fermeture des volets des fenêtres,
l’acquisition de la température à l’intérieur de l’habitat et contrôle de la ventilation.

 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

Figure 10: Plan de la maison intelligente.

III. Composons utiliser :


Dans réaliser ce projet (qui est une Smart House) nous allons utiliser du matériel
électronique pour obtenir l’objectif final d’une maison intelligente, le matériel utilisé :
1. Bluetooth HC-05

2. Servomoteur

3. Capteur de gaz

4. Afficheur LCD

5. Buzzer

6. 3*4keypad

7. Capteur humidité et température DHT11

8. Ventilateur

9. Capteur ultrason HC-SR04

10. LED

11. Carte Arduino Méga

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.

Figure 11: servomoteur.

1.2 Composition d’un servomoteur :


Il est composé de plusieurs éléments visibles :

Les fils, qui sont au nombre de trois.


L’axe de rotation sur lequel est monté un accessoire en plastique ou en métal.
Le boitier qui le protège.

Mais aussi de plusieurs éléments que l’on ne voit pas :


Un moteur à courant continu.
Des engrenages pour former un réducteur (en plastique ou en métal).
Un capteur de position de l’angle d’orientation de l’axe (un potentiomètre bien
souvent).
Une carte électronique pour le contrôle de la position de l’axe et le pilotage du
moteur à courant continu.

Voilà une image 3D de vue de l’extérieur et de l’intérieur d’un servomoteur :

2019-2020 34
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Figure 12: schéma représentatif des composants de servomoteur à l’intérieur et extérieur.

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 :

Rouge : pour l’alimentation positive (4.5V à 6V en général) ;


Noir ou marron : pour la masse (0V) ;
Orange, jaune, blanc, … : entrée du signal de commande.

Figure 13: les fils de servomoteur.

Quel sont les différences entre un servomoteur et un moteur ?


Le servomoteur coûte plus cher qu'un moteur.
Le servomoteur est plus précis, si on met les bons encodeurs et qu'on règle bien les drivers.
Le servomoteur est plus puissant pour la même puissance consommée (rendement de plus
de 70%). Le moteur ne peut pas faire l'équivalent d'un servomoteur.
Le moteur fonctionne en boucle ouverte alors qu’un servomoteur fonctionne en boucle
fermée.

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.

Figure 14: Principe d’un signal de commande par PWM.

Lorsque le moteur tourne, l'axe du servomoteur change de position, ce qui modifie la


résistance du potentiomètre. Le rôle de l'électronique est de commander le moteur pour que
la position de l'axe de sortie soit conforme à la consigne reçue : il s’agit bien d’un
asservissement.

Figure 15: Exemples des signaux PWM

2019-2020 36
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

1.4 Avantages et inconvénients du servomoteur :


 Avantage :

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 :

Il faut modifier le servomoteur pour une rotation complète ;


Le prix est légèrement plus élevé qu'un bloc motoréducteur à 2 moteurs CC.

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.

Figure 16: afficheur LCD

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

Figure 17: connecteur de l’afficheur LCD

Ces broches ont le rôle suivant :

Tableau 2: Nomenclature du connecteur de l’afficheur LCD..

3. Capteur de gaz MQ2 :


Le MQ-2 est un capteur qui permet de détecteur du gaz ou de fumée à des
concentrations de 300 ppm à 10000 ppm. Après calibration, le MQ-2 peut détecter différents
gaz comme le GPL (LPG), l’ibutane, le propane, le méthane, l’alcool, l’hydrogène ainsi que les
fumées. Le capteur peut fonctionner à des températures de -20 à 50°C et consomme moins
de 150 mA à 5 V.

2019-2020 38
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Figure 18: Capteur de gaz MQ.

3.1 description produit :

Capteur de gaz simple à utiliser ;


Adapté à la détection du GPL, de l'isobutane, du propane, du méthane, de l'alcool, de
l'hydrogène et de la fumée ;
Utilisé pour la détection des fuites de gaz aussi bien pour les usagers que l'industrie ;
Sensibilité élevée et temps de réponse rapide ;
La sensibilité peut être ajustée au moyen d'un potentiomètre.

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.

Figure 19: Buzzer.

4.1 Description :

Module utilisant un transistor S8550 ;


Tension de fonctionnement 3.3V-5V ;
Avec un trou de boulon fixe, facile à installer ;
Taille du circuit imprimé petit : 3.2cm * 1.3cm environ ;
Lorsque le port d’entrée / sortie est faible, le signal sonore retentit ;
Fonction de Buzzer : buzz b.

4.2 Description des broches 3 fils :

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. Capteur de la température LM35DZ :


Le capteur LM35DZ permet de mesurer la température ambiante d’une pièce.

Figure 20: Capteur d’humidité DHT11.

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 :

Chauffage, ventilation, systèmes d'air conditionné, climatiseurs (HVAC) ;


Equipement d'essai et de mesure ;
Automobile ;
Enregistreur de données climatique ;
Biens de consommation ;
Contrôle automatique ;
Station météorologique ;
Appareils électroménagers ;
Régulateur d'humidité ;
Médical ;
Déshumidificateur ;
Serre de culture de végétaux ;
Vivarium.
6. Capteur ultrason HC-SR04 :

Figure 21: Capteur ultrason HC-SR04.

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 :

Tension d'alimentation : 5.0 V à ± 0.5 V ;


Courant de repos : 2.0 mA à ± 0.5 mA ;
Courant de fonctionnement : 15 ± 5 mA ;
Fréquence des ultrasons : 40 kHz.

6.3 Fonctionnement :

Figure 22: fonctionnement de capteur ultrason HC-SR04.

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.

Figure 23: La communication entre les différents appareils par Bluetooth

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/ .

7.4 Les modules Bluetooth :


Il existe deux sortes de module Bluetooth, tous deux compatibles Arduino et
utilisables sur un breadboard (plaque d’essai en français). On les distingue par le nombre de
pattes d’entrées / sorties :

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

HC-06 : 4 sorties. Ce module ne peut être qu’esclave.

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.

Figure 24: module Bluetooth HC-05

8. Clavier de sécurité (3*4Key Pad) :


Un clavier est l’un des périphériques d’entrée les plus couramment utilisés dans les
applications à microprocesseur. Sur un clavier standard câblé en tant que matrice de
commutateurs XY, les commutateurs normalement ouverts connectent une ligne à une
colonne lorsqu'ils sont enfoncés. Si un clavier comporte 12 touches, il est câblé en 3 colonnes
sur 4 lignes. Un clavier 16 aurait 4 colonnes de 4 lignes.

Figure 25: key pad.

Comment fonctionne UN Key Pad?


Key Pad prend la forme d'un pavé électronique à touches sur lequel on programme
une combinaison de caractères (chiffres et/ou lettres) pour définir un code secret. Ce code
secret va permettre d'ouvrir une porte.

9. Arduino méga :
Définition d’Arduino méga :

2019-2020 44
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Figure 26: carte Arduino

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 :

Figure 27: Architecteur d’une carte Arduino.

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

Broches d'E / S numériques : 54 (dont 14 fournissent une sortie PWM) ;


Broches d'entrée analogiques : 16 ;
Courant CC par broche d'E / S : 40 mA ;
Courant CC pour broche 3,3 V : 50 mA ;
Mémoire Flash : 256 Ko, dont 8 Ko utilisés par le chargeur de démarrage ;
SRAM : 8 KB ;
EEPROM : 4 KB ;
Vitesse d’horloge : 16 MHz.

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.

Figure 28: Diode Electro Luminescente

IV. Réalisation avec FreeRTOS :


1. Logiciels :
1.1 Arduino :
Le langage Arduino Un langage de programmation est une grammaire formelle qui
inclut des symboles et des règles syntaxiques auxquels on associe des règles sémantiques.
Programmation en Arduino Il en est ainsi pour Arduino qui, malgré sa ressemblance
avec le C a ses propres règles, symboles et syntaxiques.
Donc, avec Arduino, il y a une phase de déclaration, d’initialisation, appel de fonction,
appel de librairies, …
 Présentation du logiciel :

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

Figure 29: IDE Arduino.

1.2 Proteus 8 Professional :

Figure 30: Proteus 8

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.

2. Réalisation avec FreeRtos :


2.1 Cycle de fonctionnement :
Le cycle de fonctionnement de notre système suit quatre taches :

La régulation de la température dans le salon ;


Ouverture la porte ;
Détecteur de gaz dans la cuisine ;

2019-2020 48
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Ouverture le garage.

Pour le salon on utilise capteur de température Lm35 pour déterminer le degré de la


température avec un ventilateur qui travaille lorsqu'on augmente la température à 32°C et
aussi on a l’afficheur (LCD) pour afficher la température.
Pour la porte on utilise un servomoteur, l’afficheur, key pad (3x4), buzzer. Lorsqu'on
entre le bon code le servomoteur ouvre la porte, sinon l’afficheur affiche « le code incorrect
» et le roule de le buzzer mais quand on entre le code le buzzer faire un son.
Pour le montage de la cuisine on utilise le capteur de gaz, lorsque le capteur détecte
le gaz le servomoteur ouvre la fenêtre, le ventilateur travaille, le buzzer buzze et aussi on
utilise Bluetooth hc-05 pour afficher le niveau de gaz en téléphone.

Figure 31: application de détecteur de gaz.

À 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 49
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Figure 32: réalisation

2.2 Moniteur série :

Figure 33: réalisation

2019-2020 50
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

2.3 Code source:


 Déclaration des variables :

#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>

SoftwareSerial BTSerial(10, 11); // RX | TX = > BT-TX=10 BT-RX=11


//SALON (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd1(34, 36 , 38,40, 42,44) ;
// PORTE (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd2(22 , 24 , 26, 28 , 30, 32);
Servo myservo2;//pin10
int pos=0;
const byte rows=4;
const byte cols=3;
char key[rows][cols]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[rows]={8,7,6,5};
byte colPins[cols]={4, 3, 2};
Keypad keypad= Keypad(makeKeymap(key),rowPins,colPins,rows,cols);
char* password="1122";
int currentposition=0;
int buzz=13;
int invalidcount=12;
//////////////////////////// CUISINE ( AnalogSensor)
Servo myservo;
const int fan =23;
const int VENTI =35;
int buzzer = 25;
int smokeA0 = A7;
// Your threshold value. You might need to change it.
int sensorThres = 40;
int posS = 0;
//////////////////////////// garage
Servo myservo3;
const int trigPin = 29;
const int echoPin = 31;
const int led = 33;
int posG=10;
long duration;
float distance;

2019-2020 51
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

 Définition des taches

//define 4 tasks for multitasking


void TaskSalon( void *pvParameters );
void TaskDoor( void *pvParameters );
void AnalogSensor( void *pvParameters );
void Taskgarage( void *pvParameters );

 Création des taches

// Now set up four tasks to run independently.

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

 Exécution des taches

void loop(){}
//============================= =================
// Cuisine
void AnalogSensor(void *pvParameters) // voila la tache
{

2019-2020 52
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

(void) pvParameters;

//Configuration et initialisation ( cuisine ).


myservo.attach(27);
pinMode(VENTI,OUTPUT);
pinMode(fan,OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(smokeA0, INPUT);
myservo.write(posS);
Serial.begin(9600);
BTSerial.begin(9600); // HC-05 9600 baud

for (;;) // boucle infinie


{
int analogSensor = analogRead(smokeA0);
Serial.print("sensor reading =");
Serial.println( analogSensor);
BTSerial.print(analogSensor);
//delay (40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
Serial.print("Pin A7: ");
Serial.println(analogSensor);
// Checks if it has reached the threshold value
if (analogSensor > sensorThres)
{
tone(buzzer,300);
digitalWrite(fan,HIGH);
digitalWrite(VENTI,HIGH);
myservo.write(posS+180);
//delay(1000);
vTaskDelay( 1000 / portTICK_PERIOD_MS );
}
else
{
noTone(buzzer);
digitalWrite(fan,LOW);
digitalWrite(VENTI,LOW);
myservo.write(posS);
}
//delay(1000);
vTaskDelay( 40 / portTICK_PERIOD_MS ); }}
//============================= =================
////////////// PORTE
void TaskDoor(void *pvParameters) // This is a task.
{
//Configuration et initialisation ( Door ).

(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

for (;;) // A Task shall never return or exit.


{
if( currentposition==0)
{
displayscreen();
}
int l ;
char code=keypad.getKey();
if(code!=NO_KEY)
{
lcd2.clear();
lcd2.setCursor(0,0);
lcd2.print("PASSWORD:");
lcd2.setCursor(7,1);
lcd2.print(" ");
lcd2.setCursor(7,1);
for(l=0;l<=currentposition;++l)
{
lcd2.print("*");
keypress();
}
if (code==password[currentposition])
{
++currentposition;
if(currentposition==4)
{

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

vTaskDelay( 1000 / portTICK_PERIOD_MS );


//
digitalWrite(buzz, HIGH);
lcd2.setCursor(4,1);
lcd2.print("1");
//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 );
//5
digitalWrite(buzz, HIGH);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz,LOW);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz,LOW);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz,LOW);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz, HIGH);
//delay(40);
vTaskDelay( 40 / portTICK_PERIOD_MS );
digitalWrite(buzz,LOW);
lcd2.clear();
lcd2.setCursor(2,0);
lcd2.print("RE-LOCKING");
//delay(500);
vTaskDelay( 500 / portTICK_PERIOD_MS );
lcd2.setCursor(12,0);
lcd2.print(".");
//delay(500);
vTaskDelay( 500 / portTICK_PERIOD_MS );
lcd2.setCursor(13,0);
lcd2.print(".");
//delay(500);
vTaskDelay( 500 / portTICK_PERIOD_MS );
lcd2.setCursor(14,0);
lcd2.print(".");
//delay(400);
vTaskDelay( 400 / portTICK_PERIOD_MS );

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;

//Configuration et initialisation ( Salon ).


lcd1.begin(16,2);
Serial.begin(9600);
const byte venti=12;
pinMode(venti, OUTPUT);
for (;;) // A Task shall never return or exit.
{

int rawvoltage = analogRead(A6);


float millivolts = (rawvoltage/1024.0) * 5000;
float celsius = millivolts/10;
if (celsius > 32.00){
digitalWrite(venti, HIGH);
Serial.print("Motion deducted");
}
else {
digitalWrite(venti, LOW);
}
lcd1.setCursor(0, 0);
lcd1.print("Temperatur:");
lcd1.setCursor(0, 1);
lcd1.print(celsius);

2019-2020 61
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

//Warte

vTaskDelay( 2000 / portTICK_PERIOD_MS );


Serial.print(" Temperature: ");
Serial.println(celsius);
vTaskDelay( 250 / portTICK_PERIOD_MS );
}}

// garage
void Taskgarage (void *pvParameters) // This is a task.

//Configuration et initialisation ( garage ).


(void) pvParameters;
myservo3.attach(37);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
myservo3.write(posG);
Serial.begin(9600);
for (;;) // A Task shall never return or exit.

{
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 :

Dans un premier temps on va Télécharger le logiciel Arduino gratuitement, ensuite on


va installer le driver pour la carte Arduino.
Choisir le type de carte :

Serial Port / COM Port :

Charger un programme dans la carte :

2019-2020 65
Mini projet : Gestion d’une maison intelligente avec FreeRTOS

Bouton 1 : Ce bouton permet de vérifier le programme, il actionne un module qui


cherche les erreurs dans votre programme ;
Bouton 2 : Charge (téléverser) le programme dans la carte Arduino ;
Bouton 3 : Crée un nouveau fichier ;
Bouton 4 : Ouvre un fichier ;
Bouton 5 : Enregistre le fichier ;
Bouton 6 : Ouvre le moniteur série ;

Principales parties d’un code :

2019-2020 66

You might also like