Home
Accesso / Registrazione
 di 

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.

AllegatoDimensione
ARDUINO SHIELD IR.rar903 bytes

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Giorgio B.

Bene, dunque, il progetto

Bene, dunque, il progetto sembra interessante e mi ha incuriosito.
Una buona lettura!
Se posso, però, mi sembra incompleto nella presentazione.
Come mai non ci sono immagini?

ritratto di Ivan Scordato

Ciao Giorgio. Non c'è

Ciao Giorgio.
Non c'è problema... ecco un immagine del progetto in fase di test:
http://img543.imageshack.us/img543/9656/8jlg.jpg

Ivan

ritratto di Piero Boccadoro

In effetti questa è una buona

In effetti questa è una buona segnalazione :)
Vale per il futuro: documentate con le immagini :)

ritratto di Ivan Scordato

Sicuramente! Un articolo in

Sicuramente!
Un articolo in cui compaiono anche delle immagini rende meglio l'idea di quello che è stato realizzato.

Ivan

ritratto di Tiziano.Pigliacelli

Interessante

Ciao, il tuo articolo è interessante, mi ha fatto venir voglia di lavorarci su per utilizzi simili. Mi associo a tutti gli altri, che dicono che mancano immagini: l'impressione è che l'articolo sia scarno, anche se comunque grande merito alla semplicità e alla chiarezza della descrizione.
Altra cosa meritevole è la semplicità del lavoro presentato, davvero realizzabile da tutti e che può tornare utile a tutti.
Ho comprato tempo fa un kit con telecomando a infrarossi e 3 prese "telecomandabili", e devo dire che sono molto utili, con il difetto che sono davvero enormi!!! Tra l'altro posso comandare al massimo fino a 5 dispositivi, il telecomando non ne supporta di più.
Unico mio dubbio è: dato l'ingombro del sistema e le potenzialità di Arduino, non è riduttivo pensarlo solo per accendere e spegnere interruttori a distanza? Ad esempio, secondo me si potrebbe pensare tipo ad una sequenziazione del tipo: Se voglio accendere il lettore DVD, sicuramente mi interessa anche la TV, oppure se voglio accendere il DVD recorder, sicuramente mi interesserà accendere il decoder e la TV, quindi comandare l'accensione del primo provoca l'accensione degli altri in sequenza.
Ma questo è solo una piccola idea su cosa si possa fare, diciamo solo un pensiero per stimolare idee, sicuramente ci saranno proposte migliori...

ritratto di Ivan Scordato

Ciao, grazie per

Ciao,
grazie per l'interessamento.
Riguardo alla tua domanda:"dato l'ingombro del sistema e le potenzialità di Arduino, non è riduttivo pensarlo solo per accendere e spegnere interruttori a distanza?"
Sicuramente si!
Questo che ho presentato è voluto essere appositamente un progetto di base che proprio come ho scritto, può essere maggiormente sviluppato ed incluso in progetti molto più ampi, come la domotica.
L'accensione sequenziale può essere molto comoda, ma senza complicarsi la vita a scrivere altro codice basta collegare più dispositivi (Occhio alle correnti) ad un singolo relè.
Mi fà piacere che sono riuscito nell'intento di stimolare le idee :)

Riguardo alle immagini probabilmente avete ragione, ma visto che ho cercato di essere più chiaro possibile, non ho ritenuto necessario caricare nessun immagine.
Dopo la segnalazione di Giorgio ho provveduto subito a caricare una foto che ho scattato durante i test.
Riporto nuovamente il link della foto: http://img543.imageshack.us/img543/9656/8jlg.jpg

Saluti,
Ivan

ritratto di rocco.musolino

Sistema Domotico

Interessante. Ottimo articolo. Non molto tempo fa ho realizzato una cosa simile.

Da poco ho portato a termine una Tesi sulla domotica, e ho realizzato prototipi elettronici con relè e controlli via radio, non ho potuto fare a meno di leggere questo articolo. Nel progetto fatto (Chiamato Jarvis Domotica) ogni modulo sparso per casa gestiva via radio un solo relè di tipo SSR (allo stato solido), i relè che vedo in foto sembrano abbastanza piccoli, mi par di capire però che reggono tranquillamente carichi di 220V, sono meccanici dico bene?

Parte del progetto è visibile qua:
http://www.hackerstribe.com/2013/prolunga-rele-v2-0-python-atmega328p/

Scrivendo di domotica ho avuto modo di scoprire in giro per la rete, tanti simpatici progettini che ho cercato di convogliare nella mia tesi. Con lo scopo di realizzare un sistema domotico a basso costo e non invasivo per l'abitazione. Spero di pubblicare quanto prima la versione iniziale del progetto, che già comprende molte interfacce variegate, tra cui una smartphone vocale. Il lato software che gestisce il motore d'esecuzione, è in maniera centralizzata installato su un raspberry pi atto a pilotare tutti gli altri elettrodomestici con gli attuatori sparsi per casa, via radio. Una feature appena introdotta, è quella di poter comunicare con il Philips HUE, ovvero il sistema d'illuminazione wireless RGB introdotto da philips.

Se volete dare un'occhiata, una piccola video anteprima la trovate qui:
http://www.youtube.com/watch?v=gcpXrfHdgBk

;)

ritratto di Ivan Scordato

Ciao Rocco, mi fà piacere che

Ciao Rocco, mi fà piacere che tu abbia apprezzato il mio articolo.
Il modulo relè che hai visto è davvero ottimo in quanto oltre ad occupare pochissimo spazio visto che è molto compatto permette di gestire carichi fino a 250VAC 10A, cioè se non mi sbaglio circa 2500W.
Perciò può essere gestito qualunque carico.

Riguardo al tuo progetto:
Davvero molto, molto interessante: non posso che farti i miei Complimenti :)
Io sto realizzando la stessa cosa che ho fatto in quest'articolo tramite arduino in altre tre versioni:
- Tramite onde radio
- tramite bluettoth
- tramite Internet

Insomma, mi sbizzarrisco un pò cercando di fare qualcosa di utile.
Sarebbe bello unire tutto quanto.
Buona serata,
Ivan

ritratto di dakura92

problema

Salve,

ho trovato questo progetto molto interessante e (subito) ho provato a realizzarlo :)

A lavoro ultimato ho però riscontrato un problema con la 220. Ovvero, collegando una lampada al relè (sempre comandato dall'IR), una volta accesa, è come se il ricevitore IR si inibisse, non riceve più segnali dal telecomando...e ovviamente mi impedisce di spegnerla. 

Va da dire che questo problema mi capita solo con apparecchi collegati alla 220...ho provato a collegare circuiti alimentati da bassi voltaggi in continua e il tutto funziona perfettamente...

a qualcuno è capitato un problema simile?

ritratto di Ivan Scordato

Ciao, non so proprio cosa

Ciao, non so proprio cosa dirti...
Puoi effettuare una prova:
al sensore IR collega una resistenza ed un condensatore come ha fatto Adrirobot Quì
Fammi sapere ;)

ritratto di dakura92

collegato ma niente... non so

collegato ma niente...

non so proprio da cosa possa dipendere...proverò col controllo blue :(

ritratto di dakura92

PROBLEMA RISOLTO! il carico

PROBLEMA RISOLTO!

il carico collegato al relè era una lampadina fluorescente posizionata sullo stesso piano del circuito e, emettendo un grande quantitativo di segnali nell'infrarosso, disturbava il ricevitore 

grazie cmq! ;)

ritratto di Ivan Scordato

Ottimo! :)

Ottimo! :)

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti