Arduino Nano ESP32 - Télécommande IR

Vous avez probablement déjà rencontré la télécommande infrarouge, également appelée télécommande IR, lorsque vous utilisez des appareils comme les téléviseurs et les climatiseurs à la maison... Dans ce guide, nous apprendrons comment utiliser la télécommande infrarouge (IR) et un récepteur infrarouge pour contrôler l'Arduino Nano ESP32. En détail, nous apprendrons :

Contrôleur IR - Récepteur IR - ESP32

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×IR Remote Controller and Receiver Kit
1×CR2025 Battery
1×Breadboard
1×Jumper Wires
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 à l'aide de signaux infrarouges.
  • Le récepteur IR capte et interprète ces signaux pour contrôler l'appareil.

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

Télécommande infrarouge

La télécommande IR est un appareil portable qui émet des signaux infrarouges. Elle est conçue avec un clavier comportant de multiples boutons :

  • Chaque bouton de la télécommande est attribué à une fonction ou une commande spécifique.
  • Lorsqu'un bouton est pressé, la télécommande émet un signal infrarouge contenant un code unique ou un motif associé au bouton pressé.
  • Ces signaux infrarouges se situent dans le spectre infrarouge et ne sont pas visibles à 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 capteur récepteur IR
image source: diyables.io
Adaptateur de capteur de récepteur IR
image source: diyables.io

Brochage du récepteur IR

Le module ou capteur de réception IR possède trois broches :

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

Comment ça marche

Lorsque l'utilisateur appuie sur un bouton de la télécommande IR

  • La télécommande IR encode la commande correspondant au bouton en signal infrarouge via un protocole spécifique
  • La télécommande IR émet le signal infrarouge codé
  • Le récepteur IR reçoit le signal infrarouge codé
  • Le récepteur IR décode le signal infrarouge codé en commande
  • L'Arduino Nano ESP32 lit la commande provenant du récepteur IR
  • L'Arduino Nano ESP32 associe la commande à la touche pressée

Lorsqu'un bouton est pressé sur la télécommande IR, la séquence d'événements suivante se produit :

  • La télécommande IR encode la commande du bouton en un signal infrarouge utilisant un protocole spécifique.
  • Le signal infrarouge encodé est émis par la télécommande IR.
  • Le récepteur IR capture et reçoit le signal infrarouge encodé.
  • Le récepteur IR décode le signal infrarouge, le reconvertissant en la commande originale.
  • L'Arduino Nano ESP32 lit et récupère la commande du récepteur IR.
  • L'Arduino Nano ESP32 associe ensuite la commande reçue au bouton correspondant qui a été pressé sur la télécommande IR.

En essence, ces étapes décrivent comment l'appui sur un bouton de la télécommande IR est transformé en une commande reconnaissable que l'Arduino Nano ESP32 peut comprendre et traiter.

Régénérer la réponse

Cela peut sembler compliqué, mais ne vous inquiétez pas. Grâce à la bibliothèque conviviale DIYables_IRcontroller library, cela devient incroyablement facile à réaliser.

Diagramme de câblage

Schéma de câblage entre Arduino Nano ESP32 et le module récepteur IR

Schéma de câblage de la télécommande IR Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Schéma de câblage entre Arduino Nano ESP32 et capteur récepteur IR

Schéma de câblage de la télécommande infrarouge Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Schéma de câblage entre Arduino Nano ESP32 et capteur récepteur IR et adaptateur

Avant de connecter le capteur récepteur IR à l'ESP32, vous avez la possibilité de le connecter à l'adaptateur. Cela permet une intégration et une configuration plus faciles du capteur récepteur IR avec l'Arduino Nano ESP32.

Récepteur adaptateur de télécommande IR Arduino Nano ESP32
image source: diyables.io

Comment programmer une télécommande infrarouge

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

Code Arduino Nano ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D7 // The Arduino Nano ESP32 pin connected to IR receiver 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 Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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/arduino-nano-esp32/arduino-nano-esp32-ir-remote-control */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D7 // The Arduino Nano ESP32 pin connected to IR receiver 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

  • Si c'est la première fois que vous utilisez Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
  • Ouvrez le gestionnaire de bibliothèques en cliquant sur l'icône Gestionnaire de bibliothèques dans la barre de navigation gauche de l'Arduino IDE.
  • Recherchez "DIYables_IRcontroller", puis trouvez la bibliothèque DIYables_IRcontroller de DIYables.
  • Cliquez sur le bouton Install pour installer la bibliothèque DIYables_IRcontroller.
Bibliothèque Arduino Nano ESP32 DIYables_IRcontroller
  • Il vous sera demandé d'installer la dépendance de la bibliothèque comme l'indique l'image ci-dessous :
Bibliothèque IRremote Arduino Nano ESP32
  • 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 dans l'IDE Arduino pour charger le code sur Arduino Nano ESP32.
  • 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 de 21 touches une par une, voici le résultat :
COM6
Send
9 8 7 6 5 4 3 2 1 0 200+ 100+ EQ + – || >> << CH+ CH CH-
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vous avez désormais la possibilité de personnaliser le code et de contrôler différents appareils comme des LED, ventilateurs, pompes, actionneurs, et plus encore à l'aide de télécommandes IR. Cela signifie que vous pouvez apporter des modifications au code pour que ces dispositifs répondent à 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!