INTRODUCTION AU SYSTEME DOMOTIQUE AVEC UN ...

87
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

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)

63

{

digitalWrite(buzzer,LOW);// Silence

delay(1000);

pirState = LOW;

}

}

}

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 ?

ANNEXES

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

E

ANNEXE 4 : SCHEMA DU MONTAGE

4.1 Sur une platine d’essai :

F

4.1 Schéma électronique :

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