Conception et réalisation de la commande à distance d’une maison intelligente à base d’Arduino.par David SADIKI INITELEMATIQUE - Baccalauréat en ingénierie 2019 |
5. Spécifications techniquesParmi ses caractéristiques matérielles, on trouve : Tableau 2Présentation des caractéristiques de la carte Arduino Uno
6.Fonctions générales des broches
L'Arduino Uno peut être alimentée via la
connexion USB ou avec une alimentation externe. Les broches d'alimentation sont les suivants : · Vin pour accueillir la tension d'entrée positive lorsque la carte Arduino est utilisée avec une source detension externe. · 5V,Cette broche délivre une tension de 5V régulée utilisée pour faire fonctionner le microcontrôleur et les autrescomposants de la carte. · 3.3V, il s'agit d'une alimentationfournie par le circuit intégré FTDI (circuit intégré faisant l'adaptation du signal entre le port USB de votre ordinateur et le port série del'ATmega) de la carte. L'intensité maximale disponible sur cette broche est de 50mA.
La carte Arduino Uno a 32 Ko de mémoire FLASH pour stocker le programme. Elle a également 2 ko de mémoire SRAM (volatile) et 1 Kod'EEPROM (non volatile - mémoire qui peut être lue à l'aide de la librairie EEPROM.h).
Chacune des 14 broches numériques de la carte Arduino Uno peut être utilisée comme entrée numérique ou sortie numérique à l'aide des fonctions pinMode () et digitalRead () du langage Arduino.Ils fonctionnent en 5 volts.Chaque broche peut fournir ou recevoir un maximum de 20 mA d'intensité dans les conditions de fonctionnement recommandées et possède une résistance de tirage interne (déconnectée par défaut) de 20 à 50 000 ohms (20-50KÙ). Cette résistance interne s'active sur une broche en entrée à l'aide de la fonction digitalWrite (broche, HIGH). De plus, certaines broches ont des fonctions spécialisées: Tableau 3 Différentes broches entrées/Sorties numériques
La carte Arduino Uno dispose de 6 entrées analogiques portant l'indication de A0 à A5, offrant chacune une résolution de 10 bits à l'aide de la très utile fonction analogRead () du langage Arduino. Par défaut, ces broches mesurent entre la masse et le 5 volts, mais il est possible de modifier l'extrémité supérieure de leur plage de mesure à l'aide de la broche AREF et de la fonction analogReference () du langage Arduino. Note : les broches analogiques peuvent être utilisées en tant que broches numériques.
Il y a trois autres broches disponibles sur la carte Arduino Uno : · IOREF : Cette broche de la carte Arduino fournit la référence de tension avec laquelle le microcontrôleur fonctionne.Un blindage correctement configuré peut lire la tension des broches IOREF et sélectionner la source d'alimentation appropriée ou permettre aux convertisseurs de tension sur les sorties de fonctionner avec 5V ou 3,3V. · AREF (référence analogique): Tension de référence pour les entrées analogiques (si différent du 5V). Utilisée avec la fonction analogReference (). · RESET ou Réinitialiser : Mettre cette broche au niveau BAS entraine la réinitialisation (ou le redémarrage) du microcontrôleur. Généralement utilisée pour ajouter un bouton de réinitialisation sur le circuit qui bloque celui présent sur la carte.
La carte Arduino Uno dispose d'un certain nombre d'installations pour communiquer avec un ordinateur, une autre carte Arduino ou avec d'autres microcontrôleurs.L'ATmega328 fournit une communication série UART TTL (5V), disponible sur les broches numériques 0 (RX) et 1 (TX). Un ATmega16U2 sur la carte canalise cette communication série sur USB et apparaît comme un port de communication virtuel pour le logiciel sur l'ordinateur.Le micrologiciel 16U2 utilise les pilotes COM USB standard et aucun pilote externe n'est nécessaire.Cependant, sous Windows, un fichier .inf est requis. Le logiciel Arduino (IDE) comprend un moniteur série sur l'ordinateur et qui sert d'interface pour échanger de simples données textuelles vers et depuis la carte.Les voyants RX et TX de la carte clignotent lors de la transmission de données via le port USB vers série et la connexion USB à l'ordinateur (mais pas pour la communication série sur les broches 0 et 1).Une bibliothèque SoftwareSerial permet la communication série sur n'importe laquelle des broches numériques de l'Uno.
Le ShieldArduinoEthernet est un
module Arduino additionnel aux cartes Uno, DuemilanoveouMega
qui permet de les rendre communicantes sur un réseau
filaireEthernet. Figure 4.2-2 le module Ethernet Shield HanRun HR11105A 17/32 Le module Ethernet est composé de : · Un Port Ethernet. · Une circuit intégréWiznet W5100 supportant le protocole TCP/IP et 4 connexionsen même temps. · Un emplacement pour carte Micro SD pour y stocker ou envoyer des données. · Des borniers embrochables déportés de votre carte Arduino. · 7LEDs permettant d'afficher les informations :
Pour motoriser la porte principale, on a pensé à utiliserun servomoteur vu de sa souplesse et sa simplicité de commande. Les servomoteurs servent en principe à actionner les
parties mobiles d'un système. Ils sont prévuspour être
commandés facilement en position ou en vitesse. En effet, ils sont
équipés d'un systèmed'asservissement basé sur un
potentiomètre rotatif qui sert de capteur de rotation. · Un moteur à courant continu de petite taille ; · Un réducteur en sortie de ce moteur diminuant la vitesse maisaugmentant le couple. · Un potentiomètre (faisant fonction de diviseur résistif) quigénère une tension variable, proportionnelle à l'angle de l'axede sortie ; · Un dispositif électronique d'asservissement ; · Un axe dépassant hors du boîtier avec différents bras ou roues de fixation. Ils sont faciles à utiliser car ils ne nécessitent qu'une source de tension continue et une sortie PWM du microcontrôleur. Les servomoteurs sont commandés par
l'intermédiaire d'un câble électrique à 3
fils qui Comme le montre la figure 4.2-3, un servomoteur se pilote par l'intermédiaire d'un câble à 3 fils. Ce câble permet à la fois del'alimenter et de lui transmettre des consignes de position par le fil de signal : · Le noir ou marron : La masse · Le rouge : La tension d'alimentation continue (+) · Le jaune, orange ou blanc : Le signal de commande PWM
Le capteur de flamme KY-026 est un capteur qui permet de mesurer des longueurs d'onde sur une plage comprise entre 760 nm et 1100 nm. Ce capteur réagira donc en présence d'une flamme. Figure 4.2-4 Capteur de flamme KY-026[10] La sortie varie en présence d'une flamme (la photodiode est sensible au spectre lumineux généré par une flamme). Il a deux sorties : · Sortie numérique (DO): un signal est émis si une flamme détectée. · Sortie analogique (AO): mesure directe du capteur. Signaux de tension de sortie sur la résistance thermique en tempsréel. LED1: indique que le capteur est alimenté en tension. LED2: indique qu'une flamme est détectée. a. Caractéristiques du capteur · Catégorie : module de détection · Extrêmement sensible aux longueurs d'ondes entre 760-1100nm · Plage d'angle de détection: environ 60 degrés · Seuil de détection de flamme modifiable par un potentiomètre · Tension d'alimentation:DC 3.3 à 5.5 V. b. Fonctionnement du capteur Ce module est composé de trois éléments fonctionnels. Le capteur situé à l'avant du module effectue la mesure, le signal analogique est ensuite envoyé sur l'amplificateur. Celui-ci amplifie le signal en fonction du gain déterminé par le potentiomètre et envoie le signal à la sortie analogique du module. Il convient de noter que le signal est inversé: plus la valeur mesurée par le capteur est haute, plus la tension de sortie est faible. La troisième partie est composée d'un comparateur qui commute la sortie numérique et la diode lorsque le signal tombe en dessous d'une certaine valeur. La sensibilité peut être ajustée au moyen du potentiomètre comme décrit ci-dessous:
Figure 4.2-5 potentiomètre pour ajuster la sensibilité du capteur. Ce type de capteur ne délivre pas des valeurs absolues (par exemple, la température mesurée avec précision en ° C), mais des valeurs relatives. On définit une valeur limite par rapport à une valeur normale donnée et le module émet un signal si cette limite est dépassée. c. Brochage
Figure 4.2-6 branchement sur le breadboard · Signale numérique = [Pin X] · +V = [Pin 5V] · GND = [Pin GND] · Signal analogique = [Pin A0]
Afin de garder de la fraîcheur au sein de l'habitat, on
a intégré dans notre système domotique
unsous-système d'acquisition de température et d'humidité
avec le capteur DHT11. Ce capteur possède 3 broches espacées de 2,45mm ce quipermet de le brancher facilement sur une breadboard. Figure 4.2-7 capteur de température et humidité DHT11 a. Caractéristiques · Alimentation en courant continu comprise entre 3.3V et 5V. · Nombre de broches: 3 ou 4 · Période de collecte du signal : 2s · Mesure de la température de 0 à 50°C. · Mesure du taux d'humidité de 20 à 96% RH. · Consommation : Comprise entre 0.5 mA et 2.5 mA · Dimension (Longueur, largeur, Hauteur): 15.5mm, 12mm, 5.5mm. · Précision pour la mesure de température: #177; 2° C · Précision pour le taux d'humidité: #177; 5% RH · Sensibilité pour la température : #177; 1% RH · Sensibilité pour l'humidité : 1° C b. Brochage du capteur Les capteurs DHT11 communiquent avec le microcontrôleur via une unique broche d'E/S, dont on verra ensemble le principe de fonctionnement dans le point suivant. Figure 4.2-8 brochage des pins du capteur sur Arduino [11] Le brochage du capteur est le suivant : · La broche n°1 est la broche d'alimentation (5 volts ou 3.3 volts). · La broche n°2 est la broche de communication. · La broche n°3 n'est pas utilisée et ne doit pas être câblée. · La broche n°4 est la masse du capteur (GND). c. Principe de fonctionnement du capteur Le capteur DHT11 a la particularité de communiquer avec le microcontrôleur via une unique broche d'E/S. Bien que cela soit marqué "One Wire" un peu partout sur le document constructeur du capteur, il ne s'agit pas d'un véritable bus de communication 1-Wire. Il s'agit simplement d'un protocole de communication propriétaire, utilisant un seul fil et nécessitant des timings très précis. La communication avec un capteur DHT11 se fait en 3 étapes : · Tout d'abord, le microcontrôleur maître (la carte Arduino dans notre cas) réveille le capteur en plaçant la ligne de données à LOW pendant au moins 18ms. Durant ce laps de temps, le capteur va se réveiller et préparer une mesure de température et d'humidité. Une fois le temps écoulé, le maître va libérer la ligne de données et passer en écoute. · Une fois la ligne de données libérée, le capteur répond au maître (pour montrer qu'il est bien réveillé) en maintenant la ligne de données à LOW pendant 80us puis à HIGH pendant 80us. · Le capteur va ensuite transmettre une série de 40 bits (5 octets). Les deux premiers octets contiennent la mesure de l'humidité. Les deux octets suivants contiennent la mesure de la température et le cinquième octet contient une somme de contrôle qui permet de vérifier que les données lues sont correctes.
Les afficheurs LCD alphanumériques présentent une solution facile d'emploi et bon marché de dotervotre projet d'une interface indépendante de votre PC. Vu de l'extérieur, les écrans LCD alphanumériques sont essentiellement caractérisés par leur taille. Figure 4.2-9 afficheur LCD 16x2
Cet écran possède un connecteur 16 broches. Ceconnecteur véhicule plusieurs signaux dont une partie forme un bus de communication parallèle 4 ou8 bits selon la configuration choisie ainsi que les signaux permettant de contrôler la communicationentre l'Arduino et l'écran. La figure 4.2-11 ci-dessous donne la nomenclature des broches de ce connecteur : Figure 4.2-10 Connecteur de l'afficheur LCD Ces broches ont le rôle suivant : Tableau 4 Nomenclature du connecteur de l'afficheur LCD
Un buzzer ou un bipeur est un élément électromécanique ou piézoélectrique qui produit un son caractéristique quand on lui applique une tension : le bip. Certains nécessitent une tension continue, d'autres nécessitent une tension alternative.
Afin d'assurer l'accès sécurisé à l`habitat, on a pensé à introduire dans notre système de commande, unsous-système permettant à l'utilisateur d'accéder chez lui tout en introduisant un code sécurisé.Pour cela on a besoin d'un clavier matriciel pour entrer le mot de passe d'ouverture de la porte.
Un clavier matriciel (dans notre cas 16 touches) dispose uniquement de 8 broches pour la gestion deses touches. L'organisation est de 4 colonnes et 4 lignes.
Figure 4.2-12 clavier matriciel et son schéma de principe
Pour le bronchement du clavier matriciel avec la carte Arduino Uno, on a choisi les broches numériques de (D2 à D9) avec (D2 à D5 vers les colonnes et de D6 à D9 vers les lignes) : Figure 4.2-13 connexion du clavier sur arduinoUno
Nous avons utilisé les LEDs entant que lampes.Une diode électroluminescente (DEL, en anglais : Light-Emitting Diode LED), est un composant optoélectronique émettant de la lumière lorsqu'il est parcouru par un courant électrique dans le sens direct. Une LED est donc une diode qui émet de la lumière. Comme toute diode elle comporte une anode (borne +) qui est la patte la plus longue et une cathode (borne -) qui est la patte la plus courte. Il en existe de plusieurs types de couleur: rouge, jaune, orange, banche, bleu, verte, ... Pour qu'une LED s'allume il faut obligatoirement relier sa patte négative à la borne négative de l'alimentation et sa patte positive à la borne positive de l'alimentation. Si la LED est branchée à l'envers elle ne s'allumera pas (le courant ne la traversera pas). De plus elle ne doit pas être traversée par un courant trop fort, c'est pour cela qu'il est indispensable de brancher une résistance en série avec la LED. On notera qu'une résistance n'a pas de sens de branchement.
Pour se connecter au réseau local du système domotique via le module Ethernet Shield HunRun, on a besoin d'une passerelle pour que l'utilisateur puisse accéderà l'application de commande.
Figure 4.2-15 point d'accès TP-Link. Caractéristiques · Borne d'accès sans fil · Débit de transfert de données :300 Mb/s · Bande de fréquence :2.4 GHz · Normes de conformité: IEEE 802.11b, IEEE 802.11g, IEEE 802.11n · Nombre d'antennes : 2. |
|