ESP8266 - Télécommande IR

Vous êtes probablement déjà tombé sur la télécommande infrarouge, également appelée télécommande IR, en utilisant des appareils comme les téléviseurs et les climatiseurs à la maison... Ce tutoriel vous explique comment utiliser la télécommande infrarouge (IR) et un récepteur infrarouge pour contrôler l'ESP8266. En détail, nous apprendrons :

Contrôleur IR - Récepteur IR - ESP8266 NodeMCU

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×IR Remote Controller and Receiver Kit
1×CR2025 Battery
1×Jumper Wires
1×(Optional) 5V Power Adapter
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos de la télécommande IR

Un système de contrôle IR comprend deux composants : une télécommande IR et un récepteur IR.

  • La télécommande IR est utilisée pour envoyer des commandes via des signaux infrarouges.
  • Le récepteur IR capte et interprète ces signaux pour contrôler l'appareil.

Un kit IR est généralement composé des deux composants mentionnés ci-dessus : une télécommande IR et un récepteur IR.

Télécommande IR

La télécommande IR est un appareil portable qui émet des signaux infrarouges. Elle est équipée d'un clavier comportant plusieurs boutons :

  • Chaque bouton de la télécommande remplit une fonction ou une commande distincte.
  • Lorsqu'un bouton est enfoncé, la télécommande émet un signal infrarouge invisible. Ce signal contient un code spécial ou un motif lié au bouton pressé.
  • Comme ces signaux infrarouges appartiennent au spectre infrarouge, ils ne peuvent pas être vus par l'œil humain.
Contrôleur IR
image source: diyables.io

Récepteur infrarouge

Le module récepteur IR est un capteur qui détecte et reçoit les signaux infrarouges émis par la télécommande.

Le récepteur infrarouge détecte les signaux infrarouges entrants et les convertit en code (commande) représentant le bouton pressé sur la télécommande.

Le récepteur IR peut être un capteur ou un module. Vous pouvez utiliser les choix suivants :

  • Module récepteur IR uniquement
  • Capteur récepteur IR uniquement
  • Capteur récepteur IR + Adaptateur
Module de capteur récepteur IR
image source: diyables.io
Adaptateur de capteur récepteur IR
image source: diyables.io

Brochage du récepteur IR

Le module ou capteur récepteur IR a trois broches :

  • Broche VCC : Connectez cette broche à la broche 3,3V ou 5V de l'ESP8266 ou à une source d'alimentation externe.
  • Broche GND : Connectez cette broche à la broche GND de l'ESP8266 ou à une source d'alimentation externe.
  • Broche OUT (Sortie) : Cette broche est la broche de sortie du module récepteur IR. Connectée à une broche d'entrée numérique sur l'ESP8266.

Comment ça fonctionne

Lorsqu'un utilisateur appuie sur un bouton de la télécommande IR, les actions suivantes ont lieu :

  • Le contrôleur de télécommande IR convertit la commande du bouton en un signal infrarouge en utilisant un protocole spécifique.
  • Le contrôleur de télécommande IR émet le signal infrarouge codé.
  • Le récepteur IR capte le signal infrarouge émis.
  • Le récepteur IR décode le signal infrarouge, le retranscrivant en la commande originale.
  • L'ESP8266 lit et reçoit la commande du récepteur IR.
  • L'ESP8266 associe la commande reçue au bouton correspondant pressé sur la télécommande IR.

En résumé, ces étapes illustrent comment la pression d'un bouton sur la télécommande IR est convertie en une commande compréhensible pouvant être utilisée par l'ESP8266.

Ne vous inquiétez pas si cela semble compliqué. Avec l'aide de la bibliothèque DIYables_IRcontroller, cela devient incroyablement facile.

Diagramme de câblage

Schéma de câblage entre ESP8266 et le module récepteur IR

Schéma de câblage de la télécommande IR ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Schéma de câblage entre ESP8266 et capteur récepteur IR

Schéma de câblage de la télécommande IR ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Schéma de câblage entre l'ESP8266, le capteur récepteur IR et l'adaptateur.

Avant de connecter le capteur récepteur IR à l'ESP8266, vous avez la possibilité de le connecter à l'adaptateur. Cela permet une installation plus facile et assure une connexion correcte entre le capteur récepteur IR et l'ESP8266.

Adaptateur récepteur de télécommande IR ESP8266 NodeMCU
image source: diyables.io

Comment Programmer une Télécommande Infrarouge

  • Inclure la bibliothèque :
#include <DIYables_IRcontroller.h> // Bibliothèque pour récepteur IR
  • Déclarez un objet DIYables_IRcontroller_17 ou DIYables_IRcontroller_21 correspondant aux télécommandes IR de 17 touches ou 21 touches :
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // le temps d'antirebond est de 200ms // OU DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // le temps d'antirebond est de 200ms
  • Initialisez le contrôleur IR.
