INTRODUCTION AU SYSTEME DOMOTIQUE AVEC UN ...
-
Upload
khangminh22 -
Category
Documents
-
view
0 -
download
0
Transcript of INTRODUCTION AU SYSTEME DOMOTIQUE AVEC UN ...
UNIVERSITE D’ANTANANARIVO
----------------------
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
Département Génie Electrique
-----------------------
U.F.R Génie Industriel
Mémoire de fin d’études en vue de l’obtention du diplôme de master II en Génie Electrique
INTRODUCTION AU SYSTEME DOMOTIQUE
AVEC UN MICROCONTROLEUR DE TYPE
ARDUINO
Présenté par : ANDRIAMAHATANA Tanjona Landry
Directeur de mémoire : Mr RAMAROZATOVO Vonjy
Date de soutenance : 05 juin 2015
Promotion 2014
UNIVERSITE D’ANTANANARIVO
----------------------
ECOLE SUPERIEURE POLYTECHNIQUE
-----------------------
Département Génie Electrique
-----------------------
U.F.R Génie Industriel
Mémoire de fin d’études en vue de l’obtention du diplôme de master II en Génie Electrique
INTRODUCTION AU SYSTEME DOMOTIQUE
AVEC UN MICROCONTROLEUR DE TYPE
ARDUINO
Présenté par :
ANDRIAMAHATANA Tanjona Landry
Directeur de mémoire :
Mr RAMAROZATOVO Vonjy, Enseignant chercheur à l’ESPA
Président du jury :
Mr RAKOTONIAINA Solofo Hery, Maitre de conférences à L’ESPA
Examinateurs :
Mr RAKOTOJAONA Andriamanantena, Maitre de conférences à L’ESPA
Mr RANDRIANARIVAO Dannet, Enseignant chercheur à l’ESPA
Mr RANDRIAMORA Edmond, Enseignant chercheur à l’ESPA
i
REMERCIEMENTS
Je remercie Dieu Tout Puissant pour la santé et le courage qu’Il m’a octroyés durant mes
années d’études surtout pendant la réalisation de ce mémoire.
J’adresse aussi mes reconnaissances à :
- Monsieur ANDRIANARY Philippe, Professeur Titulaire, Directeur de l’Ecole
Supérieure Polytechnique d’Antananarivo, qui m’a permis d’effectuer mes études,
- Monsieur RAKOTONIAINA Solofo Hery, Chef du département Génie Electrique, qui
nous a fait l’honneur de présider ce membre de jury,
- Monsieur RAMAROZATOVO Vonjy, Enseignant chercheur, pour sa patience, ses
directives et ses conseils qui m’ont été précieux afin de mener ce travail à bon port.
Mes vifs remerciements vont également aux membres du jury :
- Monsieur RAKOTOJAONA Andriamanantena
- Monsieur RANDRIANARIVAO Dannet
- Monsieur RANDRIAMORA Edmond
pour l’intérêt qu’ils ont porté à ce travail en acceptant de l’examiner.
- A tous les enseignants et personnel de l’Ecole Supérieure Polytechnique
d’Antananarivo, en particulier ceux du département Génie Electrique, pour leurs efforts
afin d’assurer notre formation.
Sans oublier ma famille, mes amis et tous ceux qui ont de près ou de loin contribué à la
réalisation de ce mémoire.
Merci à vous tous !
ii
TABLES DES MATIERES
REMERCIEMENTS ............................................................................................................................................. I
TABLES DES MATIERES ................................................................................................................................. II
LISTE DES FIGURES ....................................................................................................................................... IV
LISTE DES TABLEAUX ................................................................................................................................... VI
LISTE DES ACRONYMES ............................................................................................................................. VII
CHAPITRE I - LA DOMOTIQUE ............................................................................................................. 2
I.1 CONCEPT DE LA DOMOTIQUE ...................................................................................................................... 2
I.1.1 Définition........................................................................................................................................... 2
I.1.2 Motivations des usagers .................................................................................................................... 2
I.2 USAGES DE LA DOMOTIQUE [14] ................................................................................................................. 3
I.2.1 Sécurité .............................................................................................................................................. 3
I.2.2 Confort et simplicité .......................................................................................................................... 4
I.2.3 Économie et performances énergétiques ........................................................................................... 5
I.2.4 Communication et multimédia ........................................................................................................... 6
I.3 FONCTIONNEMENT DU SYSTEME DOMOTIQUE [14]...................................................................................... 6
I.3.1 Chaine d’information ........................................................................................................................ 6
I.3.2 Chaine d’énergie ............................................................................................................................... 7
I.4 PRINCIPE ..................................................................................................................................................... 7
I.4.1 Technologies utilisées pour la domotique ......................................................................................... 8
I.4.2 Microcontrôleur .............................................................................................................................. 11
CHAPITRE II - L’ARDUINO ..................................................................................................................... 17
II.1 DEFINITION .......................................................................................................................................... 17
II.2 DESCRIPTION DU MATERIEL.................................................................................................................. 17
II.2.1 Les différents types de carte Arduino .............................................................................................. 18
II.2.2 Modèle UNO ................................................................................................................................... 24
II.2.3 Microcontrôleur ATMEL ATMega328 ............................................................................................ 27
II.3 DESCRIPTION DU LOGICIEL ................................................................................................................... 30
II.3.1 Structure du programme ................................................................................................................. 30
II.3.2 Langage arduino ............................................................................................................................. 31
II.4 MANIPULATION DE L’ARDUINO ............................................................................................................ 38
CHAPITRE III - LA DOMOTIQUE AVEC ARDUINO ........................................................................... 40
III.1 PRESENTATION DE LA MAQUETTE ......................................................................................................... 40
III.1.1 Maquette ..................................................................................................................................... 40
III.1.2 Travaux à faire............................................................................................................................ 41
III.2 LISTE DES COMPOSANTS ....................................................................................................................... 41
iii
III.2.1 Servomoteur électrique ............................................................................................................... 42
III.2.2 Afficheur LCD ............................................................................................................................. 43
III.2.3 Thermistance ............................................................................................................................... 44
III.2.4 Capteur de présence ................................................................................................................... 46
III.2.5 Un capteur de toucher ................................................................................................................ 47
III.3 ETAPES DE MANIPULATION DE LA CARTE ............................................................................................. 48
III.3.1 Eclairage automatique ................................................................................................................ 48
III.3.2 Ouverture de la porte .................................................................................................................. 52
III.3.3 Ventilateur .................................................................................................................................. 55
III.3.4 Alarme ......................................................................................................................................... 60
III.3.5 Télécommande infrarouge .......................................................................................................... 64
CONCLUSION GENERALE ............................................................................................................................ 68
ANNEXES ............................................................................................................................................................. A
BIBLIOGRAPHIE ............................................................................................................................................... G
WEBOGRAPHIE ................................................................................................................................................. H
iv
LISTE DES FIGURES
Figure 1: chaînes de la domotique .............................................................................................. 7
Figure 2: Technologie bus filaire KNX ...................................................................................... 9
Figure 3: Technologie CPL ...................................................................................................... 10
Figure 4: Structure d'un système à microprocesseur ................................................................ 12
Figure 5: Sérial arduino ............................................................................................................ 18
Figure 6: Arduino extreme ....................................................................................................... 18
Figure 7: Arduino mini ............................................................................................................. 19
Figure 8: Arduino nano ............................................................................................................ 19
Figure 9: Arduino lylipad ......................................................................................................... 19
Figure 10: Arduino NG ............................................................................................................ 19
Figure 11: Arduino NG ............................................................................................................ 20
Figure 12: Arduino BT ............................................................................................................. 20
Figure 13: Arduino diecimila ................................................................................................... 20
Figure 14: Arduino duemilanove ............................................................................................. 20
Figure 15: Arduino mega ......................................................................................................... 21
Figure 16: Arduino mega2560 ................................................................................................. 21
Figure 17: Arduino ethernet ..................................................................................................... 21
Figure 18: Arduino leonardo .................................................................................................... 21
Figure 19: Arduino due ............................................................................................................ 22
Figure 20: Arduino esplora ...................................................................................................... 22
Figure 21: Arduino uno ............................................................................................................ 22
Figure 22: Description de la carte arduino uno ........................................................................ 24
Figure 23: Brochage de la carte Uno ........................................................................................ 26
Figure 24: Représentation du logiciel arduino ......................................................................... 30
Figure 25: Structure du programme avec arduino .................................................................... 31
Figure 26: Présentation de la maquette .................................................................................... 40
Figure 27: Boite de commande ................................................................................................ 41
Figure 28: Servomoteur ............................................................................................................ 42
Figure 29: Afficheur LCD ........................................................................................................ 43
Figure 30: Thermistance ........................................................................................................... 44
Figure 31: Caractéristique typique d'une CTN et CTP ............................................................ 45
Figure 32: Détecteur de mouvement ........................................................................................ 46
v
Figure 33: Capteur de touché ................................................................................................... 47
Figure 34: Logigramme de l’allumage automatique des LEDS ............................................... 49
Figure 35: Vue sur breadboard de l’allumage automatique de l’éclairage............................... 50
Figure 36: Schéma électronique de l’allumage automatique de l’éclairage ............................. 51
Figure 37: Logigramme de l’ouverture automatique de la porte.............................................. 53
Figure 38: Vue sur breadboard du montage de l’ouverture de porte ....................................... 54
Figure 39: Schéma électronique du montage de l’ouverture de porte ...................................... 54
Figure 40 : Démarrage ventilateur en fonction de la température en BO ................................ 56
Figure 41:Logigramme du démarrage automatique du ventilateur .......................................... 57
Figure 42: Vue sur breadboard de l’affichage de température avec arduino ........................... 58
Figure 43: Schéma électronique de l’affichage de température avec arduino ......................... 58
Figure 44: Fonctionnement alarme .......................................................................................... 61
Figure 45 : Montage PIR avec un bipeur ................................................................................. 61
Figure 46: Schéma électronique ............................................................................................... 62
Figure 47: Récepteur infrarouge .............................................................................................. 65
Figure 48: Fonctionnement télécommande .............................................................................. 67
vi
LISTE DES TABLEAUX
Tableau 1: Les différents types d'arduino avec leur propriété ................................................. 23
Tableau 2: Types variables ....................................................................................................... 35
Tableau 3: Types variables non-signés .................................................................................... 35
Tableau 4: Autres types variables ............................................................................................ 35
Tableau 5 : Symboles utilisés dans les conditions ................................................................... 36
Tableau 6: Opérateurs logiques ............................................................................................... 36
Tableau 7 : Caractéristiques broches ....................................................................................... 44
Tableau 8 : Codes de chaque bouton de la télécommande ....................................................... 65
vii
LISTE DES ACRONYMES
BO : Boucle Ouverte
CAN : Controller Area Network
CPL : Courant Porteur En Ligne
EEPROM : Electrical Erasable Programmable Read Only Memory
ICSP: In-Circuit Serial Programming
KNX : Konnex qui est un bus de terrain et un protocole d'automatismes pour le bâtiment
Ko : Kilo octet
LCD : Liquid Crystal Display
LDR : Light-Dependent Resistor
LED : Light-Emitting Diode
PWM : Pulse Width Modulation
RAM : Random Acces Memory
ROM : Read Only Memory
RS : Slope Resistor
USB: Universal Sérial Bus
µc : Un microcontrôleur
PLL : Phase-Locked Loop
1
INTRODUCTION GÉNÉRALE
Aujourd’hui, nous sommes face à une évolution technologique considérable dans tous les
domaines. La construction de bâtiment en fait partie. Elle ne cesse de se progresser en matière
de couleurs, de formes ou d’architectures, d’équipements et de gestion d’énergie électrique
(éclairage, chauffage, multimédias, …). L’évolution de la technologie et du mode de vie nous
permet aujourd’hui de prévoir des espaces de travail et de logement mieux adaptés, tant en
nouvelle construction qu’en rénovation. En même temps, l’insécurité ne cesse de s’accroitre.
Alors, les gens veulent la sécurité, le confort et la gestion d’énergie avec le minimum de dépense
c’est-à-dire une économie de temps et d’argent.
Pour résoudre ces problèmes, on va faire appel à l’avancée technologique pour automatiser les
tâches dans l’habitat : l’alarme, la gestion de l’éclairage et l’ouverture des portes,... La maison
est alors dite communicante et intelligente. L’utilisation de ces nouvelles technologies
appliquées à une maison s’appelle la domotique.
La domotique est donc un ensemble de techniques et technologies qui facilite la vie quotidienne
et permet une gestion automatisée des fonctions électriques de l’habitation. Son but est de
rendre les activités usuelles simples, d’améliorer notre protection et notre confort. Son
établissement nécessite deux chaines : l’une est une chaine d’information dont un capteur
envoie un signal analogique ou numérique qui sera programmé dans un microcontrôleur. Ce
dernier envoie encore un signal numérique et analogique vers un afficheur. L’autre est une
chaine d’énergie qui est une alimentation, distribution, conversion et transmission de l’énergie.
Ce mémoire intitulé « introduction au système domotique avec un microcontrôleur de type
arduino» expose des possibilités apportées par une technologie, la carte arduino uno, dans le
cadre de la domotique.
Cet ouvrage se divise en trois grands chapitres. Le premier chapitre est une description de la
domotique. Le second se porte sur la représentation du microcontrôleur arduino uno. Le
troisième et dernier chapitre illustre l’application de la domotique avec l’utilisation de ce
microcontrôleur.
2
CHAPITRE I - LA DOMOTIQUE
Simples ou complexes, les systèmes automatisés sont partout dans notre environnement
quotidien dont la domotique qui en fait partie. Dans ce premier chapitre, on parlera de ce qu’on
entend par domotique, de son principe de fonctionnement, de sa technologie et de son
utilisation.
I.1 Concept de la domotique
I.1.1 Définition
Le mot domotique est formé à partir du mot latin « domus » qui signifie maison et le suffixe
« ique » signifiant « relatif à » l’informatique et l’électronique. La domotique indique donc
quelques choses relatives à la maison. [2]
La domotique est l’ensemble des techniques et technologies (électronique, informatique,
télécommunications) qui facilite la vie quotidienne et permet une gestion automatisée des
fonctions électriques de l’habitation. [5]
L’installation domotique peut être pilotée localement ou à distance depuis une télécommande,
un smartphone, une console centrale, un écran tactile ou encore un ordinateur.
I.1.2 Motivations des usagers
Les motivations de l'usager pour la domotique sont multiples et l'on peut considérer les points
suivants [13]:
accès partagé à Internet
partage de ressources informatiques
gestion et distribution de l'énergie,
surveillance et sécurité,
confort et commodité,
indépendance et autodétermination,
prestige,
qualité de vie.
3
La mise en place d'une installation domotique peut s'étaler dans le temps et l'utilisateur sera
donc à la recherche :
d'un système qu'il puisse compléter par lui-même,
de produits connectés indépendants de leur point de connexion afin qu'ils puissent être
déplacés,
d'une transmission d'information qui soit sûre afin d'éviter les erreurs de
fonctionnement,
d'un module d'interface qui soit peu cher et convivial.
I.2 Usages de la domotique [14]
L’utilisation de plus en plus importante des nouvelles technologies 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. [14]
I.2.1 Sécurité
Chaque année, les accidents domestiques causent deux fois plus de morts que les accidents de
la route. Un incendie sur quatre trouve son origine dans la cuisine, un incendie sur cinq provient
d’une installation défaillante. [13]
La sécurité dans l’habitat comprend la protection des biens mais aussi, et heureusement, la
protection des personnes. 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 les locaux ou l’habitation depuis un smartphone, une tablette ou un
ordinateur ;
être averti d’un incident (alarmes techniques) par SMS ou par e-mail.
I.2.1.1 Détection automatique des pannes et défaillances :
Les automatismes seront aussi largement employés pour détecter les pannes et défaillances.
Ainsi, on pourra détecter automatiquement et de manière préventive des défaillances diverses
dans le fonctionnement du logement et de ses équipements : les fuites d'eau ou de gaz, le
mauvais fonctionnement des équipements ménagers ou des appareils de chauffage, de
climatisation, de fourniture d'eau chaude sanitaire, ...
4
Chacun disposera d'une télé-information sur l’état de son logement en cas d'absence
(transmission des informations, signal d'alarme, ...). Enfin, la détection d'intrusion sera
généralisée et infaillible.
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, on peut être averti
en temps réel.
I.2.1.2 Exemples de sécurisation avec la domotique
La domotique permet de :
Contrôler l’accès avec un portier audio/vidéo et un interphone : on pourra alors
vérifier l’identité des personnes qui sonnent à la porte et surveiller les abords immédiats
des maisons ou des immeubles sur un écran ou un téléviseur. De même, on pourra
surveiller les enfants ou se communiquer dans les immeubles.
Se protéger contre les intrusions : simuler une présence pendant notre absence en
allumant un éclairage automatique pendant la nuit ou à l’aide d’un détecteur de
présence.
Se protéger contre l’incendie, service de télésurveillance : être informé d’un risque
ou d’un début d’incendie chez nous ou chez un voisin, localement par un dispositif
sonore ou lumineux ou à distance par le téléphone. Prévenir un voisin ou le gardien de
l’immeuble pendant notre absence.
Se servir de téléassistance (téléphone) : Mettre en alerte des secours en cas
d’incidents, de sinistres, de chutes, de malaises, …
I.2.2 Confort et simplicité
La notion de confort a de nombreuses interprétations et est difficile à standardiser. Chacun a sa
définition du confort. Une maison intelligente doit offrir le moins d’inconfort possible à ses
occupants. La domotique permet alors d’améliorer le confort et de simplifier la vie quotidienne.
La mise en place d’un système domotique rend possible de nombreux scénarios tels que :
Confort thermique : Régler et programmer la température des pièces à différents
moments de la journée. Eliminer les odeurs ou l’humidité et améliorer la qualité de l’air.
Tout cela est possible avec un thermostat programmable par exemple, un gestionnaire
d’énergie ou un système de chauffage ou de climatisation, une ventilation mécanique
contrôlée.
5
Confort lumineux : Commander l’ouverture et la fermeture de volets ou de stores
équipés de moteurs électriques. Programmer et régler l’éclairage.
Confort sonore et visuel : Distribuer le son (Radio, Hi-fi, Interphonie) et des images
(TV, vidéo, …) dans les différentes pièces. Commander à distance les appareils de notre
ensemble audio et vidéo. On pourra utiliser un système de distribution de son
fonctionnant par liaison câblée, radio ou infrarouge et un système de transmission des
images dans l’ensemble des pièces.
L’installation électrique de l’habitation s’adapte donc aux besoins et aux envies du propriétaire.
Par exemple, la gestion de l’éclairage, celle des volets et 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.
I.2.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.
Par exemple, on peut :
Contrôler notre consommation, éviter les consommations inutiles, éviter les fuites
éventuelles :
On pourra utiliser des compteurs individuels d’eau chaude et d’eau froide, en particulier
dans l’habitat collectif.
Un système domotique permettant le relevé des compteurs et le suivi en temps réel de
notre consommation.
L’utilisation d’appareils ménagers à basse consommation ou de robinets automatiques.
Des détecteurs de fuites reliés à un système domotique.
6
Maîtriser nos consommations et optimiser le fonctionnement de nos appareils de
chauffage :
Installation de thermostats, de programmateurs de gestionnaires d’énergie pour le
chauffage et la climatisation.
Mise en place de détecteurs permettant d’optimiser la consommation d’électricité en
fonction de l’abonnement souscrit.
Un système domotique permettant un contrôle global du logement et des appareils.
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...
I.2.4 Communication et multimédia
Lire les films sur le support de notre choix, mettre en place un système multi room et pouvoir
diffuser le son et l’image dans notre 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 l’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.
I.3 Fonctionnement du système domotique [14]
L’établissement du système domotique nécessite deux chaines : une chaine d’information et
une chaine d’énergie.
I.3.1 Chaine d’information
Pour fonctionner, un système automatique doit pouvoir acquérir des consignes (réglages) en
provenance de l’utilisateur, mais aussi du système lui-même ou de son environnement et les
traiter pour transmettre des ordres à la chaîne d’énergie.
7
I.3.2 Chaine d’énergie
Un système automatique doit être alimenté en énergie pour réaliser sa fonction d’usage. Les
ordres venant de la chaîne d’information conduisent à distribuer l’énergie, à la convertir et enfin
à la transmettre.
On va montrer dans la figure ci-après la décomposition d’un système automatique en chaînes:
Automatisme : M.Pujad (2010)
Figure 1: chaînes de la domotique
I.4 Principe
Le principe de la domotique consiste à faire communiquer ensemble et entre eux les
équipements électriques d’un bâtiment. On parle alors de bâtiment intelligent ou de bâtiment
communicant. [4]
La domotique vise à assurer des fonctions de sécurité comme les alarmes, de confort comme
les volets roulants, de gestion d'énergie comme la programmation du chauffage et de
communication comme les commandes à distance que l'on peut installer et mettre en œuvre
dans une maison suivant les besoins. Il s'agit donc d'automatiser des tâches en les programmant
ou les coordonnant entre elles. Elle participe également à l’aide au maintien à domicile des
personnes âgées ou handicapées en facilitant leur quotidien.
8
Une maison domotique aujourd’hui, c’est :
une maison confortable et accessible (éclairage, thermique, automatismes)
une maison économique permettant le suivi de la consommation et la détection des
équipements qui dépensent le plus
une maison communicante (connaître et commander ses équipements même à distance)
une maison autonome (détection de dysfonctionnements)
une maison sûre (surveillance des appareils domestiques et anti-intrusion)
une maison évolutive (emplacement des prises et interrupteurs évolutifs)
une maison multimédia (distribution des signaux audio, vidéo et home cinéma).
I.4.1 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 être cohabitées ou superposées suivant l’évolution de
l’installation dans le temps. Parmi lesquelles, on peut citer la technologie bus filaire, le CPL
(Courant Porteur de Ligne) et la radiofréquence. [3]
I.4.1.1 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 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ées.
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.
9
Ce type d’installation présente pour les utilisateurs plusieurs avantages :
une 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.
On peut citer quelques exemples de réseaux bus filaires :
KNX, standard ouvert international, suivi par un ensemble de constructeurs comme
Hager, Schneider, ABB, Theben, Siemens…,
MyHome de Legrand.
Prenons le KNX [1]:
Une installation domotique KNX est composée de capteurs et d’actionneurs reliés à un bus de
donnée leur permettant de communiquer entre eux. Les capteurs permettent de commander
l’installation, ce sont les donneurs d’ordre, comme par exemple, les interrupteurs, les détecteurs
ou les mesures. Ces capteurs sont uniquement reliés au bus KNX, et peuvent être alimentés via
le bus. Les actionneurs sont les éléments qui reçoivent les ordres et sont commandés par
l’installation domotique, c’est par exemple, l’éclairage, le système de chauffage ou les volets.
Les actionneurs sont connectés d’une part au bus KNX afin de recevoir les ordres de commande
et d’autre part à une alimentation 230V AC pour alimenter le circuit de puissance.
La domotique: Sirlan technologies (2011)
Figure 2: Technologie bus filaire KNX
10
I.4.1.2 CPL (Courant Porteur de Ligne)
La technologie 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.
L’avantage d’une installation utilisant cette technologie est qu’elle ne nécessite pas de travaux
particuliers.
La domotique: Sirlan technologies (2011)
Figure 3: Technologie CPL
I.4.1.3 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.
Comme exemples de technologies radiofréquence, on a :
KNX radio fréquence, Zigbee, EnOcean…
X3D de Delta Dore et MyHome RF de Legrand.
11
I.4.2 Microcontrôleur
Pour pouvoir réaliser les tâches dédiées, la domotique a besoin d’un cerveau pour piloter les
actions programmées. Cet appareil est le microcontrôleur.[24]
I.4.2.1 Définition
Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels
d'un ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour
les données), unités périphériques et interfaces d'entrées-sorties.
Les microcontrôleurs se caractérisent par un plus haut degré d'intégration, une plus faible
consommation électrique, une vitesse de fonctionnement plus faible (de quelques mégahertz
jusqu'à plus d'un gigahertz) et un coût réduit par rapport aux microprocesseurs polyvalents
utilisés dans les ordinateurs personnels.
Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants
séparés, les microcontrôleurs permettent de diminuer la taille, la consommation électrique et le
coût des produits. Ils ont ainsi permis de démocratiser l'utilisation de l'informatique dans un
grand nombre de produits et de procédés.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau,
l'électroménager, les jouets, la téléphonie mobile, etc.
I.4.2.2 Du microprocesseur au microcontrôleur
Le processeur est l'élément central d'un système informatique : il interprète les instructions et
traite les données d'un programme. Il a besoin de certains éléments externes pour fonctionner :
une horloge pour le cadencer (en général à quartz ou Boucle à verrouillage de phase
(PLL : Phase-Locked Loop)) ;
de la mémoire pour stocker les variables durant l’exécution du programme (mémoire
vive RAM) et le programme d’une mise sous tension à l’autre (mémoire morte ROM).
Si l'on conçoit un système assigné à une tâche bien particulière (ce qui est généralement
le cas des systèmes embarqués), le programme n'est pas amené à changer. Il peut donc
être stocké dans une mémoire morte (ROM) ;
des périphériques (pour interagir avec le monde extérieur).
12
Ces éléments sont reliés par 3 bus :
le bus d'adresse qui permet au microprocesseur de sélectionner la case mémoire ou le
périphérique auquel il veut accéder pour lire ou écrire une information (instruction ou
donnée) ;
le bus de données qui permet le transfert des informations entre les différents éléments ;
ces informations seront soit des instructions, soit des données en provenance ou à
destination de la mémoire ou des périphériques ;
le bus de contrôle qui indique si l'opération en cours est une lecture ou une écriture, si
un périphérique demande une interruption pour faire remonter une information au
processeur, etc.
Figure 4: Structure d'un système à microprocesseur
Un microcontrôleur est un composant autonome, capable d'exécuter le programme contenu
dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles et les conditions de
fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques composants externes
(quartz, quelques condensateurs, parfois une ROM), mais ceci reste très limité.
I.4.2.3 Composants intégrés
Un microcontrôleur intègre sur un unique circuit intégré :
un processeur (CPU), avec une largeur du chemin de données allant de 4 bits pour les
modèles les plus basiques à 32 ou 64 bits pour les modèles les plus évolués ;
de la mémoire vive (RAM) pour stocker les données et variables ;
de la mémoire morte (ROM) pour stocker le programme. Différentes technologies
peuvent être employées : EPROM, EEPROM, mémoire flash (la plus récente) ;
souvent un oscillateur pour le cadencement. Il peut être réalisé avec un quartz, un circuit
RC ou encore une PLL ;
13
des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner entre
autres :
les convertisseurs analogiques-numériques (CAN) (donnent un nombre binaire à partir
d'une tension électrique),
les convertisseurs numériques-analogiques (CNA) (effectuent l'opération inverse),
les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en anglais,
PWM pour Pulse Width Modulation),
les timers/compteurs (compteurs d'impulsions d'horloge interne ou d'événements
externes),
les chiens de garde (watchdog),
les comparateurs (comparent deux tensions électriques),
les contrôleurs de bus decommunication (UART, I²C, SSP, CAN, FlexRay, USB,
Ethernet, etc.).
Le fonctionnement des périphériques peut être paramétré et commandé par le programme et/ou
les entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le
processeur à quitter le programme en cours pour effectuer une routine de traitement de
l’interruption, lorsque l’événement qui la déclenche survient.
Les microcontrôleurs peuvent généralement se placer dans un état de sommeil, dans lequel ils
présentent une très faible consommation électrique. Un signal envoyé par l'un de leurs
périphériques (timer, broche d'entrée-sortie, watchdog, etc.) permet de les faire sortir de cet état
de sommeil.
Certains microcontrôleurs ont un nombre très restreint de broches, si bien qu'une broche donnée
peut correspondre à plusieurs périphériques internes. La fonction choisie doit alors être
sélectionnée par logiciel.
Le choix des périphériques à intégrer dans un microcontrôleur est délicat. Les fabricants doivent
réaliser un compromis entre des besoins contradictoires : utiliser des fréquences élevées, réduire
la taille du circuit, apporter des fonctionnalités nombreuses, élaborer une architecture flexible,
assurer des coûts modérés, etc.
14
I.4.2.4 Architecture
Un microcontrôleur peut effectuer la plupart des instructions machine habituelles, avec
certaines restrictions liées à son caractère embarqué (taille restreinte des mots machine, petite
taille disponible, etc.). On note cependant quelques particularités.
Les capacités mathématiques sont en général particulièrement limitées, réduites à des additions,
soustractions et décalages sur des octets pour les plus simples d'entre eux. Les calculs
mathématiques évolués doivent donc être ramenés à une succession d'opérations simples
portant seulement sur des octets. Des routines mathématiques (petits programmes permettant
de réaliser les calculs complexes) ont été développées pour la plupart des microcontrôleurs
populaires.
Les instructions d'entrée-sortie sont bien développées, de façon à pouvoir :
lire l'état d'un port d'entrée ;
écrire une information dans le registre d'un port de sortie, qui maintient l'information à
la disposition des circuits extérieurs.
Les microcontrôleurs disposent généralement de nombreuses instructions destinées aux
opérations sur les bits, de façon à rendre les programmes plus compacts, notamment lorsqu'ils
agissent sur une entrée-sortie donnée. Ainsi, un processeur généraliste peut avoir besoin
de plusieurs instructions pour tester la valeur d'un bit d'un registre et effectuer un saut si le bit
vaut vrai. Cette fonction courante est assurée par une seule instruction dans certains
microcontrôleurs.
Les modes d'adressage utilisables sont en général semblables à ceux des autres processeurs.
De façon générale, les instructions et modes d'adressage disponibles varient fort selon les
familles de microcontrôleurs.
Certains microcontrôleurs suivent une architecture Harvard : ils possèdent des bus séparés pour
la mémoire de programme et la mémoire de données, ce qui permet aux accès d'avoir lieu en
même temps (on parle d'accès concurrent). Lorsqu'on utilise une architecture Harvard, les mots
de programme peuvent avoir une largeur (nombre de bits) différente de celle des mots de la
mémoire de données et des registres. Par exemple, il peut y avoir des instructions de 12 bits et
des registres de données de 8 bits.
15
I.4.2.5 Environnement de programmation
Le programme d'un microcontrôleur est généralement appelé micrologiciel.
À l'origine, les microcontrôleurs se programmaient en assembleur. Fortement bas niveau (et
donc, intrinsèquement optimisé), l'assembleur posa et pose toujours d'énormes problèmes pour
la maintenance et l'évolution des logiciels embarqués. Désormais, on utilise de plus en plus des
langages de haut niveau, notamment le langage C, capable de faciliter la programmation de
microcontrôleurs toujours plus puissants. Ces compilateurs C présentent généralement certaines
restrictions liées aux spécificités des microcontrôleurs (mémoire limitée, par exemple). Le
compilateur GCC peut produire du code pour certains microcontrôleurs. Avec l’augmentation
de la puissance et de la quantité de mémoire de stockage (FLASH) disponible dans les
microcontrôleurs, les programmes de ces derniers peuvent désormais être écrits en C++. Il
existe même des frameworks et plateformes en C++ destinés à l’embarqué, comme Qtopia,
mais l'utilisation de ceux-ci restera limitée aux microcontrôleurs les plus puissants.
Certains microcontrôleurs disposent également de firmware réalisant l'interprétation d'un
langage évolué. Ainsi, l’Intel 8052 et le Zilog Z8 ont pu être programmés en BASIC dès leurs
débuts. Plus récemment, le BASIC Stamp dispose d'un interprète BASIC en mémoire morte.
Il existe des environnements pour aider au développement de certaines applications. Par
exemple, LabVIEW et son langage G permettent de programmer les
microcontrôleurs Blackfin d'Analog Devices.
Des simulateurs sont disponibles pour certains microcontrôleurs, comme
l'environnement MPLAB de Microchip. Les développeurs peuvent ainsi analyser le
comportement du microcontrôleur et du programme, comme s'il s'agissait du composant réel.
Un simulateur montre l'état interne du processeur, ainsi que celui de ses sorties. Bien que la
plupart des simulateurs ne proposent pas de simuler les autres composants d'un système, ils
permettent de spécifier les entrées à volonté. On peut de cette façon créer des conditions qui
seraient sans cela difficiles à reproduire dans une implémentation physique. Cela facilite donc
l'analyse et la résolution des problèmes. De la même façon, certains logiciels de CAO simulent
le comportement du microcontrôleur et des composants qui l'entourent. On peut ainsi afficher
les états des entrées et sorties des différents composant au cours de l'exécution d'un programme.
16
Une fois le programme compilé, le fichier binaire doit être envoyé au microcontrôleur. On
utilise soit :
un programmateur, pour microcontrôleurs et souvent également d’EEPROM. On parle
alors de programmateur universel.
un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le microcontrôleur
du système électronique complet. Ce type de programmation pourra se faire via le bus
de communication standard JTAG ou un autre bus, souvent propriétaire (Microchip par
ex. avec sa série PIC16F) et, malheureusement, inadapté au test des cartes lors de la
phase de production.
Toutefois, le programme qui a été envoyé peut comporter des bogues (bugs), aussi, pour
parvenir à les détecter on peut utiliser un émulateur in-circuit.
I.4.2.6 Familles de microcontrôleur
Il existe plusieurs familles de microcontrôleur, on va citer quelques-uns :
la famille Atmel AT91 ;
la famille Atmel AVR (utilisée par des cartes Arduino) ;
le C167 de Siemens/Infineon ;
la famille Hitachi H8 ;
…
En bref, la domotique est une automatisation des appareillages électriques d’un bâtiment. Elle
vise à assurer la sécurité, le confort, la gestion d’énergie et la communication. La domotique
utilise deux chaînes pour fonctionner : une chaîne d’information et une chaîne d’énergie. Elle
emploie plusieurs technologies qui se basent sur plusieurs critères, l’un de ces technologies est
le microcontrôleur qui comporte l’unité intelligente de traitement des informations. Si telle est
la description de la domotique, parlons maintenant de la carte arduino uno, une unité essentielle
dans la réalisation de notre travail.
17
CHAPITRE II - L’ARDUINO
La domotique est l’automatisation des bâtiments. Pour cela, on a alors besoin d’un
microcontrôleur pour effectuer les scénarios voulus. Dans notre cas, nous utiliserons la carte
Arduino Uno.
Dans ce chapitre, on va parler de l’Arduino et de ses caractéristiques.
II.1 Définition
Arduino est un circuit imprimé sur lequel se trouve un microcontrôleur qui peut être programmé
pour analyser et produire des signaux électriques, de manière à effectuer des tâches très diverses
comme la domotique et le pilotage d'un robot. C'est une plateforme basée sur une interface
entrée/sortie simple. Il était destiné à l'origine principalement mais pas exclusivement à la
programmation multimédia interactive en vue de spectacle ou d'animations artistiques. [22]
Arduino peut être utilisé pour construire des objets interactifs indépendants (prototypage
rapide), ou bien peut être connecté à un ordinateur pour communiquer avec ses logiciels par
exemples : Macromedia Flash, Processing, Max/MSP, Usine Hollyhock, Pure Data,
SuperCollider, etc.
II.2 Description du matériel
Un module Arduino est généralement construit autour d'un microcontrôleur Atmel AVR
(ATmega328 ou ATmega2560 pour les versions récentes, ATmega168 ou ATmega8
microcontrôleur Atmel AVR pour les plus anciennes), et de composants complémentaires qui
facilitent la programmation et l'interfaçage avec d'autres circuits. Chaque module possède au
moins un régulateur linéaire 5V et un oscillateur à quartz 16 MHz (ou un résonateur céramique
dans certains modèles).
Le microcontrôleur est préprogrammé avec un bootloader de façon à ce qu'un programmateur
dédié ne soit pas nécessaire.
Les modules sont programmés au travers d'une connexion série RS-232, mais les connexions
permettant cette programmation diffèrent selon les modèles. Les premiers Arduino possédaient
un port série, puis l'USB est apparu sur les modèles Diecimila, tandis que certains modules
destinés à une utilisation portable se sont affranchis de l'interface de programmation, relocalisée
sur un module USB-série dédié (sous forme de carte ou de câble).
18
L'Arduino utilise la plupart des entrées/sorties du microcontrôleur pour l'interfaçage avec les
autres circuits. Le modèle Diecimila par exemple, possède 14 entrées/sorties numériques, dont
6 peuvent produire des signaux PWM (Pulse Width Modulation), et 6 entrées analogiques. Les
connexions sont établies au travers de connecteurs femelle HE14 situés sur le dessus de la carte,
les modules d'extension venant s'empiler sur l'Arduino. Plusieurs sortes d'extensions sont
disponibles dans le commerce.[15]
Certains modules non officiels, compatibles avec la technologie Arduino, utilisent des
connecteurs mâles pour une utilisation aisée avec des plaques de test.
II.2.1 Les différents types de carte Arduino
Les modules d'origine des différentes versions de l'Arduino sont fabriqués par la société
italienne Smart Projects. Quelques-unes des cartes de marque Arduino ont été conçues par la
société américaine SparkFun Electronics.[19]
Il existe dix-sept versions des cartes de type Arduino, il ya le :
Serial Arduino programmé avec une connexion série par connecteur DB9 et utilisant un
ATmega8.
Figure 5: Sérial arduino
Arduino Extreme, programmable via une connexion USB et utilisant un ATmega8.
Figure 6: Arduino extreme
19
Arduino Mini, une version miniature de l'Arduino utilisant un ATmega168 de type
CMS.
Figure 7: Arduino mini
Arduino Nano, une version encore plus petite de l'Arduino alimenté par USB et utilisant
un ATmega168 (avant la version 3) ou ATmega328 (à partir de la version 3.0) de type
CMS.
Figure 8: Arduino nano
LilyPad Arduino, une conception de type minimaliste pour permettre une application
portable utilisant un ATmega168 de type CMS.
Figure 9: Arduino lylipad
Arduino NG, programmable via une connexion USB et utilisant un ATmega8.
Figure 10: Arduino NG
20
Arduino NG plus, programmable via une connexion USB et utilisant un ATmega168.
Figure 11: Arduino NG
Arduino BT, programmable via une connexion BT et utilisant un ATmega 328.
Figure 12: Arduino BT
Arduino Diecimila, possède une interface USB et utilise un ATmega168 dans un boitier
format DIL28. (16 ko flash, 1 ko SRAM, 0,5 ko EEPROM)
Figure 13: Arduino diecimila
Arduino Duemilanove (2009) utilise un Atmega168 et est alimenté en électricité par le
connecteur USB ou une alimentation externe avec commutation automatique. La
nouvelle version est équipée d'un ATmega328 (32 ko de flash, 2 ko de SRAM, et 1 ko
d'EEPROM).
Figure 14: Arduino duemilanove
21
Arduino Mega est équipé d'un ATmega1280 de type CMS pour avoir des
Entrées/Sorties supplémentaires et de la mémoire (128 ko flash, 8 ko SRAM, 4 ko
EEPROM).
Figure 15: Arduino mega
Arduino Mega2560 est équipé d'un ATmega2560 de type CMS, augmentant la mémoire
totale disponible à 256 ko. Il est équipé aussi de la nouvelle puce USB ATmega8U2.
Figure 16: Arduino mega2560
Arduino Ethernet est une carte Arduino UNO intégrant un chip Wiznet W5100 pour
rajouter la connectivité Ethernet intégré.
Figure 17: Arduino ethernet
Arduino Leonardo est une version moins chère que l'Arduino UNO à base d'un
ATmega32U4.
Figure 18: Arduino leonardo
22
Arduino DUE est une évolution de l'Arduino Mega2560 avec un micro-contrôleur 32
bits Atmel SAM3X (ARM 32 bits Cortex-M3).
Figure 19: Arduino due
Arduino Esplora est une carte dérivée de l'Arduino Leonardo. Elle a la forme d'une
manette de jeu. Contrairement aux autres Arduino, c'est une carte « tout-en-un » qui
comporte de nombreux capteurs (température, accélération, lumière, microphone,
potentiomètre…) ainsi que 4 boutons poussoirs, un potentiomètre et un joystick
analogue.
Figure 20: Arduino esplora
Arduino Uno utilise un ATmega328 comme les derniers modèles de Duemilanove, mais
alors que le Duemilanove utilisait une puce FTDI pour la programmation via un
connecteur USB, l’Uno utilise une puce ATmega8U2 programmé comme un
convertisseur série.
Figure 21: Arduino uno
23
Ce tableau nous montre quelques types de la carte arduino suivis de ses caractéristiques:[24]
Tableau 1: Les différents types d'arduino avec leur propriété
Arduino
Processeur
Flash
[ko]
EEPROM
[ko]
SRAM
[ko]
Broches
d'E/S
numériques
..avec
PWM
Broches
d'entrée
analogique
Type
d'interface
USB
Dimensions
[pouces]
Dimensions
[mm]
Diecimila ATmega168 16 0,5 1 14 6 6 FTDI 2,7" x 2,1" 68,6 mm x53,3 mm
duemilanove ATmega168/328P 16/32 0,5/1 1/2 14 6 6 FTDI 2,7" x 2,1" 68,6 mm x53,3 mm
Uno ATmega328P 32 1 2 14 6 6 ATmega8U2 2,7" x 2,1" 68,6 mm x53,3 mm
Leonardo ATmega32U4 32 1 2,5 20 7 12 ATmega32U4 2,7" x 2,1" 68,6 mm x53,3 mm
Mega ATmega1280 128 4 8 54 15 16 FTDI 4" x 2,1" 101,6mmx53,3 mm
Mega2560 ATmega2560 256 4 8 54 15 16 ATmega8U2 4" x 2,1" 101,6 mmx53,3 mm
Due Atmel SAM3X8E 512 0 96 54 12 12 ATmega16u2 4" x 2,1" 101,6 mmx53,3 mm
Fio ATmega328P 32 1 2 14 6 8 Aucune 1,6" x 1,1" 40,6 mm x 27,9 mm
Nano ATmega168/328 16/32 0,5/1 1/2 14 6 8 FTDI 1,70"x0,73" 43 mm x 18 mm
Lylipad ATmega168V/328V 16 0,5 1 14 6 6 Aucune 2" ø 50 mm ø
Esplora ATmega32U4 32 1 2,5 N/A N/A N/A ATmega32U4 6,5" x 2,4" 165,1 mmx60,96 mm
24
II.2.2 Modèle UNO
La carte Arduino Uno diffère de toutes les cartes car elle n'utilise par le circuit intégré FTDI
usb-vers-série. A la place, elle utilise un Atmega8U2 programmé en convertisseur USB-vers-
série. "Uno" signifie un en Italien et ce nom marque la venue prochaine de la version 1.0 du
logiciel Arduino. La carte UNO et la version 1.0 du logiciel seront la référence des versions
Arduino à venir. La carte Uno est la dernière d'une série de carte USB Arduino, et le modèle de
référence des plateformes Arduino; pour une comparaison avec les versions précédentes. [7]
L'intérêt principal du modèle est leur facilite de mise en œuvre. Arduino fournit un
environnement de développement s'appuyant sur des outils opensource.
II.2.2.1 Description
La longueur et la largeur maximales du circuit imprimé Uno sont 6,75 cm et 5,25 cm
respectivement, avec le connecteur USB et la prise d’alimentation s’étendant au-delà de ces
dimensions. Quatre trous pour vis permettent à la carte d’être fixée sur une surface ou un boîtier.
Sur une faible valeur, un front montant ou descendant ou un changement de valeur.
La figure ci-dessous nous montre la description détaillée de la carte arduino uno sur laquelle
nous allons travailler.
Microcontrôleur: Cottenceau (2010)
Figure 22: Description de la carte arduino uno
25
II.2.2.2 Entrées et sorties
Il y a 20 entrées/sorties sur l'Arduino.
6 analogiques, numérotées de A0 à A5.
14 numériques, numérotées de 0 à 13. 6 de ces entrées/sorties peuvent assurer une sortie
PWM . Les 6 PMW sont les numéros 3, 5, 6, 9, 10, 11.
Chacune des 14 prises du Uno peut être utilisée comme entrée et sortie, en utilisant les fonctions
pinMode(), digitalWrite(), et digitalRead(). Elles fonctionnent sur 5 volts. Chaque broche peut
fournir ou recevoir un maximum de 40 mA et dispose d’une résistance de tirage interne
(déconnectée par défaut) de 20-50 kOhms. De plus, certaines prises ont des fonctions
spécialisées :
Serial : 0 (RX) et 1 (TX) : utilisées pour recevoir (TX) et transmettre (TX) des données
TTL. Ces broches sont connectées à leurs homologues sur la puce ATmega8U2 USB-
to-TTL Serial.
Interrupteurs externes : 2 et 3. Ces broches peuvent être configurées pour déclencher un
interrupteur.
De plus certaines broches ont des fonctions spécialisées :
TWI : A4 ou broche SDA et A5 ou broche SCL. Prend en charge la communication
TWI en utilisant Wirelibrary.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): ces broches supportent la
communication SPI en utilisant la bibliothèque SPI
Il y a deux autres sortes de broches sur la carte :
AREF : Tension de référence pour les entrées analogiques. Utilisé avec
analogReference().
Reset : Faîtes baisser cette ligne pour redémarrer le microcontrôleur. Généralement
utilisé pour ajouter un bouton reset pour recouvrir et protéger celui dans la carte.
26
Les différentes broches de la carte sont représentées dans la figure ci-après.
Atelier Arduino: Jean Noel Montagné (2006)
Figure 23: Brochage de la carte Uno
II.2.2.3 Protection contre les courts-circuits et la surcharge USB
L’ArduinoUno est un fusible réinitialisable qui protège les ports USB de l’ordinateur des court-
circuits et de la surcharge. Bien que la plupart des ordinateurs disposent de leur propre
protection interne, ce fusible fournit une couche supplémentaire de protection. Si plus de 500
mA sont appliqués sur le port USB, le fusible rompra automatiquement la connexion jusqu’à
ce que le court-circuit ou la surcharge soit supprimé.
II.2.2.4 Alimentation
L’Arduino Uno peut être alimenté via une connexion USB ou une alimentation externe. La
source de courant est sélectionnée automatiquement.
L’alimentation externe (non USB) peut provenir d’un adaptateur CA/CC ou de piles.
L’adaptateur peut être connecté par une fiche positive centrale de 2,1 mm dans l’alimentation
de la carte. Les câbles de l’accu peuvent être insérés dans les prises de terre et de tension du
connecteur d’alimentation.
27
La carte peut fonctionner sur une alimentation externe de 6 à 20 volts. Si moins de 7 volts sont
fournis, la broche 5 V peut éventuellement fourni moins de 5 volts et la carte peut alors être
instable. Si plus de 12 V sont utilisés, le régulateur de tension peut surchauffer et abîmer la
carte. La tension recommandée va de 7 à 12 volts.
Les broches d’alimentation sont les suivantes :
Tension d’entrée : la tension d’entrée de la carte Arduino quand une alimentation externe est
utilisée (en opposition aux 5 volts de la connexion USB ou d’autres sources de courant
régulées). On peut fournir une tension par cette prise ou, si l’alimentation est effectuée par un
câble d’alimentation, y accéder via cette prise.
5 V : cette broche fournit une tension régulée de 5V. La carte peut être alimentée par le
câble d’alimentation en courant continu, le connecteur USB (5V) ou la prise de terre sur
la carte (7-12 V). Alimenter la tension par les broches 5 V ou 3,3 V contourne le
régulateur et peut endommager la carte.
3V3 : généré par le régulateur intégré. Courant max. de 50 mA.
GND : Prise de terre
II.2.2.5 Interface USB/série
L'Arduino se connecte à un ordinateur par un câble USB. C'est par ce câble qu'on va installer
le programme. C'est également par ce câble que l'Arduino peut renvoyer des informations à
l'ordinateur. Lorsque l'Arduino est connecté en USB, c'est l'USB qui assure l'alimentation
électrique de l'Arduino.
Pour l'ordinateur, la carte Arduino est comme un simple périphérique. Il faut donc installer les
pilotes.
II.2.3 Microcontrôleur ATMEL ATMega328
Le microcontrôleur utilisé sur la carte Arduino UNO est un microcontrôleur ATMega328. C'est
un microcontrôleur ATMEL de la famille AVR 8bits. Il a 14 entrées/sorties numériques (6
d’entre elles avec PWM), 6 entrées analogiques, un cristal à 16 MHz, un port USB, une prise
d’alimentation, une connexion ICSP et un bouton Reset. Il dispose de tout le nécessaire pour
gérer le microcontrôleur ; pour l’utiliser, il suffit de connecter la carte à l’ordinateur avec un
câble USB ou de l’alimenter avec un adaptateur (max 12V) ou des piles externes. [17]
28
Le ATmega328 fournit une communication en série UART TTL (5V), qui est disponible sur
les broches numériques 0 (RX) et 1 (TTX). Un ATmega16U2 dans la carte canalise la
communication série via USB et apparaît comme port de communication virtuel avec le logiciel
de l’ordinateur. Le micrologiciel 16U2 utilise les pilotes standards USB COM, aucun pilote
externe n’est requis. Le logiciel Arduino inclut un moniteur série qui permet l’envoi et la
réception de données texte par la carte Arduino. Les LEDs RX et TX de la carte s’allument
quand des données sont transmises la puce USB-to-serial et la connexion USB de l’ordinateur
(mais pas pour la communication série sur les broches 0 et 1).
II.2.3.1 Caractéristiques
Les principales caractéristiques sont :
FLASH = mémoire programme de 32Ko
SRAM = données (volatiles) 2Ko
EEPROM = données (non volatiles) 1Ko
Digital I/O (entrées-sorties Tout Ou Rien) = 3 ports PortB, PortC, PortD
(soit 23 broches en tout I/O)
Timers/Counters : Timer0 et Timer2 (comptage 8 bits), Timer1 (comptage 16bits).
Chaque timer peut être utilise pour générer deux signaux PWM. (6 broches
OCxA/OCxB)
Plusieurs broches multi-fonctions : certaines broches peuvent avoir plusieurs fonctions
différentes choisies par programmation
PWM = 6 broches OC0A (PD6), OC0B(PD5), 0C1A(PB1), OC1B(PB3),
OC2A(PB3),OC2B(PD3)
Analog to Digital Converter (resolution 10bits) = 6 entrees multiplexees ADC0 (PC0)
a ADC5 (PC5)
Gestion bus I2C (TWI Two Wire Interface) = le bus est exploite via les broches
SDA(PC5)/SCL(PC4).
Port série (USART) = émission/réception série via les broches TXD(PD1)/RXD(PD0)
Comparateur Analogique = broches AIN0(PD6) et AIN1 (PD7) peut déclencher
interruption
Gestion d'interruptions (24 sources possibles : en résume)
Interruptions liées aux entrées INT0 (PD2) et INT1 (PD3)
Interruptions sur changement d'état des broches PCINT0 a PCINT23
29
Interruptions liées aux Timers 0, 1 et 2 (plusieurs causes configurables)
Interruption liée au comparateur analogique
Interruption de fin de conversion ADC
Interruptions du port série USART
Interruption du bus TWI (I2C)
II.2.3.2 Données techniques
Voici les données techniques de la carte arduino uno.
Microcontrôleur : ATmega328
Tension de fonctionnement : 5V
Tension d’alimentation (recommandée) : 7-12 V
Tension max. supportée : 20 V
Entrées/sorties (I/O) numériques : 14 (dont 6 avec sorties PWM)
Entrées analogiques : 6
Courant de sortie pour pin I/O : 40 mA
Courant de sortie pour Pin 3,3V : 50 mA
Mémoire flash : 32 KB (ATmega328) dont 0,5 Ko utilisé par le Bootloader
SRAM : 2 Ko (ATmega328)
EEPROM : 1 Ko (ATmega328)
Fréquence d’horloge: 16 MHz.
Arduino peut effectuer des changements dans les spécifications et descriptions de produits
n’importe quand, sans avertissement. Le client ne doit pas s’appuyer sur l’absence ou les
caractéristiques de toute particularité ou instruction marquée « réservée » ou « indéfinie ».
Arduino les réserve pour une future définition et n’aura pas de responsabilité pour les conflits
et incompatibilités provoqués par de futurs changements. [16]
Le design de référence Arduino peut utiliser Atmega8, 168 et 328, mais le modèle actuel utilise
un ATmega328.
II.2.3.3 Mémoire
L’ATmega328 dispose de 32 KB (dont 0,5 KB utilisé par le Bootloader). Il dispose également
de 2 KB de SRAM et de 1B de EEPROM.
30
II.3 Description du logiciel
Le logiciel de programmation des modules Arduino est une application Java, libre et multi-
plateforme, servant d'éditeur de code et de compilateur, et qui peut transférer le firmware et le
programme au travers de la liaison série (RS-232, Bluetooth ou USB selon le module). Il est
également possible de se passer de l'interface Arduino, et de compiler et uploader les
programmes via l'interface en ligne de commande.
Le langage de programmation utilisé est le C++, compilé avec avr-g++, et lié à la bibliothèque
de développement Arduino, permettant l'utilisation de la carte et de ses entrées/sorties. La mise
en place de ce langage standard rend aisé le développement de programmes sur les plates-
formes Arduino, à toute personne maîtrisant le C ou le C++.
Voici la représentation du logiciel d’arduino avec un exemple de programme :
Figure 24: Représentation du logiciel arduino
II.3.1 Structure du programme
Le programme est lu par le microcontrôleur de haut vers le bas. Une variable doit être déclarée
avant d'être utilisée par une fonction.
La structure minimale est constituée par :
un en-tête : déclaration des variables, des constantes, indication de l'utilisation de
bibliothèques etc...
31
un setup (= initialisation) cette partie n'est lue qu'une seule fois, elle comprend les
fonctions devant être réalisées au démarrage (utilisation des broches en entrées ou en
sortie, mise en marche du midi, du port série de l' I2C etc.....)
une loop (boucle) : cette partie est lue en boucle, c'est ici que les fonctions sont réalisées.
En plus de cette structure minimale, on peut ajouter :
des « sous-programmes » ou « routines » qui peuvent être appelées à tout moment dans
la boucle, très pratique pour réaliser des morceaux de codes répétitifs.
des « callbacks », ce sont des fonctions qui sont rappelées automatiquement depuis une
bibliothèque.
Les bibliothèques sont très utiles pour la complilation du programme. Sans ces bibliothèques,
la programmation serait plus complexe. Ils doivent être installées dans le répertoire «libraries»
et être inclues dans le programme (exemple : #include <MIDI.h>).
Figure 25: Structure du programme avec arduino
II.3.2 Langage arduino
Pour pouvoir programmer notre carte, il nous faut trois choses :
Un ordinateur
Une carte Arduino
Et connaitre le langage Arduino
32
Le langage Arduino est très proche du C et du C++.
II.3.2.1 Code minimal
Avec Arduino, nous devons utiliser un code minimal lorsque l'on crée un programme. Ce code
permet de diviser le programme que nous allons créer en deux grandes parties : [9]
void setup() //fonction d'initialisation de la carte
{
//contenu de l'initialisation
}
void loop() //fonction principale, elle se répète(s’exécute) à l'infini
{
//contenu du programme
}
Dans ce code se trouvent deux fonctions. Les fonctions sont en fait des portions de code.
void setup() //fonction d'initialisation de la carte
{
//contenu de l'initialisation
//on écrit le code à l'intérieur
}
Cette fonction setup() est appelée une seule fois lorsque le programme commence. C'est
pourquoi c'est dans cette fonction que l'on va écrire le code qui n'a besoin d'être exécuté une
seule fois. On appelle cette fonction : "fonction d'initialisation". On y retrouvera la mise en
place des différentes sorties et quelques autres réglages. C'est un peu le check-up de démarrage.
Une fois que l'on a initialisé le programme, il faut créer son "coeur", autrement dit le programme
en lui même.
void loop() //fonction principale, elle se répète
(s’exécute) à l'infini
{
//contenu de votre programme
}
C'est donc dans cette fonction loop() où l'on va écrire le contenu du programme. Il faut savoir
que cette fonction est appelée en permanence, c'est-à-dire qu'elle est exécutée une fois, puis
lorsque son exécution est terminée, on la ré-exécute et encore et encore. On parle de boucle
infinie.
II.3.2.2 Instructions
Les instructions sont des lignes de code permettant d’exécuter le programme.
33
II.3.2.2.1 Points virgules « ; »
Les points virgules terminent les instructions. Si par exemple je dis dans mon programme :
"appelle la fonction Domotique" je dois mettre un point-virgule après l'appel de cette fonction.
Les points virgules sont synonymes d'erreurs car il arrive très souvent de les oublier à la fin des
instructions. Par conséquent le code ne marche pas et la recherche de l'erreur peut nous prendre
un temps conséquent.
II.3.2.2.2 Accolades « {…} »
Les accolades sont les "conteneurs" du code du programme. Elles sont propres aux fonctions,
aux conditions et aux boucles. Les instructions du programme sont écrites à l'intérieur de ces
accolades.
II.3.2.2.3 Commentaires « // ou /*…*/ »
Les commentaires nous permettent de savoir ce que signifie la ligne de code qu’on a écrite.
C'est très important de mettre des commentaires et cela permet aussi de reprendre un
programme laissé dans l'oubli plus facilement.
// Cette ligne est un commentaire sur UNE SEULE ligne
/* cette ligne est un commentaire, sur PLUSIEURS lignes qui sera ignoré par le
programme, mais pas par celui qui lit le code */
II.3.2.2.4 Accents
Il est formellement interdit de mettre des accents en programmation. Sauf dans les
commentaires.
II.3.2.2.5 Variables (annexe2)
Comme nous l'avons vu, dans un microcontrôleur, il y a plusieurs types de mémoire. Nous nous
occuperons seulement de la mémoire "vive" (RAM) et de la mémoire "morte" (EEPROM).
II.3.2.2.5.1 Définition
Une variable est un nombre. Ce nombre est stocké dans un espace de la mémoire vive (RAM)
du microcontrôleur. Ce nombre a la particularité de changer de valeur.
Une variable est en fait le conteneur du nombre en question. Et ce conteneur va être stocké dans
une case de la mémoire. Si on matérialise cette explication par un schéma, cela donnerait:
Nombre variable mémoire
34
II.3.2.2.5.2 Nom d'une variable
Le nom de variable accepte quasiment tous les caractères sauf :
. (le point)
, (la virgule)
é,à,,è (les accents)
ç (le cédille).
35
Si on donne un nombre à un programme, il ne sait pas si c'est une variable ou pas. Il faut le lui
indiquer. Pour cela, on donne un type aux variables, dont il existe plusieurs.
Tableau 2: Types variables
Arduino : Esquimon (2012)
Si à présent la variable "x" ne prend jamais une valeur négative (-20, -78, ...), alors on utilisera
un type non-signé. C'est à dire, dans notre cas, un char dont la valeur n'est plus de -128 à +127,
mais de 0 à 255.
Voici le tableau des types non signés, on repère ces types par le non-signé qui les précède :
Tableau 3: Types variables non-signés
Arduino : Esquimon (2012)
Une des particularités du langage Arduino est qu'il accepte un nombre plus important de types
de variables. Ils sont représentés dans le tableau ci-dessous:
Tableau 4: Autres types variables
Arduino : Esquimon (2012)
36
II.3.2.2.5.3 Variables booléennes
Les variables booléennes sont des variables qui ne peuvent prendre que deux valeurs : ou VRAI
ou FAUX. Elles sont utilisées notamment dans les boucles et les conditions.
Quand une variable vaut "0", on peut considérer cette variable comme une variable booléenne,
elle est donc fausse. En revanche, lorsqu'elle vaut "1" ou n'importe quelles valeurs différentes
de zéro, on peut aussi la considérer comme une variable booléenne, elle est donc vraie.
Le langage Arduino accepte aussi une troisième forme d'écriture (qui lui sert pour utiliser les
broches de sorties du microcontrôleur).
int variable = LOW; //variable est à l'état logique bas (= traduction de "low"),
donc 0
int variable = HIGH; //variable est à l'état logique haut (= traduction de
"high"), donc 1
II.3.2.3 Conditions
Une condition est un choix que l'on fait entre plusieurs propositions. En informatique, les
conditions servent à tester des variables.
Pour tester des variables, il faut connaître quelques symboles.
Tableau 5 : Symboles utilisés dans les conditions
Arduino : Esquimon (2012)
II.3.2.4 Opérateurs logiques
Il existe des opérateurs qui permettent de tester les conditions.
Tableau 6: Opérateurs logiques
37
Arduino : Esquimon (2012)
II.3.2.5 Boucles
II.3.2.5.1 Définition
En programmation, une boucle est une instruction qui permet de répéter un bout de code. Cela
permet de faire se répéter un bout de programme ou un programme entier.
II.3.2.5.2 Types de boucles
Il existe deux types principaux de boucles :
La boucle conditionnelle, qui teste une condition et qui exécute les instructions qu'elle
contient tant que la condition testée est vraie.
La boucle de répétition, qui exécute les instructions qu'elle contient, un nombre de fois
prédéterminé.
Il y a la boucle :
While
Do…While
For
Infinie
II.3.2.6 Fonctions (Annexe3)
II.3.2.6.1 Définition
Une fonction est un "conteneur" mais différent des variables. En effet, une variable ne peut
contenir qu'un nombre, tandis qu'une fonction peut contenir un programme entier.
II.3.2.6.2 Création d’une fonction
Pour créer une fonction, on a besoin de savoir trois choses :
Quel est le type de la fonction que je souhaite créer ?
Quel sera son nom ?
Quel(s) paramètre(s) prendra-t-elle ?
II.3.2.6.3 Nom de la fonction
Pour commencer, il faut choisir en premier lieu le nom de la fonction.
Un nom de fonction explicite garantit une lecture rapide et une compréhension aisée du code.
Un lecteur doit savoir ce que fait la fonction juste grâce à son nom, sans lire le contenu.
38
Les fonctions ont pour but de découper votre programme en différentes unités logiques.
Idéalement, le programme principal ne devrait utiliser que des appels de fonctions, en faisant
un minimum de traitement. Afin de pouvoir fonctionner, elles utilisent, la plupart du temps, des
"choses" en entrées et renvoient "quelque chose" en sortie. Les entrées seront appelées des
paramètres de la fonction et la sortie sera appelée valeur de retour.
II.3.2.6.4 Paramètres
Les paramètres servent à nourrir votre fonction. Ils servent à donner des informations au
traitement qu'elle doit effectuer.
Prenons un exemple concret :
Pour changer l'état d'une sortie du microcontrôleur, Arduino nous propose la fonction suivante:
digitalWrite (pin, value). Ainsi, la référence nous explique que la fonction a les caractéristiques
suivantes:
Paramètre pin: le numéro de la broche à changer
Paramètre value: l'état dans lequel mettre la broche (high, (haut, +5v) ou low (bas,
masse))
Retour: pas de retour de résultat
II.3.2.6.5 Fonctions vides
On vient de voir qu'une fonction pouvait accepter des paramètres. Mais ce n'est pas obligatoire.
Une fonction qui n'accepte pas de paramètres est une fonction vide.
On utilise donc le type void pour dire que la fonction n'aura pas de paramètres. Une fonction
de type void ne peut pas retourner de valeur.
II.3.2.7 Tableaux
Un tableau est une grosse variable. Son but est de stocker des éléments de mêmes types en les
mettant dans des cases.
On utilise principalement des tableaux lorsque l'on aura besoin de stocker des informations
sans pour autant créer une variable pour chaque information.
II.4 Manipulation de l’Arduino
Pour utiliser l’arduino, il faut :
concevoir ou ouvrir un programme existant avec le logiciel Arduino.
vérifier ce programme avec le logiciel Arduino (compilation).
39
modifier le programme en cas d’erreur
câblage du montage électronique.
charger le programme sur la carte.
exécution du programme.
alimentation de la carte soit par le port USB, soit par une source d’alimentation
autonome (pile 9 volts par exemple).
vérification du montage si elle fonctionne.
L’arduino est une carte programmable qu’on peut utiliser dans la domotique. Il existe plusieurs
variétés de l’Arduino. Dans notre travail, nous avons utilisé l’arduino uno car il est facile à
manipuler et correspond à notre besoin. L’Arduino Uno utilise le microconctrôleur ATMEL
ATMega328 et le langage C pour langage de programmation. Le principe de son utilisation
c’est de concevoir un programme dans le logiciel d’arduino, d’effectuer le câblage, puis
d’exécuter le programme et enfin on vérifie si le montage fonctionne.
On sait maintenant ce qu’est une carte arduino Uno avec ses caractéristiques et son
fonctionnement. Dans le chapitre suivant, nous aborderons la partie pratique de notre travail.
40
CHAPITRE III - La domotique avec arduino
En parlant de domotique, on fait référence à une maison communicante et intelligente. Pour
cela, on a besoin d’un cerveau qui dirige les programmes. Ici, on utilisera la carte Arduino Uno
pour des raisons qu’on a citées précédemment. Avec cette carte, on peut réaliser divers
scénarios. Il suffit simplement d’imaginer et de le réaliser en programmant la carte. C’est ce
programme qui dictera à la carte les étapes à suivre.
Dans ce chapitre, on présentera la réalisation d’une maquette de maison domotisée.
III.1 Présentation de la maquette
Dans ce travail, nous avons réalisé la maquette d’une maison avec quelques fonctions
automatisées.
III.1.1 Maquette
Sa dimension est de 30 cm de long, 16 cm de large et 16 cm de hauteur.
La maquette est représenté sur la figure ci-dessous :
Figure 26: Présentation de la maquette
La figure suivante nous présente une petite boîte de commande qu’on a réalisée. On y trouve
un potentiomètre pour contrôler le servomoteur, une thermistance pour avoir la température,
une photorésistance pour avoir la variation de la lumière, un capteur de toucher et un
interrupteur pour commander l’alarme.
Ventilateur
LED
Porte
41
Figure 27: Boite de commande
III.1.2 Travaux à faire
Il y a tellement de possibilités mais pour le nôtre nous avons :
Automatisé l’éclairage : extinction quand il fait jour et allumage dans le cas contraire
Automatisé le ventilateur : arrêt si la température est inférieure à 23°C et démarrage
dans le cas contraire.
Ouvert la porte à l’aide d’un capteur de toucher et fermeture automatique après quelques
secondes.
Activé l’alarme avec un détecteur de mouvement
Ces scénarios sont possibles automatiquement et peuvent être aussi activés avec une
télécommande infrarouge.
Le schéma de l’installation se trouve dans l’annexe4.
III.2 Liste des composants
Pour notre réalisation de la domotique, on a utilisé:
Une carte arduino uno
Une plaquette d’essai (breadboard)
Un servomoteur
Un potentiomètre
3 leds
Un bipeur
Potentiomètre
Thermistance
Photorésistance
Capteur de touché
Afficheur LCD
Commande alarme
42
4 résistances de 220 Ohm
1 résistance de 10 Kohm
Un écran LCD de 16cm*2cm
Une thermistance
Un capteur de présence
Un capteur de toucher
Une photorésistance
7 plexiglass de cm*cm
Une plaquette d’essai
Des fils multicouleurs
Un cable USB
Un MCC 5V
III.2.1 Servomoteur électrique
III.2.1.1 Description
Un servomoteur électrique est prévu pour être commandé facilement en position par rotation.
En générale, il est équipé d’un système d’asservissement dont le potentiomètre permet de le
contrôler.
Figure 28: Servomoteur
Il est facile à utiliser car ils ne nécessitent que:
Une source de tension continue
Une sortie PWM du microcontrôleur.
Les servomoteurs possèdent trois fils de connexion de couleurs différentes :
Le noir ou marron : La masse
Le rouge : La tension d’alimentation continue (+)
Le jaune, orange ou blanc : Le signal de commande
43
III.2.1.2 Application
Le servomoteur nous permet d’effectuer un mouvement de rotation ou de translation de certains
objets.
III.2.2 Afficheur LCD
III.2.2.1 Définition
LCD signifie écran à cristaux liquides. Un cristal liquide est produit de la chimie organique, qui
possède les propriétés optiques des cristaux solides alors qu’il est lui-même liquide. Ses
molécules ont la forme de cigares susceptible de s’orienter très rapidement dans le sens de tout
champ électrique qu’on lui applique. En l’absence de ce dernier, les molécules s’orientent
aléatoirement dans toutes les directions.
Figure 29: Afficheur LCD
III.2.2.2 Description des signaux
Les broches 15 et 16 ne sont présentes que sur les afficheurs LCD avec rétroéclairage. Voici
les caractéristiques de chaque broche du LCD :
44
Tableau 7 : Caractéristiques broches
III.2.2.3 Application
Il est très utilisé dans les montages à microcontrôleur, et permet une grande convivialité. Il
peut aussi être utilisé lors de la phase de développement d'un programme, car on peut facilement
y afficher les valeurs de différentes variables.
III.2.3 Thermistance
III.2.3.1 Définition
C’est une variation de la résistance d'autres matières (oxydes métalliques, composites) en
fonction de la température, cette variation pouvant être assez régulière ou soudaine, dans un
domaine étroit de température.
Figure 30: Thermistance
45
III.2.3.2 Caractéristiques
Les principales caractéristiques de ces capteurs sont :
précision, linéarité, valeur nominale pour une température donnée (à 25 °C),
temps de réponse (en seconde),
sensibilité ou coefficient de température (variation de la résistance en fonction de la
température),
étendue ou gamme de mesure (température min. et max. d’utilisation),
longue durée de vie,
stabilité (variation des différents paramètres dans le temps),
encombrement, coût, puissance.
Les thermistances font partie des résistances non linéaires, dont on en rencontre deux types :
La CTN, coefficient de température négatif (NTC thermistor),
La CTP, coefficient de température positif (PTC thermistor).
Les CTN sont des thermistances dont la résistance diminue de façon uniforme quand la
température augmente et vice-versa. Tandis que les sont des thermistances dont la résistance
augmente avec la température.
On distingue les thermo-résistances (augmentation continue et régulière de la résistance avec
la température, voir ci-dessus) des CTP dont la valeur augmente fortement avec la température
dans une plage de température limitée (typiquement entre 0 °C et 100 °C).
Figure 31: Caractéristique typique d'une CTN et CTP
Les paramètres essentiels d'une thermistance sont :
La valeur de sa résistance,
Sa sensibilité thermique ou coefficient de température
46
Sa stabilité (fournie par le constructeur).
III.2.3.3 Application
Les CTN peuvent être utilisées dans une large plage de températures, de −200 °C à
+ 1 000 °C, et elles sont disponibles en différentes versions : perles de verre, disques,
barreaux, pastilles, rondelles, puces etc. Les résistances nominales vont de
quelques ohms à une centaine de kΩ. Le temps de réponse dépend du volume de
matériau utilisé.
Les CTN sont utilisées pour les mesures et le contrôle de la température, la limitation
d'impulsions transitoires, la mesure de flux de liquides.
Les CTP peuvent être utilisées comme détecteur de température, pour protéger des
composants (moteurs, transformateurs) contre une élévation excessive de la
température, comme protection contre des surintensités, comme détecteur de niveau de
liquide (la température de la CTP et donc sa résistance, sera différente lorsque le capteur
est dans l'air ou plongé dans un liquide).
III.2.4 Capteur de présence
III.2.4.1 Définition
Un capteur de mouvement est un dispositif intégré dans un système de protection contre les
intrusions dans une habitation, une entreprise, une usine, etc.
Figure 32: Détecteur de mouvement
III.2.4.2 Principe
Dans notre cas, son principe de fonctionnement est d'être sensible à la chaleur dégagée par un
être vivant.
47
III.2.4.3 Rôle
Son rôle est de détecter des présences anormales dans un environnement. Il perçoit les formes,
les déplacements ou les volumes en utilisant la technique de l'infrarouge. Cet appareil a un rôle
sécuritaire, et doit prémunir contre d'éventuels vols ou agressions. Le choix de son emplacement
est vital.
III.2.4.4 Application
Le détecteur de mouvement transmet toutes les informations enregistrées en temps réel et
permet l’activation d’un ou plusieurs appareils.
III.2.5 Un capteur de toucher
III.2.5.1 Définition
Le Capteur sensitif de touché est un capteur sensible au contact de la peau.
Figure 33: Capteur de touché
III.2.5.2 Principe de fonctionnement
Ce module fournit par défaut du 0v, mais lorsqu'il est touché, il envoie du 5v. Lorsque le module
est connecté à une entrée de l'arduino, on peut attendre à récupérer une valeur de 1023 lorsque
le capteur est touché et 0 lorsqu'il ne l'est pas.
III.2.5.3 Description du Module
A l'arrière du module on trouve un amplificateur de signal, une capacité, un contrôleur de
touché, une LED verte signalant que le module est bien alimenté et une LED jaune dans la
luminosité dépend de la valeur de sortie du module.
Il est à noter que le module réalise une auto-calibration dès qu'il est alimenté. Donc, si
quelqu'un touche la surface de contact à l'allumage, le module ne fonctionnera pas correctement.
Pour redémarrer, éteindre et rallumer le système et s'assurer que personne ne touche la surface
de contact au redémarrage.
48
Ce module est un capteur. Le connecteur est une sortie (output) doit être branché à un
connecteur d'entrée (input).
III.2.5.4 Application
Le capteur de toucher nous permet d’activer quelques appareillages électriques.
III.3 Etapes de manipulation de la carte
Pour la mise en place du système domotique, nous avons réalisé une petite maquette et effectué
quelques montages automatiques comme : l’éclairage, l’ouverture de la porte, le démarrage
d’un ventilateur, l’alarme et la commande à distance en utilisant un émetteur et un récepteur
infrarouge.
III.3.1 Eclairage automatique
Pour cela, nous allons allumer 3 LEDs en fonction de la variation de la lumière.
III.3.1.1 Matériels
Pour la réalisation du montage, nous avons besoin de :
Une breadboard pour la connexion des câbles.
Une photorésistance permettant de détecter la variation de la luminosité.
3 LEDs pour l’éclairage de la maison.
Un Arduino Uno qui permet de contrôler le fontionnement des LEDS.
3 résistances de valeurs indentiques 220 Ω pour limiter le courant entrant dans les 3 LEDS.
Calcul de la valeur des résistances :
L’alimentation avec l’arduino est 5V, chaque LED supporte 20mA. Leur tension de seuil est
de 1.8V.
L'additivité des tensions s'écrit : ULED + UR = 5V
Avec ULED est égale à la tension de seuil (supposée indépendante du courant).
La tension UR vaut donc : UR = 5V - ULED = 5V - 1.8V = 4.2V
Or, le courant dans la résistance est égal à celui de la LED, c'est-à-dire 20mA.
La valeur de la résistance se déduit à partir de ces deux informations :
R = 4.2V / 20mA = 10.2V / 0.02A = 210 Ω
Donc nous avons besoins de 3 résistances de 220 Ω
III.3.1.2 Principe
Une photorésistance est un composant dont la résistivité dépend de la luminosité ambiante. On
va donc s’en servir pour détecter la variation de la luminosité. Elle doit éteindre
49
automatiquement la lumière de la maison grâce à sa fonction. Lorsque la lumière est forte (jour),
la lampe s’éteint. Tandis que si elle est faible (nuit) la lampe s’allume.
III.3.1.2.1 Logigramme
Premièrement, la carte Arduino lira la valeur donnée par la photorésistance. Si cette valeur est
inférieure à 300 c’est-à-dire qu’il fait nuit, il allumera les leds. Dans le cas contraire (valeur de
la photorésistance supérieure à 300 c’est-à-dire qu’il fait jour), les leds seront éteintes. La carte
lira toujours la valeur de la photorésistance et agira en conséquence lors d’un changement.
Figure 34: Logigramme de l’allumage automatique des LEDS
50
III.3.1.2.2 Figures du montage
Les figures suivantes nous montrent le montage :
Figure 35: Vue sur breadboard de l’allumage automatique de l’éclairage
LEDS
Photorésistance
Résistances
220 Ω
51
Figure 36: Schéma électronique de l’allumage automatique de l’éclairage
III.3.1.3 Code de programmation
int phot=A1;
int valPhot=0;
int led1 = 3; // led1 branchée sur la broche 3
int led2 = 5; // led1 branchée sur la broche 5
int led3 = 9; // led3 branchée sur la broche 9
void setup()
{
pinMode(led1, OUTPUT); // initialisation du LED1
pinMode(led2, OUTPUT); // initialisation du LED2
pinMode(led3, OUTPUT); // initialisation du LED3
}
void loop()
{
valPhot=analogRead(phot);
Serial.println(valPhot);
if(valPhot<300)
{
digitalWrite(led1, HIGH); // allume la LED1
digitalWrite(led2, HIGH); // allume la LED2
digitalWrite(led3, HIGH); // allume la LED3
delay(500);
}
else
{
digitalWrite(led1, LOW); // éteint la LED1
digitalWrite(led2, LOW); // éteint la LED3
digitalWrite(led3, LOW); // éteint la LED3
delay(500);
52
}
}
III.3.2 Ouverture de la porte
Pour ouvrir la porte, nous avons commandé un servomoteur à l’aide d’un capteur de toucher.
III.3.2.1 Les matériels
Pour la réalisation du montage, nous avons besoin de :
Un Arduino Uno pour alimenter et recevoir des signaux sur le capteur de touché.
Une breadboard pour connecter les câbles.
Un servomoteur pour ouvrir la porte de la maquette.
Un capteur de touché pour commander l’ouverture de la porte.
III.3.2.2 Principe
Lorsqu’on appuie sur le capteur de toucher, la porte s’ouvre durant un temps déterminé, puis
elle se referme automatiquement.
III.3.2.2.1 Logigramme
La carte Arduino va lire la valeur envoyée par le capteur de toucher. Si cette valeur est
supérieure à 20 c’est-à-dire que quelqu’un l’a touché, la porte s’ouvre pendant 5 s puis elle se
refermera automatiquement. Dans le cas contraire (la valeur du capteur inférieure à 20 cela
signifie qu’il n’y a personne qui touche) alors la porte reste fermée.
53
Figure 37: Logigramme de l’ouverture automatique de la porte
III.3.2.2.2 Figures du montage
Les figures suivantes nous montrent les montages :
54
Figure 38: Vue sur breadboard du montage de l’ouverture de porte
Figure 39: Schéma électronique du montage de l’ouverture de porte
Servomoteur
Résistance
220 Ω Capteur de touché
55
III.3.2.3 Code
On a besoin d’insérer la bibliothèque du servo dans la librairie Arduino.
#include<Servo.h>
int touch=A0;
int valTouch=0;
Servo Monservo;
void setup()
{
Monservo.attach(7);
}
void loop()
{
valTouch=analogRead(touch);
Serial.println(valTouch);
if(valTouch>20)
{
pos = 180; pos >=1 ; pos -= 1;
Monservo.write(pos);
lcd.setCursor(0,0);
lcd.print(" PORTE OUVERTE ");
lcd.setCursor(0,1);
lcd.print(" ENTREE SVP ");
delay(5000);
}
else
{
pos = 0; pos < 180 ; pos += 1;
Monservo.write(pos);
delay(15);
}
delay(1000);
}
III.3.3 Ventilateur
Pour le ventillateur, il nous faut une thermistance, un ventillateur et un afficheur LCD
permettant d’afficher la valeur de la température et de voir si le ventilateur est en marche ou en
arrêt.
III.3.3.1 Asservissement du ventilateur
Considérons un ventilateur dans la salle. Le système est constitué par l'ensemble d’un
ventilateur avec la salle. La sortie de ce système est le démarrage du ventilateur de la pièce. La
commande du système est la variation de la température sur la pièce. Les perturbations peuvent
être la fermeture d'une de la porte ou les rayons du soleil. En boucle ouverte, la commande est
insensible à la sortie. Pour créer un feedback ou contre-réaction, on a utilisé une thermistance.
La commande est alors élaborée en fonction de la consigne (valeur de la température) et de la
sortie (démarrage du ventilateur).
56
Consigne = variation de la
température Commande
Sortie = démarrage du
ventilateur
Figure 40 : Démarrage ventilateur en fonction de la température en BO
III.3.3.2 Matériels
Pour la réalisation du montage, nous avons besoin de :
Un Arduino Uno pour foncionner le ventilateur.
Une breadboard pour le câblage.
Une thermistance pour détecter la variation de la température.
Un potentiomètre pour le réglage du contraste de l’afficheur LCD.
Un afficheur LCD pour lire la valeur de la température
Un transistor PNP et une diode roue libre pour protéger l’arduino.
Une résistance de 220 Ω.
Un MCC 5V
III.3.3.3 Principe
L’afficheur LCD affichera la valeur de la température à l’aide de la thermistance et on peut
régler le contraste de l’afficheur à l’aide du potentiomètre. Le ventilateur sera en marche lorsque
la température augmente (supérieur à 23°C) et il est au repos dans le cas contraire.
III.3.3.4 Logigramme
Tout d’abord, on réinitialise l’écran. La carte Arduino lira la valeur indiquée par la
thermistance. Il affichera alors cette valeur sur l’écran. Si la valeur est supérieure à 23°C alors
elle démarrera le ventilateur. Dans le cas contraire (température inférieure à 23°C), il l’arrêtera.
Ventilateur
+
Salle
Thermistance
57
Figure 41:Logigramme du démarrage automatique du ventilateur
III.3.3.4.1 Figures du montage
Les figures suivantes montrent les schémas de montage :
Diode roue libre
Transistor
Thermistance
Afficheur LCD
Potentiomètre
MCC 5V
58
Figure 42: Vue sur breadboard de l’affichage de température avec arduino
Figure 43: Schéma électronique de l’affichage de température avec arduino
III.3.3.5 Branchement du ventilateur
Pour cela, nous avons utilisé un moteur à courant continu (MCC). Il est vraiment interdit de
brancher directement un MCC sur la carte arduino car c’est une véritable source de parasite qui
pourraient endommager la carte : les moteurs, quand ils tournent, génèrent tout un tas de
parasites qui peuvent être des surtensions très grandes par rapport à leur tension d’alimentation.
De plus, le courant qu’ils demandent est bien trop grand par rapport à ce que peut fournir une
sortie numérique d’une carte Arduino (environ 40 mA). Pour résoudre à ces problème, on doit
utiliser un transistor et une diode roue libre.
Utilisation d’un transistor
Le transistor est un composant électronique actif utilisé pour stabiliser l’alimentation
du MCC. Il est commandé par une sortie de la carte Arduino, la résistance sur la base. Lorsque
l’état de la sortie est au niveau 0, le transistor est bloqué et le courant ne le traverse pas. Le
59
moteur ne tourne pas. Lorsque la sortie vaut 1, le transistor est commandé et devient saturé,
c’est-à-dire qu’il laisse passer le courant et le moteur se met à tourner.
Utilisation d’une diode roue libre
Une diode est un composant électronique qui ne laisse passer le courant que dans un
sens. Un moteur est aussi un générateur électrique car il est capable de convertir de l’énergie
mécanique en énergie électrique même si son rôle principal est de faire l’inverse. Et cette
tension est très dangereuse pour le transistor, d’autant plus qu’elle est très haute et peut atteindre
plusieurs centaines de Volts (phénomène physique lié aux bobines internes du moteur qui vont
se charger). En fait, le moteur va générer une tension à ses bornes et un courant, mais comme
le transistor bloque la route au courant, cette tension ne peut pas rester la même et est obligée
d’augmenter pour conserver la relation de la loi d’Ohm. Le moteur arrive à un phénomène
de charge. Il va, précisément, se charger en tension.
Pour que le moteur se décharge et n’atteigne pas des tensions de plusieurs centaines de Volts
à ses bornes, on utilisera une diode roue libre.
III.3.3.6 Code
On a besoin d’insérer la bibliothèque de l’afficheur LCD pour son fonctionnement.
#include <LiquidCrystal.h>
int vent=4;
float temp;
int tempPin=2;
LiquidCrystal lcd(13, 12, 11, 10, 1, 0);
void setup(){
Serial.begin(9600);
lcd.begin(16,2);
pinMode(vent, OUTPUT);
}
void loop(){
temp=analogRead(tempPin);
temp=temp*0.032;
lcd.setCursor(0,0);
lcd.print(" Temp : ");
lcd.print(temp);
lcd.print("'C ");
if(temp<23.5){
lcd.setCursor(0,1);
lcd.print(" VENTIL EN ARRET ");
digitalWrite(vent, LOW);
}
else{
60
lcd.setCursor(0,1);
lcd.print("VENTIL EN MARCHE");
digitalWrite(vent, HIGH);
}
delay(1000);
}
III.3.4 Alarme
Pour l’alarme, un capteur de mouvement et un bipeur sont nécessaires.
III.3.4.1 Matériels
Pour la réalisation du montage, nous avons besoin de :
Un Arduino Uno pour le fonctionnement du bipeur et le cateur de toucher.
Une breadboard pour la connexion des câbles.
Deux résistances 220 Ω pour le bipeur et le capteur de mouvement
Un bipeur de 5V pour l’alarme
Un capteur de mouvement pour commander l’alarme
III.3.4.2 Principe
Lorsque le capteur détecte un mouvement, il renvoi directement le signal vers le bipeur.
III.3.4.2.1 Logigramme
La carte Arduino va lire l’état du capteur de présence. Si le capteur détecte un mouvement, son
état change alors le bipeur sera activé. On désactivera le désactivera manuellement. Dans le cas
contraire, le bipeur reste inactif.
61
Figure 44: Fonctionnement alarme
III.3.4.2.2 Figures du montage
Les figures du montage sont représentées dans les figures ci-dessous :
Figure 45 : Montage PIR avec un bipeur
Bipeur
Capteur de
mouvement
62
Figure 46: Schéma électronique
III.3.4.3 Code
int buzzer =8;// Borne de sortie
int PIR=2;
int valPIR = 0; // état du capteur
int pirState = LOW; // précédent état du capteur
void setup()
{
Serial.begin(9600);
pinMode(PIR, INPUT);
pinMode(buzzer,OUTPUT);// Définir la sortie du buzzer
}
void loop()
{
Serial.println(digitalRead(PIR));
valPIR = digitalRead(PIR);
int i;
if(valPIR == HIGH) // si on détecte un mouvement
{
if(pirState == LOW) // on regarde s'il y a eu changement d'état
{
for(i=0;i<250;i++){
digitalWrite(buzzer,HIGH);// Faire du bruit
delay(10);// Attendre 20ms
digitalWrite(buzzer,LOW);// Silence
delay(20);// Attendre 20ms
}
delay(1000);
pirState = HIGH; // on stocke l'état
}
}
else // si on ne détecte pas de mouvement
{
if(pirState == HIGH)
64
III.3.5 Télécommande infrarouge
La télécommande infrarouge nous permet de contrôler à distance tous les montages qu’on a
réalisés précédemment.
III.3.5.1 Matériels
Pour la réalisation, nous avons besoin de :
1 récepteur infra-rouge 3 broches 38 kHz (portée 18 fts), type WS 1838B.
1 petite télécommande IR standard à 20 boutons.
1 carte Arduino Uno
1 breadboard et fils de câblage mâle/mâle à connecteur Dupont
III.3.5.2 Principe de fonctionnement
Une diode émet des pulses en infra-rouge pour transmettre un signal de télécommande codé,
vers à un récepteur infra-rouge placé dans un appareil que l'on commande à distance. C'est le
principe de télécommande utilisé sur tous les téléviseurs, magnétoscopes, appareils photos...
On peut l'utiliser pour ses projets personnels de robotique, domotique... à partir d'une petite
télécommande standard, ou en décodant sa propre télécommande de téléviseur par exemple.
La portée est de plusieurs mètres, en ligne droite sans obstacles, le signal est invisible à l'œil
humain.
Il existe de nombreux protocoles de transmissions (NEC, Sony SIRC, Philips RC5, Philips
RC6, données brutes...) et plusieurs manières de coder les informations. Certains protocoles
demandent de répéter trois fois l'information.
Heureusement une bonne librairie pour Arduino gère tout ça.
Les signaux IR sont modulés à 38 kHz pour éviter les interférences avec la lumière ambiante.
Le récepteur 38 kHz gère cette modulation directement.
Ceci permet de ne pas brouiller les appareils IR entre eux et d'avoir plusieurs fonctions par
télécommande (on/off, choix de chaîne, réglage du volume...).
65
III.3.5.3 Réception du signal
Le récepteur infrarouge possède 3 broches : De gauche à droite, vu de face, broches 1 OUT, 2
GND, 3 VCC sur le composant seul.
Figure 47: Récepteur infrarouge
Décodage des touches de la télécommande :
Avec arduino, on peut trouver facilement le code de chaque touche
Tableau 8 : Codes de chaque bouton de la télécommande
18 Boutons Codes (hexadécimale)
L+ E318261B
L- 511DBB
V+ EE886D7F
V- 52A3D41F
P+ F076C13B
P- A3C8EDDB
A+ E5CFBD7F
A- C101E57B
E+ 97483BFB
E- F0C41643
66
III.3.5.4 Applications
Il existe plusieurs application de la télécommande infrarouge, comme :
Télécommander par infrarouge de ses projets (robot, commande de volet roulant,
domotique, éclairage...)
Enregistrer les codes d'une télécommande existante et les ré-émettre à l'identique pour
cloner la télécommande
Regrouper plusieurs télécommandes en une seule (TV + Magnétoscope + DVD +
éclairage du salon + chauffage).
Utilisatiser une télécommande existante pour un autre appareil.
Remplacer d'une télécommande perdue
III.3.5.5 Logigramme
Selon la touche appuyée, il existe divers tâche à accomplir :
Voici les fonctionnements de chaque touche lorsqu’on les appuie :
L+ : allumage LEDS, démarrage ventilateur, et ouverture de la porte
L- : arrêt du système
V+ : démarrage ventilateur
V- : arrêt ventilateur
P+ : ouverture porte
P- : fermeture porte
A+ : déclenchement alarme
A - : arrêt alarme
E+ : démarrage éclairage
E- : arrêt éclairage
67
Figure 48: Fonctionnement télécommande
III.3.5.6 Code
#include <IRremote.h>
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Initialise le recepteur
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Recoit la valeur suivante
}
}
Pour la domotique, la carte arduino est très utile car il a plusieurs fonction. On peut automatiser
l’éclairage en fonction de la variation de la lumière, ouvrir la porte a l’aide d’un capteur de
touché, démarrer un ventillateur selon le changement de la température et activer l’alarme avec
un capteur de mouvement.
68
CONCLUSION GENERALE
Les techniques de domotique sont nées d’un besoin de sécurité, de confort, et surtout
d’économie en matière de temps et d’énergie. La domotique permet de rendre les activités
usuelles simples puisque les appareils domotiques sont automatisés. On parle alors de maison
intelligente. Grâce à l’évolution technologique, les domaines d’application de la domotique se
multiplient.
Généralement, une installation domotique peut être conçue sur trois principaux types de
technologie : la technologie bus filaire, le CPL et la radiofréquence. Dans cet ouvrage, nous
avons utilisé la technologie bus filaire qui est une technologie utilisant un même langage pour
la communication des composants. Pour l’automatisme, on devra utiliser un microcontrôleur.
Ainsi, on a choisi la carte Arduino. Ils existent plusieurs variétés de cette carte mais on a préféré
la carte arduino uno pour sa simplicité. On a seulement besoin d’un logiciel fournit par l’arduino
pour la programmation de la carte, une source d’énergie, un capteur et un afficheur. La liaison
de la carte arduino avec l’ordinateur s’effectue à l’aide d’un câble USB.
Lors de ce travail, on a fait la maquette d’une maison avec le système domotique. On a alors
automatisé l’éclairage en fonction de la lumière du jour. La porte s’ouvre avec un capteur de
toucher. Le ventilateur démarre automatiquement en fonction de la température dans la
chambre. L’alarme se déclenche avec un détecteur de mouvement Et finalement, On a utilisé
une télécommande permettant de contrôler tous les montages qu’on a établis. On peut activer
en même temps ces différents montages, il y a encore tellement de scénarios qu’on peut réaliser.
Mais ces exemples montrent bien que la domotique permet une gestion d’énergie, d’avoir la
sécurité face aux malfaiteurs et surtout le confort.
Ainsi, la domotique simplifie la vie. Là où tout devait se faire, hier, de manière manuelle, il leur
suffit désormais d'appuyer sur un bouton pour actionner l'éclairage, le chauffage, pour ouvrir la
porte d'entrée. Les techniques domotiques actuelles permettent d'ores et déjà aux personnes
âgées de continuer à vivre chez elles, avec ou sans assistance.
On entend aussi parler maintenant d’immotique qui applique l’informatique, l’électronique et
l’automatique à un immeuble mais pas seulement à une maison. C’est alors une domotique de
plus grande envergure. Si la domotique est déjà très attrayante, qu’en est-il alors de
l’immotique ?
B
ANNEXE1 : QUELQUES NOTIONS DE BASE
Fonctions de base Structures de contrôle Syntaxe de base
void setup()
void loop()
if
if...else
for
switch case
while
do... while
break
continue
return
goto
; (point virgule)
{} (accolades)
/ / (commentaire sur une
ligne)
/* * / (commentaire sur
plusieurs lignes)
#define
#include
Opérateurs arithmétiques Opérateurs de
comparaison
Opérateurs booléens
= (égalité)
+ (addition)
- (soustraction)
* (multiplication)
/ (division)
% (modulo)
== (égal à)
!= (différent de)
< (inférieur à)
> (supérieur à)• <= (inférieur
ou égal à)
>= (supérieur ou égal à)
&& (ET booléen)
| | (OU booléen)
! (NON booléen)
Pointeurs Opérateurs bit à bit Opérateurs composés
* pointeur
& pointeur
& (ET bit à bit)
|(OU bit à bit)
^(OU EXCLUSIF bit à
bit)
˜ (NON bit à bit)
<< (décalage à gauche)
>> (décalage à droite)
++ (incrémentation)
-- (décrémentation) (à
revoir)
+= (addition composée)
-= (soustraction
composée)
*= (multiplication
composée)
/= (division composée)
&= (ET bit à bit
composé)
|= (OU bit à bit composé)
C
ANNEXE 2 : LES VARIABLES ET LES CONSTANTES
Constantes prédéfinies Types des données Conversion des types
de données
HIGH | LOW
INPUT | OUTPUT
true | false
boolean
char
byte
int
unsigned in t
long
unsigned long
float (nombres à virgules)
double (nombres à
virgules)
Les chaînes de
caractères
objet String NEW
Les tableaux de
variables
le mot-clé void
(fonctions)
word
PROGMEM
char()
byte()
int()
long()
float()
word()
Expressions
numériques
Portée des variables et
qualificateurs
Expressions numériques
entières
Expressions numériques à
virgule
Portée des variables
static
volatile
const
Utilitaires
sizeof() (opérateur
sizeof )
Référence
Code ASCI I
D
ANNEXE 3 : LES FONCTIONS
Entrées/Sorties
Numériques
Temps Trigonométrie
pinMode (broche, mode)
digitalWrite (broche,
valeur)
int digitalRead(broche)
unsigned long millis()
unsigned long micros()
delay (ms)
delayMicroseconds (us)
sin (rad)
cos (rad)
tan (rad)
Entrées analogiques Math Bits et Octets
int analogRead(broche)
analogReference (type)
min (x, y)
max (x, y)
abs (x)
constrain (x, a, b)
map (valeur, toLow,
fromHigh, toLow,
toHigh)
pow (base, exposant)
sq (x)
sqr t(x)
lowByte ()
highByte ()
bitRead ()
bitWrite ()
bitSe t()
bitClear ()
bit()
Sorties "analogiques"
(génération d'impulsion)
Nombres randomisés
(hasard)
Interruptions Externes
analogWrite (broche,
valeur) - PWM
randomSeed (seed)
long random(max)
long random(min, max)
attachInterrup t(interrupti
on, fonction, mode)
detachInterrup t(interrupt
ion)
Entrées/Sorties
Avancées
Interruptions
tone ()
noTone ()
shiftOu t(broche,
BrocheHorloge, OrdreBit,
valeur)
unsigned long
pulseIn(broche, valeur)
interrupts ()
noInterrupts ()
Communication
Serial
G
BIBLIOGRAPHIE
[1] M.Pujad , Automatisme, 2010
[2] Sirlan technologies, La domotique, 2011
[3] Cottenceau, Microcontrôleur, 2010
[4] J.N. Montagné, Atelier Arduino, 2006
[5] Esquimon, Arduino, 2012
[6] J.N. Montagné, Arduino dossier ressource pour la classe, 2008
[7] B. Latour, Domotique News, 2012
[8] L. Reynier, C'est quoi Arduino, 2010
[9] M. Clergeot, Arduino, qu'est-ce que c'est ?, 2011
[10] Eskimon et olyte, Arduino pour bien commencer en électronique et en programmation,
02 décemre 2012
[11] F. Binet, cours asservissement, 2005
[12] D. Ross-E. Deguine-M.Camus, Asservissement par PID, 30 mars 2010
[13] Jean et F. Fourastier, Domotique et confort : un état des lieux, 2001
[14] Petrella, Formation sur la domotique, 2010
H
WEBOGRAPHIE
[15] http://www.craslab.org
[16] http://www.artsens.org
[17] http://www.addi.org
[18] http://www.pobot.org/
[19] http://www.interface-z.com/
[20] http://www.ladyada.net/learn/arduino/
[21] http://www.arduino.cc/
[22] http://www.louisreynier.com
[23] http://arduino.cc/fr/Main/DebuterPresentationLogiciel
[24] http://www.wikipedia.org
Titre :
« SYSTEME DOMOTIQUE AVEC UN MICROCONTROLEUR DE TYPE
ARDUINO »
Auteur : ANDRIAMAHATANA Tanjona Landry
Directeur de mémoire : Mr RAMAROZATOVO Vony
Adresse : VT11 Bis Ampahateza – Ambohipo
E-mail : [email protected]
Tel : (+261) 34 81 413 51
Nombre de pages : 68
Nombre de figures : 48
Nombre de tableaux : 8
Résumé :
La domotique est un secteur permettant de simplifier la vie car c’est une automatisation des
installations électriques d’un bâtiment. Les domaines d’application de la domotique sont : la
sécurité, le confort, la gestion de l’énergie, et la communication. Notre étude se porte sur la
réalisation d’une petite maquette avec la carte arduino uno. Cette carte est un microcontrôleur
qui peut être programmé pour analyser et produire des signaux électriques de manière à
effectuer des tâches très diverses comme la domotique. Nous avons réalisé un éclairage
automatique de la maquette, une ouverture automatique de la porte, une ventilation
automatique, une alarme et télécommande infrarouge permettant de contrôler à distance toutes
l’installation.
Mots clés : Domotique – Microcontrôleur – Arduino uno – Capteur
Abstract:
Home automation is one area that simplifies life because it is an automation of electrical
systems of a building. The application areas of home automation are: safety, comfort, energy
management, and communication. Our study focuses on the realization of a small model with
the card arduino uno. This card is a microcontroller that can be programmed to analyze and
produce electrical signals so as to perform a variety of tasks such as home automation. We
achieved automatic lighting of the model, an automatic door opening, automatic ventilation,
alarm and infrared remote control to remotely control all the installation.
Keywords: Home automation - Microcontroller - Arduino uno - Sensor