Progetto controllo remoto (Telecomando) dispositivi ed illuminazione con Arduino

comando remoto

Questo progetto principalmente è nato per accendere e spegnere dispositivi a distanza tramite un telecomando IR senza interagire direttamente con gli interrutturi dei dispositivi, ma può diventare qualcosa di più grande ed ampio se viene implementato nell’ambito della domotica. Così facendo si potrà restare tranquillamente seduti sul divano mentre si guarda la tv e poter spegnere una luce che è stata dimenticata accesa. Oppure può essere utilizzato per risparmiare sulla spesa della corrente elettrica. Infatti basta pensare all’angolo televisione per rendersi conto di quanti led luminosi ci siano accesi e talmente è la luce emessa, che per passare dalla stanza non c’è nemmeno bisogno di accendere la luce.

Un motivo che mi ha spinto a realizzare questo progetto è il bisogno di non di non dovere attaccare e staccare i dispositivi dalla presa di corrente ogni volta che ne ho bisogno e per non lasciare dei fili volanti dalla presa della scrivania e poter accendere e spegnere delle luci a distanza senza che si utilizzi lo smartphone come ho fatto qui.

Così facendo evito di tenere sempre con me il mio smartphone perchè non farebbe altro che male. Nulla vieta di implementare questo progetto in quello indicato in precedenza. Fondendo i due progetti si avrebbe una doppia possibilità: oltre a poter attivare e disattivare dei dispositivi da remoto tramite lo smartphone, quando si è a casa si potrebbe tenere con se un telecomando tramite il quale comandare i dispositivi collegati al sistema.

 Questo progetto nel suo piccolo può essere quindi aggiunto per aumentare le capacità del piccolo sistema domotico.

 Questa idea l'ho sviluppata e testata con l'ormai famosa piattaforma di sviluppo e prototipazione Arduino. E' un progetto davvero molto semplice e può essere creato da chiunque ne abbia bisogno e abbia un minimo di competenza, ma anche da coloro che ne hanno bisogno ma non hanno molta esperienza dato che tramite questo Blog è possibile accrescere il proprio sapere e ricevere l'aiuto necessario per realizzare qualunque cosa (se ci si impegna).

Ecco un elenco con indicato il necessario per realizzare questo progetto:

  • Arduino (io ho utilizzato la board Arduino Uno, ma può essere utilizzata qulunque versione di arduino) ;
  • Ricevitore IR Infrarossi TSOP4838 38Khz;
  • Board 8 relè;
  • Cavetteria varia;
  • Se si vuole, anche se non è strettamentenecessario si può costruire la mia shield per arduino UNO tramite la quale è possibile effettuare i collegamenti della board dei relè ed il sensore IR ad arduino in maniera semplice e veloce senza utilizzare fili volanti. File Fidocad in allegato.

Riguardo al ricevitore infrarossi c'è davvero poco da dire, infatti è un comune ricevitore a 38 Khz. Invece per la board dei relè è possibile utilizzarne una con più o con meno relè.
Per quello che mi serve quella da 8 relè che posseggo è ottima. Però in base al numero di relè che si vorranno utilizzare bisogna considerare il tipo di alimentazione e la corrente necessaria per pilotare il circuito.

Naturalmente per comunicare quale relè voglio eccitare bisogna possedere almeno un telecomando…
In sua veste può essere utilizzato anche quello della tv, ma risulterebbe scomodo portare con se un telecomando non troppo compatto, perciò la migliore soluzione ricade sulla scelta di una soluzione più confacente a tali criteri che risulterà più semplice, per esempio, da portare in tasca. In commercio infatti esistono dei telecomandi generici molto compatti con diversi pulsanti numerati.
La libreria che serve per realizzare questo progetto è IR REMOTE che può essere trovata a questo indirizzo.
Prima di tutto bisogna effettuare il collegamento tra arduino, il sensore IR e la board dei relè nel seguente modo:

PIN 2 DI ARDUINO – PIN 1 INPUT SCHEDA RELE'

PIN 3 DI ARDUINO – PIN 2 INPUT SCHEDA RELE'

PIN 4 DI ARDUINO – PIN 3 INPUT SCHEDA RELE'

PIN 5 DI ARDUINO – PIN 4 INPUT SCHEDA RELE'

PIN 6 DI ARDUINO – PIN 5 INPUT SCHEDA RELE'

PIN 7 DI ARDUINO – PIN 6 INPUT SCHEDA RELE'

