usare arduino come telecomando (domotica)

Ciao a tutti sono nuovo :blush: mi sono avvicinato da poco al mondo di arduino e in questi giorni mi bazzicava in testa l'idea di creare un piccolo impianto domotico, in sostanza vorrei utilizzare arduino come telecomando di tutti gli apparecchi wireless in casa (televisione, condizionatore, impianto audio ecc) tramite una pagina web ora il problema è: come posso fare per farlo? quale sensore dovrei usare per trasmettere il segnale ai dispositivi? scusate per la domanda banale :blush:

Provato a fare una ricerca su internet o sul forum? Di progetti simili ce ne sono a palate.

ho provato a dare un occhiata ma non sono riuscito a trovare nulla.. se c'è hai qualche discussione potresti indicarmi il link?

Incomincia con qualche prova con sensori a infrarossi per vedere il codice che ti invia il telecomando della tv , successivamente quando funziona se hai l, Ethernet shield fai un po' di pratica, a rigor di logica se devi accendere un televisore o il condizionatore basta un unico led nella stanza che ti gestisce tutti i dispositivi che ovviamente funzionano con un telecomando a infrarossi

ciao,
la librerie che ti serve è:
#include <IRremote.h>

non ti serve un sensore per trasmettere ma un led ir (infrarosso)

p.s.
invece per acquisire i codici dai telecomandi devi avere ad esempio un tsop4838

l'unica cosa e che non sono sicuro della portata dell'led infrarossi.. perchè gli apparecchi sono dalla parte opposta della stanza..
ultima cosa.. a livello di circuito oltre al led devo collegare anche resistenze o altro? scusate l'ignoranza :blush:

Collega il catodo al piedino dell arduino , l anodo ad una resistenza da 180 e l altro capo della resistenza a +5 in questo modo guadagni qualcosa in corrente

Ok, ho tutti i segnali che mi permettono di accendere spegnere i vari dispositivi ora però sorge un problema.. nella references della libreria IRemote dice che ci sono diversi modi per inviare il segnale NEC,Sony,RC5,RC6,RAW quale tra questi devo usare?

Quello "compatibile" con il tuo dispositivo.
Io ad esempio la mia tv piccolina della camera da letto è uno united e viene riconosciuto come NEC.
Ho provato altri telecomandi tv e stereo, a parte il samsung, tutti gli altri sono di "tipo" NEC.

Puoi provare un telecomando con lo sketch IRrecvDump.ino di esempio allegato alla libreria.
Logicamente devi collegare un IRReceiver ad Arduino, come suggerito la @Illuca, ad esempio un tsop4838.

grazie della risposta.. il segnale è NEC il problema e che mettendo il segnale NEC con questo codice

#include <IRremote.h>
 
IRsend irsend;
int  led = 13;
void setup() {
  pinMode(led, OUTPUT);  
  }
 
void loop() {
  for (int i = 0; i < 3; i++) {
    irsend.sendNEC(0xFF609F, 24); 
    digitalWrite (led, HIGH);
    delay (500);
    digitalWrite (led, LOW);
    delay(100);
  }
}

come collegamenti; ho collegato il catodo al pin 3 (l'unico su cui posso inviare) e l'anodo sui 5V..
dove sbaglio?

Metti l' anodo sul pin 3 con una r da 150 o 200 il catodo al meno e fai una prova partendo da vicino poi ti allontani e vedi che portata ha.
A me bastano pochi mA per il led visto che l'ho messo vicino al sensore, se ti servono più mA usa un transistor per pilotare il led così aumenti la distanza senza bruciare il pin dell'arduino :slight_smile:

Ps. Il codice che hai scritto invia di continuo il segnale, è meglio se aggiungi un bottone su un pin o usi la seriale:

#include <IRremote.h>

IRsend irsend;

{
  Serial.begin(9600);
  Serial.println("Hurr Durr");
  delay(2000);
}

void loop()
{
  if (Serial.available())
  {
    Serial.println("invio");
    irsend.sendNEC(0xFF609F, 24); 
  }
}

Il secondo parametro di sendNEC() io l'ho sempre visto a 32. Provare non nuoce.

Quelli dovrebbero essere i bit del codice

bene ora il segnale IR lo manda :slight_smile: ora mi servirebbe solo aumentare la portata.. perchè per funzionare devo mettere il led a 2-3cm ( con collegata la resistenza da 100)dal dispositivo che voglio comandare.. a me servirebbe una distanza di un paio di metri.. consigli ? :cold_sweat: