L’IR Controller Shield prodotto da Wemos (LOLIN) è un modulo di espansione pensato per semplificare l’integrazione della comunicazione a infrarossi (IR) nei progetti basati su Wemos D1 mini / ESP8266.
Questo shield consente sia la trasmissione sia la ricezione di segnali IR, rendendolo ideale per realizzare telecomandi universali, sistemi di automazione domestica e interfacce di controllo per robot. Per altri shield specifici per Wemos D1 mini vedere l’articolo Wemos D1 mini – Raccolta Shield disponibili

Indice
Descrizione del IR Controller Shield
L’IR Controller Shield (link al sito del costruttore) è progettato per essere montato direttamente sopra una Wemos D1 mini, mantenendo la filosofia “plug & play” tipica degli shield Wemos.
Sulla scheda sono presenti:
- LED IR trasmittenti (IR1–IR4) disposti sui lati, per una buona copertura angolare
- Ricevitore IR integrato (RECV), compatibile con i protocolli più comuni
- Resistenze di limitazione per i LED IR
- Serigrafia chiara con indicazione dei pin GPIO utilizzati
Grazie alla doppia funzione SEND/RECV, lo shield può: apprendere i codici da un telecomando IR e ritrasmetterli verso altri dispositivi (TV, climatizzatori, robot, ecc.)
Caratteristiche principali
✅ Compatibile con Wemos D1 mini (ESP8266)
✅ Trasmissione e ricezione IR su un’unica scheda
✅ Supporto ai principali protocolli IR (NEC, Sony, RC5, RC6, ecc.)
✅ Alimentazione a 5V e 3.3V
✅ Dimensioni compatte, ideale per progetti embedded
✅ Perfetto per domotica, robotica e reverse engineering di telecomandi
Schema del IR Controller Shield
Lo schema elettrico dello shield (allegato come PDF) mostra chiaramente la separazione tra le sezioni di trasmissione e ricezione IR, in particolare abbiamo:
Sezione Trasmissione IR
I LED IR (IR1–IR4) tipo IR12-21C (datasheet) sono pilotati da un GPIO (di default D3/GPIO0) dell’ESP8266 tramite Q1, un BSS138 (datasheet) un MOSFET a canale N (N-Channel Enhancement-Mode MOSFET), utilizzato per la commutazione e resistenze di limitazione da 51 Ω, permettendo l’emissione modulata a 38 kHz.
Sezione ricezione IR
Il ricevitore IR, U1 tipo IRM-H638T (datasheet) è collegato a un GPIO ( di default D4/GPIO2)dedicato e fornisce un segnale digitale demodulato pronto per essere interpretato dal microcontrollore.

Pin di connessione
I pin utilizzati sono serigrafati come SEND e RECV, facilitando la configurazione software.
Sono disponibili tutti i pin principali del D1 mini (D0–D8, RX, TX, A0, 3V3, 5V, GND).
Può essere modificato il pin a cui collegare i trasmettitori o il ricevitore, la configurazione di default è : Sender – D3/GPIO0, Receiver – D4/GPIO2)

Lo schema conferma che lo shield non richiede componenti esterni aggiuntivi ed è immediatamente utilizzabile.
Dove trovare il modulo
Il modulo potrà essere acquistato in rete , per esempio sul sito Aliexpress. Vi sarà inviato in una busta antistatica.