PIN 8 DI ARDUINO – PIN 7 INPUT SCHEDA RELE'

PIN 9 DI ARDUINO – PIN 8 INPUT SCHEDA RELE'

PIN 5V DI ARDUINO – PIN VCC SCHEDA RELE'

PIN GND DI ARDUINO – PIN GND SCHEDA RELE'

PIN 10 DI ARDUINO – PIN 1 SENSORE IR

PIN GND DI ARDUINO – PIN 2 SENSORE IR

PIN VCC DI ARDUINO – PIN 3 SENSORE IR

Non tutti i telecomandi sono programmati nello stesso modo e perciò se in un telecomando un tasto corrisponde ad un numero, molto probabilmente non sarà la stessa cosa in un altro.

Perciò bisogna configurare il sistema in maniera tale che se viene premuto un determinato tasto viene eccitato un relè prestabilito.
Per effettuare questa operazione bisogna scegliere quali tasti si vogliono utilizzare e "leggere" il valore che inviano quando vengono premuti.
Per vedere il codice dei tasti che sono stati scelti, la libreria IRREMOTE è perfetta in quanto tramite lo sketch seguente basta aprire il monitor seriale per leggere il codice esadecimale del tasto che viene premuto:

#include  // inclusione della libreri IRREMOTE
int receiver =10 ; // settaggio del pin 10 come pin di input del sensore IR 
IRrecv irrecv(receiver); // istanziamento un oggetto di tipo irrecv 
decode_results results; // istanziamento un oggetto di tipo decode_result 
void setup() { 
Serial.begin(9600); irrecv.enableIRIn(); 
// adesso siamo in attesa di ricevere un segnale 
}

 void loop() {
 if (irrecv.decode(&results)) {  // se ho ricevuto un segnale 
Serial.println(results.value, HEX) 
// stampo sul monitor seriale il codice che ho ricevuto in esadecimale 
delay(500); 
irrecv.resume(); // ricevo il prossimo segnale 
}
 }

Perfetto… adesso non rimane che appuntare i codici esadecimali che vengono stampati sul monitor seriale così da poter andare avanti con l'ultima configurazione. Quello che adesso bisogna fare è configuarare Arduino in maniera tale che quando viene premuto un determinato tasto viene eccitato un determinato relè.
Ecco il codice base che bisogna caricare su arduino:

void setup() {
    Serial.begin(9600); 
    irrecv.enableIRIn(); 
    pinMode(3, OUTPUT);   //pin dove è collegato il primo relè
}

void loop() {
    if (irrecv.decode(&results)) {
        Serial.println(results.value, HEX); 
        irrecv.resume();
  }

  if ( results.value == 0x[CODICE 1 APPUNTATO IN PRECEDENZA]  ) {   
// se viene schiacciato un tasto da me stabilito eccito il relè
      digitalWrite(3, HIGH); 
  }

 if ( results.value == 0x[CODICE 2 APPUNTATO IN PRECEDENZA]  ) {   
// se viene schiacciato un altro tasto da me stabilito diseccito il relè
    digitalWrite(3, LOW);  
  }
}

Come avete potuto vedere questo è un progetto davvero molto semplice da realizzare, ma allo stesso tempo molto utile ed ingegnoso; d'altronde le cose semplici sono le migliori.

Un aspetto importante è quello di inserire il circuito in un contenitore isolato in quanto i collegamenti tra i relè e i propri dispositivi da collegare al sistema sono stati effettuati con la rete elettrica e quindi collegati a 220v. Spero che questo progetto sia stato apprezato e resto in attesa di vostre opinioni.

STAMPA     Tags:,

13 Comments

  1. dakura92 28 febbraio 2014
  2. IvanScordato Ivan Scordato 28 febbraio 2014
  3. dakura92 2 marzo 2014
  4. rocco.musolino 14 ottobre 2013
  5. IvanScordato Ivan Scordato 14 ottobre 2013
  6. dakura92 5 marzo 2014
  7. IvanScordato Ivan Scordato 5 marzo 2014
  8. Giorgio B. Giorgio B. 18 settembre 2013
  9. IvanScordato Ivan Scordato 18 settembre 2013
  10. Piero Boccadoro Piero Boccadoro 18 settembre 2013
  11. IvanScordato Ivan Scordato 18 settembre 2013
  12. Tiziano.Pigliacelli Tiziano.Pigliacelli 18 settembre 2013
  13. IvanScordato Ivan Scordato 18 settembre 2013

Leave a Reply