- Explication de travail:
- Décodage des signaux de télécommande IR à l'aide d'Arduino:
- Description du circuit:
- Description du code:
Auparavant, nous avons couvert de nombreux types d' automatismes domestiques utilisant différentes technologies telles que la domotique basée sur DTMF, la domotique contrôlée par PC utilisant Arduino, la domotique contrôlée par Bluetooth. Dans ce projet, nous utilisons la communication sans fil infrarouge pour contrôler les appareils ménagers. Dans ce projet, Arduino est utilisé pour contrôler l'ensemble du processus. Nous envoyons des commandes au système de contrôle en utilisant une télécommande IR TV / DVD / MP3 pour contrôler les appareils électroménagers AC. Après avoir reçu le signal de la télécommande IR, Arduino envoie le signal associé aux relais qui sont responsables de l'allumage ou de l'extinction des appareils ménagers via un pilote de relais.
Explication de travail:
Le fonctionnement de ce projet est facilement compréhensible. Lorsque nous appuyons sur n'importe quel bouton de la télécommande IR, la télécommande envoie un code sous forme de train d'impulsions codées en utilisant une fréquence de modulation de 38Khz. Ces impulsions sont reçues par le capteur TSOP1738 et lues par Arduino, puis Arduino décode le train d'impulsions reçu en une valeur hexadécimale et compare cette valeur décodée avec la valeur hexadécimale prédéfinie du bouton enfoncé. Si une correspondance se produit, Arduino effectue une opération relative et le résultat correspondant est également affiché sur l'écran LCD 16x2 en utilisant les commandes appropriées. Ici, dans ce projet, nous avons utilisé 3 ampoules de couleurs différentes, pour la démonstration qui indique Fan, Light et TV.
Il existe de nombreux types de télécommande infrarouge disponibles pour différents appareils, mais la plupart d'entre eux fonctionnent sur un signal de fréquence d'environ 38 KHz. Ici, dans ce projet, nous contrôlons les appareils ménagers à l'aide d'une télécommande IR TV. Pour détecter le signal à distance IR, nous utilisons le récepteur IR TSOP1738. Ce capteur TSOP1738 peut détecter un signal de fréquence 38Khz. Le fonctionnement de la télécommande IR et du TSOP1738 peut être décrit en détail dans cet article: Émetteur et récepteur IR
Composants:
- Arduino UNO
- TSOP1738
- Télécommande IR TV / DVD
- ULN2003
- Relais 5 volts
- Ampoule avec support
- Fils de connexion
- Planche à pain
- Écran LCD 16x2
- Source de courant
- PVT
- IC 7805
Ici, dans ce projet, nous avons utilisé 7, 8 et 9 boutons numériques de la télécommande IR, pour contrôler respectivement le ventilateur, la lumière et la télévision et le bouton ON / OFF (bouton d'alimentation) est utilisé pour allumer et éteindre tous les appareils simultanément.
Ici, nous avons utilisé la méthode de bascule pour ON et OFF le seul appareil ménager. Méthode Toggle n'est rien d'autre que d'obtenir cela, que le bouton soit pressé même pas de fois ou le nombre impair de fois. Cela se trouve en obtenant le rappel après l'avoir divisé par 2 (i% 2), s'il y a un rappel, l'appareil sera allumé et si le rappel est 0, il sera désactivé. Supposons que la touche 7 soit enfoncée sur la télécommande, puis la télécommande envoie un signal à Arduino via le récepteur IR TSOP. Ensuite, Arduino le décode et stocke la valeur décodée dans la variable de résultats. Maintenant, la variable de résultats a une valeur hexadécimale 0x1FE00FF, après l'avoir mise en correspondance avec la valeur hexadécimale prédéfinie de la clé 7 (voir l'image ci-dessus), Arduino allume le ventilateur. Maintenant, lorsque nous appuyons à nouveau sur la même touche (touche 7), IR envoie le même code. Arduino obtient le même code et correspond au même code que précédemment, mais cette fois, le ventilateur est désactivé en raison du basculement du bit (i% 2).
Décodage des signaux de télécommande IR à l'aide d'Arduino:
Voici une liste des codes de sortie décodés à distance de type DVD NEC:
Si vous ne connaissez pas la sortie décodée de votre télécommande infrarouge, elle peut être facilement trouvée, suivez simplement ces étapes:
- Téléchargez la bibliothèque infrarouge à partir d'ici
- Décompressez-le et placez-le dans votre dossier «Bibliothèques» Arduino. Puis renommez le dossier extrait en IRremote.
- Exécutez le programme ci-dessous à partir de votre Arduino et ouvrez la fenêtre Serial Monitor dans Arduino IDE. Maintenant, appuyez sur n'importe quel bouton de la télécommande infrarouge et voyez la sortie hexadécimale décodée correspondante dans la fenêtre Serial Monitor.
* IRremote: IRrecvDemo - démontre la réception de codes IR avec IRrecv * Un détecteur / démodulateur IR doit être connecté à l'entrée RECV_PIN. * Version 0.1 juillet 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
Le programme ci-dessus est tiré du dossier 'examples' de la bibliothèque IRremote, vous pouvez consulter d'autres exemples pour en savoir plus sur l'utilisation de la télécommande IR. C'est ainsi que nous avons décodé la sortie de la télécommande IR.
Description du circuit:
Les connexions de ce circuit sont très simples ici un affichage à cristaux liquides est utilisé pour afficher l'état des appareils ménagers qui est directement connecté à arduino en mode 4 bits. Les broches de données de l'écran LCD à savoir RS, EN, D4, D5, D6, D7 sont connectées à la broche numérique Arduino numéro 6, 7, 8, 9, 10, 11. Et la broche de sortie de TSOP1738 est directement connectée à la broche numérique 14 (A) d'Arduino. Et la broche Vcc est connectée à une broche +5 volts et GND connectée à la borne de terre du circuit. Un pilote de relais, à savoir ULN2003, est également utilisé pour piloter les relais. Les relais SPDT 3 5 volts sont utilisés pour contrôler la LUMIÈRE, le VENTILATEUR et la TV. Et les relais sont connectés aux broches arduino numéros 3, 4 et 5 via le pilote de relais ULN2003 pour contrôler respectivement la LUMIÈRE, le FAN et la télévision.
Description du code:
Dans la programmation d'une partie de ce projet Tout d'abord dans la programmation, nous incluons la bibliothèque pour télécommande IR qui est facilement disponible chez Google. Et définissez pin et déclarez des variables.
#comprendre
Et puis incluez un en-tête pour l'affichage à cristaux liquides, puis nous définissons les données et les broches de contrôle pour les écrans LCD et les appareils ménagers.
#comprendre
Après cela, nous devons initialiser l'écran LCD et indiquer la direction des broches utilisées pour le ventilateur, la lumière et la télévision.
void setup () {Serial.begin (9600); lcd.begin (16,2); pinMode (ventilateur, sortie); pinMode (lumière, sortie); pinMode (TV, SORTIE);
Comme déjà expliqué, une partie du code ci-dessous est utilisée pour comparer la valeur hexadécimale reçue au code hexadécimal déjà défini de ce bouton. S'il correspond, une opération relative est effectuée en utilisant les fonctions appropriées qui sont données dans le code.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); retard (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);