irController.begin();
  • Dans la boucle, vérifiez si une touche est pressée ou non. Si oui, récupérez la touche.
Key17 key = irController.getKey(); // si utilisation d'une télécommande IR 17 touches // OU Key21 key = irController.getKey(); // si utilisation d'une télécommande IR 21 touches
  • Après avoir détecté une pression de touche, vous pouvez effectuer des actions spécifiques en fonction de chaque touche.

Code ESP8266

  • Code ESP8266 pour la télécommande IR 17 touches DIYables
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D5 // The ESP8266 pin D5 connected to IR controller DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key17::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key17::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key17::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key17::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key17::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key17::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key17::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key17::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; case Key17::KEY_STAR: Serial.println("*"); // TODO: YOUR CONTROL break; case Key17::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key17::KEY_SHARP: Serial.println("#"); // TODO: YOUR CONTROL break; case Key17::KEY_UP: Serial.println("UP"); // TODO: YOUR CONTROL break; case Key17::KEY_DOWN: Serial.println("DOWN"); // TODO: YOUR CONTROL break; case Key17::KEY_LEFT: Serial.println("LEFT"); // TODO: YOUR CONTROL break; case Key17::KEY_RIGHT: Serial.println("RIGHT"); // TODO: YOUR CONTROL break; case Key17::KEY_OK : Serial.println("OK"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }
/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D5 // The ESP8266 pin D5 connected to IR controller DIYables_IRcontroller_21 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); } void loop() { Key21 key = irController.getKey(); if (key != Key21::NONE) { switch (key) { case Key21::KEY_CH_MINUS: Serial.println("CH-"); // TODO: YOUR CONTROL break; case Key21::KEY_CH: Serial.println("CH"); // TODO: YOUR CONTROL break; case Key21::KEY_CH_PLUS: Serial.println("CH+"); // TODO: YOUR CONTROL break; case Key21::KEY_PREV: Serial.println("<<"); // TODO: YOUR CONTROL break; case Key21::KEY_NEXT: Serial.println(">>"); // TODO: YOUR CONTROL break; case Key21::KEY_PLAY_PAUSE: Serial.println(">||"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_MINUS: Serial.println("–"); // TODO: YOUR CONTROL break; case Key21::KEY_VOL_PLUS: Serial.println("+"); // TODO: YOUR CONTROL break; case Key21::KEY_EQ: Serial.println("EQ"); // TODO: YOUR CONTROL break; case Key21::KEY_100_PLUS: Serial.println("100+"); // TODO: YOUR CONTROL break; case Key21::KEY_200_PLUS: Serial.println("200+"); // TODO: YOUR CONTROL break; case Key21::KEY_0: Serial.println("0"); // TODO: YOUR CONTROL break; case Key21::KEY_1: Serial.println("1"); // TODO: YOUR CONTROL break; case Key21::KEY_2: Serial.println("2"); // TODO: YOUR CONTROL break; case Key21::KEY_3: Serial.println("3"); // TODO: YOUR CONTROL break; case Key21::KEY_4: Serial.println("4"); // TODO: YOUR CONTROL break; case Key21::KEY_5: Serial.println("5"); // TODO: YOUR CONTROL break; case Key21::KEY_6: Serial.println("6"); // TODO: YOUR CONTROL break; case Key21::KEY_7: Serial.println("7"); // TODO: YOUR CONTROL break; case Key21::KEY_8: Serial.println("8"); // TODO: YOUR CONTROL break; case Key21::KEY_9: Serial.println("9"); // TODO: YOUR CONTROL break; default: Serial.println("WARNING: undefined key:"); break; } } }

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Connectez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'Arduino IDE.
  • Recherchez "DIYables_IRcontroller", puis trouvez la bibliothèque DIYables_IRcontroller par DIYables.
  • Cliquez sur le bouton Install pour installer la bibliothèque DIYables_IRcontroller.
Bibliothèque ESP8266 NodeMCU DIYables_IRcontroller
  • Vous serez invité à installer la dépendance de la bibliothèque comme le montre l'image ci-dessous :
Bibliothèque IRremote ESP8266 NodeMCU
  • Cliquez sur le bouton Install All pour installer la dépendance
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur ESP8266
  • Appuyez sur les touches de la télécommande une par une
  • Vérifiez le résultat sur le moniteur série.
  • Lorsque vous appuyez sur les touches d'une télécommande IR à 17 touches une par une, voici le résultat :
COM6
Send
UP DOWN LEFT RIGHT OK # 0 * 9 8 7 6 5 4 3 2 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous avez désormais la possibilité de personnaliser le code et de contrôler différents dispositifs tels que des LED, des ventilateurs, des pompes, des actionneurs, et plus encore, à l'aide de télécommandes infrarouges. Cela signifie que vous pouvez apporter des modifications au code pour faire réagir ces dispositifs à vos commandes envoyées via la télécommande.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!