Nella confezione, oltre alla scheda, sono presenti 2 pinstrip da saldare con l’utilizzo di un saldatore a stagno. In questo caso vedere l’articolo Come eseguire delle buone saldature
Test di lettura di un telecomando
Il primo test che effettueremo è quello di verificare che il ricevitore sia in grado di decodificare i segnali emessi da un telecomando ad infrarossi.
Per la lettura di dati occorrono:
- Scheda Wemos D1 mini (la trovate sul sito Homotix codice WED1MINIV3)
- IR Controller Shield
Modulo D1 mini V 3.1.0 |
IR Controller Shield |
Schema dei collegamenti
Lo IR Controller Shield è stato concepito per essere installato direttamente sopra (o sotto) il Modulo D1 mini per questo il suo PCB ha le stesse dimensioni.
Libreria di gestione del sensore
Per facilitare l’uso dell’ IR Controller Shield per Wemos D1, è necessario installare l’apposita libreria.
Per fare questo andremo su Sketch → Includi Libreria → Gestisci libreria→ cerca “IRremoteESP8266” → installa
Per informazioni su come istallare la libreria vedere l’articolo Arduino – Tutorial, come installare una libreria

Codice utilizzato
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <IRremoteESP8266.h> #include <IRrecv.h> #include <IRutils.h> #define IR_PIN 2 IRrecv irrecv(IR_PIN); decode_results results; void setup() { Serial.begin(115200); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.println(resultToHexidecimal(&results)); irrecv.resume(); } } |
Ora se attiverete il monitor seriale vi apparirà il codice emesso dal vostro telecomando premendo il tasto.
Sotto l’esempio dei codici emessi per i tasti: 0, 1, 2 e 3.

Gestione di alcuni led tramite il telecomando
Vediamo ora di comandare alcuni led tramite il telecomando. Lo schema prevede in questo caso i seguenti componenti:
- Scheda Wemos D1 mini;
- IR Controller Shield;
- Modulo KS0310 Traffic Light prodotto Keyestudio;
- Wemos tripler base (opzionale);
- Battery Shield; (opzionale)
- Cavi di collegamento.
![]() |
IR Controller Shield |
![]() |
![]() |
|
![]() |
Schema dei collegamenti


Codice del programma per gestione LED
Sotto è riportato lo sketch per i test, nel vostro dovrete sostituire i codici relativi alla pressione dei tasti: 0, 1, 2 e 3.
Premendo i tasti 1 2 e 3 si accenderanno i relativi led presenti sul modulo Traffic Light ripremendolo questo si spegnerà. Se premerete invece il tasto 0, tutti i led che sono accesi si spegneranno.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
#include <IRremoteESP8266.h> #include <IRrecv.h> #include <IRutils.h> // Pin IR receiver (Wemos IR Shield usa D4 = GPIO2) #define IR_PIN 2 // LED #define LED1 14 // D5 #define LED2 12 // D6 #define LED3 13 // D7 bool statoLED1 = false; bool statoLED2 = false; bool statoLED3 = false; IRrecv irrecv(IR_PIN); decode_results results; void setup() { Serial.begin(115200); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); irrecv.enableIRIn(); // Avvia ricezione IR } void loop() { if (irrecv.decode(&results)) { uint32_t codice = results.value; Serial.println(resultToHexidecimal(&results)); switch (codice) { case 0xFF30CF: // Tasto 1 (sostituisci con il tuo codice) statoLED1 = !statoLED1; digitalWrite(LED1, statoLED1); break; case 0xFF18E7: // Tasto 2 (sostituisci con il tuo codice) statoLED2 = !statoLED2; digitalWrite(LED2, statoLED2); break; case 0xFF7A85: // Tasto 3 (sostituisci con il tuo codice) statoLED3 = !statoLED3; digitalWrite(LED3, statoLED3); break; case 0xFF6897: // Tasto 0 (sostituisci con il tuo codice) statoLED1 = false; statoLED2 = false; statoLED3 = false; digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED3, LOW); break; } irrecv.resume(); // Pronto per il prossimo codice } } |
Wemos D1 mini – Raccolta Shield disponibili
Oltre al Display OLED, per la scheda Wemos D1 mini, prodotta dalla WEMOS/LOLIN sono disponibili vari shield che appartengono a varie categorie: Display & Interactive Shield, Environment, Power, Control, Others.
Per l’elenco vedere articolo Wemos D1 mini – Raccolta Shield disponibili










