Figure 1 : Un système de télécommande infrarouge compact et fiable pour piloter 2 canaux à distance.
⚠️ AVERTISSEMENT : SÉCURITÉ ÉLECTRIQUE
- Relais et Tension Secteur : Si vous utilisez les relais pour commuter du 230V AC, respectez les normes de sécurité électrique. Utilisez des borniers isolés et un boîtier approprié.
- LEDs IR Puissantes : Les LEDs IR émettent un rayonnement invisible mais potentiellement nocif pour les yeux à courte distance. Ne regardez jamais directement les LEDs pendant l'émission.
- Polarité des Composants : Respectez scrupuleusement la polarité des condensateurs électrolytiques, diodes et LEDs lors de l'assemblage.
Bienvenue sur TechFix Hub ! La télécommande infrarouge reste l'une des technologies les plus fiables et économiques pour le contrôle à distance courte portée. Contrairement aux solutions RF ou Bluetooth, l'IR offre une communication directionnelle, sans interférence avec d'autres appareils, et avec une consommation énergétique minimale.
Dans ce guide, nous allons d'abord explorer le système classique à base de PIC12F629, un chef-d'œuvre d'efficacité matérielle, puis vous proposer une upgrade Maker moderne avec ESP32/Arduino qui offre flexibilité, connectivité WiFi et code open-source.
🔧 1. Le Système Classique à PIC12F629
Ce système repose sur une architecture élégante et minimaliste :
- Émetteur Ultra-Compact : Un PIC12F629 (8 broches) gère 2 boutons, encode les codes IR, et pilote 2 LEDs IR via un transistor NPN (BC639). Le circuit tient dans un boîtier porte-clés et consomme quasi-zéro courant au repos.
- Récepteur Intelligent : Un second PIC12F629 décode les signaux reçus par un module IR38DM et pilote 2 relais 12V via des transistors BC547. Une EEPROM interne permet l'apprentissage des codes.
- Multi-Récepteurs : L'émetteur peut mémoriser 8 paires de codes différentes, permettant de contrôler jusqu'à 8 récepteurs indépendants avec la même télécommande.
Principe de Fonctionnement :
- Au repos, le PIC est en mode sommeil (consommation < 1 µA).
- La pression d'un bouton (SW1 ou SW2) réveille le microcontrôleur.
- Le PIC génère un code IR modulé à 38 kHz via la broche GP2.
- Le transistor T1 amplifie le signal et alimente les 2 LEDs IR en série.
- Le récepteur démodule le signal 38 kHz et décode le message.
- Si le code correspond, le relais correspondant change d'état (toggle).
⚠️ 2. Limitations du Système à PIC12F629
Bien que techniquement brillant, ce système présente quelques contraintes pour le maker moderne :
- Code Propriétaire : Les PIC doivent être pré-programmés en usine avec un firmware spécifique. Impossible de modifier le comportement sans équipement de programmation dédié.
- Pas de Connectivité : Le système est isolé, sans possibilité d'intégration avec une box domotique, un smartphone ou Internet.
- Protocole Fermé : Le format des codes IR n'est pas documenté, rendant difficile l'interopérabilité avec d'autres appareils IR du commerce.
- Approvisionnement : Les PIC12F629 pré-programmés deviennent difficiles à trouver en 2026.
🚀 3. L'Upgrade "TechFix Hub" : ESP32 + Bibliothèque IRremote
Voici comment recréer un système équivalent (voire supérieur) avec des composants standards et du code open-source :
Composants Modernes :
- Émetteur : ESP32 DevKit + 2 boutons poussoirs + LED IR 940nm + transistor NPN (2N2222) + résistance 100Ω
- Récepteur : ESP32 DevKit + récepteur IR TSOP38238 + module 2 relais 5V
- Bibliothèque :
IRremote(Arduino) qui supporte NEC, Sony, RC5, RC6 et des dizaines d'autres protocoles standards
Code Émetteur (ESP32) :
#include <IRremote.hpp>
const int IR_LED_PIN = 5;
const int BUTTON1_PIN = 4;
const int BUTTON2_PIN = 2;
// Codes NEC pour 2 canaux
const uint32_t CODE_CHANNEL_1 = 0x00FFA25D;
const uint32_t CODE_CHANNEL_2 = 0x00FF629D;
void setup() {
Serial.begin(115200);
IrSender.begin(IR_LED_PIN);
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
Serial.println("Émetteur IR prêt !");
}
void loop() {
// Bouton 1 : Canal 1
if (digitalRead(BUTTON1_PIN) == LOW) {
Serial.println("Émission code Canal 1");
IrSender.sendNEC(CODE_CHANNEL_1, 32);
delay(500); // Anti-rebond
}
// Bouton 2 : Canal 2
if (digitalRead(BUTTON2_PIN) == LOW) {
Serial.println("Émission code Canal 2");
IrSender.sendNEC(CODE_CHANNEL_2, 32);
delay(500);
}
delay(50);
}
Code Récepteur (ESP32) :
#include <IRremote.hpp>
const int IR_RECV_PIN = 15;
const int RELAY1_PIN = 16;
const int RELAY2_PIN = 17;
const uint32_t CODE_CHANNEL_1 = 0x00FFA25D;
const uint32_t CODE_CHANNEL_2 = 0x00FF629D;
bool state_relay1 = false;
bool state_relay2 = false;
void setup() {
Serial.begin(115200);
IrReceiver.begin(IR_RECV_PIN, ENABLE_LED_FEEDBACK);
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
digitalWrite(RELAY1_PIN, LOW);
digitalWrite(RELAY2_PIN, LOW);
Serial.println("Récepteur IR prêt !");
}
void loop() {
if (IrReceiver.decode()) {
uint32_t received_code = IrReceiver.decodedIRData.decodedRawData;
Serial.print("Code reçu : 0x");
Serial.println(received_code, HEX);
if (received_code == CODE_CHANNEL_1) {
state_relay1 = !state_relay1;
digitalWrite(RELAY1_PIN, state_relay1);
Serial.print("Relais 1 : ");
Serial.println(state_relay1 ? "ON" : "OFF");
}
if (received_code == CODE_CHANNEL_2) {
state_relay2 = !state_relay2;
digitalWrite(RELAY2_PIN, state_relay2);
Serial.print("Relais 2 : ");
Serial.println(state_relay2 ? "ON" : "OFF");
}
IrReceiver.resume();
}
}
✅ 4. Avantages de la Solution Moderne
🌐 5. Extensions Avancées : Vers la Domotique Connectée
Avec l'ESP32, vous pouvez facilement étendre les fonctionnalités :
- Contrôle via Smartphone : Ajoutez un serveur web local pour contrôler les relais depuis une interface HTML responsive.
- Intégration MQTT : Publiez l'état des relais sur un broker MQTT et intégrez-les à Home Assistant pour des automatisations complexes.
- Apprentissage de Codes : Utilisez le mode "IRrecvDump" de la bibliothèque IRremote pour capturer les codes de n'importe quelle télécommande IR existante et les reproduire.
- Contrôle Vocal : Connectez le système à Alexa ou Google Home via IFTTT ou un bridge MQTT pour un contrôle à la voix.
📡 6. Guide des Protocoles IR Courants
🔗 Pour Aller Plus Loin sur TechFix Hub
Maîtrisez la domotique et les communications sans fil avec nos guides complémentaires :
✅ Conclusion
Le système TX-RX infrarouge à base de PIC12F629 reste une référence pédagogique en matière d'efficacité matérielle et de consommation ultra-faible. Cependant, l'upgrade vers ESP32 + bibliothèque IRremote ouvre un monde de possibilités : code open-source, protocoles standards, connectivité WiFi, et intégration domotique complète. Que vous choisissiez l'approche classique pour apprendre les fondamentaux ou la solution moderne pour un projet connecté, vous maîtriserez une technologie de communication robuste et universelle.
🛠️ Vous construisez un système de télécommande ?
Vous avez des questions sur le choix du protocole IR, l'intégration MQTT, ou le dimensionnement des LEDs IR ? Posez votre question dans les commentaires ci-dessous, la communauté TechFix Hub se fera un plaisir de vous aider !