DOMOTICA: Comunicazione tra arduini tramite RF lowcost

Io li ho presi su ebay se non sbaglio, in quanto robot-italy, dove solitamente acquisto, non li aveva quando ho fatto l'ordine.

io gli zoccoletti li ho presi su ebay.. 1.50 - 5pz.

ho preso dallo stesso venditore anche altre cose tipo pulsantini morsettiere e contenitori in abs.

P.S. per quanto riguarda i modulini RF di Sparkfun mi sono arrivati ... Il problema è che sono fuori casa gia da una settimana e ritorno Martedì. Li proverò appena possibile :wink:

Un consiglio ai neofiti: quando acquistate gli zoccoli, assicuratevi che siano larghi 300mils o 0.3", e non 600 mils o 0.6". La prima è la larghezza dei chip Atmega, la seconda è quella dei comuni chip DIP da 40 piedini.

Sembra una cavolata ma se non si trovano immagini a corredo dell'articolo che si sta comprando, è facile sbagliare l'acquisto. Ecco la differenza:

DIP28-300mils.jpg

DIP28-600mils.jpg

Giusta osservazione!!
Quando sono andato in un negozio fisico, mi hanno propinato quelli da 0.6 che ovviamente non andavano bene...

Quindi ho ordinato QUESTI

grazie per la precisazione!
dai che voglio sapere qualcosa di questi moduli RF XD

Come detto devi pazientare un po :smiley: . Sono a 1000 km da casa :smiley:
Martedí dovrei tornare e in settimana faró le prove :smiley:

Ok prime prove concluse senza molto sucesso.
Mi capita che il ricevitore scriva geroglifici in modo costante appena lo collego se tolgo il cavo ad arduino ovviamente non scrive più nulla.
Se elimino i modulini e metto il cavo funziona nuovamente tutto.

Potrebbero essere delle interferenze?

sul primo arduino (TX) uso questo codice

#include <NewSoftSerial.h>

NewSoftSerial mySerial(2, 3);

void setup()  
{
  Serial.begin(2400);
  Serial.println("=================================================");
  Serial.println("Ciao sono Arduino");
  Serial.println("Dimmi cosa devo fare!");
  Serial.println("---------------------------------------------");
  Serial.println("|        I COMANDI DISPONIBILI SONO:        |");
  Serial.println("---------------------------------------------");
  Serial.println("L o l per accendere la luce!");
  Serial.println("=================================================");
  Serial.flush(); // svuoto il buffer di ricezione seriale
  mySerial.begin(2400);
  mySerial.flush(); // svuoto il buffer di ricezione seriale
}

void loop()
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
  }
 if (Serial.available()) {
     mySerial.print((char)Serial.read());
  }
}

Sul secondo (RX) uso questo

#include <NewSoftSerial.h>
#define luce 6

byte rx = 0;    // variabile per contenere il carattere ricevuto

NewSoftSerial mySerial(2, 3);

void setup()  
{
  
  pinMode(luce, OUTPUT);
  Serial.begin(2400);
  Serial.println("Ciao sono Luigino328");
  Serial.flush(); // svuoto il buffer di ricezione seriale
  mySerial.begin(2400);
  mySerial.flush(); // svuoto il buffer di ricezione seriale
}

void loop()
{
  if (mySerial.available()) {
      Serial.print((char)mySerial.read());
  }
  if (mySerial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
		{
		rx = mySerial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
                mySerial.flush(); // svuoto il buffer di ricezione seriale
 
		if (rx=='L' || rx=='l') //
			{
 
			if (digitalRead(luce) == HIGH) // il led era acceso?
				{
				digitalWrite(luce,LOW); // lo spengo
                                Serial.println("OFF");
                                delay(250);
				}
			else  // il led era spento
				{
				digitalWrite(luce,HIGH); // lo accendo
                                Serial.println("ON");
                                delay(250);
				}
 
			}
 
                    }
                  }

Ho preso spunto da questo documento per i collegamenti http://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf
I collegamenti sono fatti così
TX

RX

Ciao,
da quello che riesco a vedere, i moduli sono i TLP/RLP 434-A e qui dovrebbero lavorare a 4800 e non a 2400 (questo spiegherebbe i caratteri geroglifici)

Saluti

non va comunque, ho appena provato.
Comunuqe basta settare òa velocità della seriale e della consolle, in maniera identica..
E non credo che sia quello il problema.. infatti credo che selezionando una velocità inferiore non ci siano problemi, che magari al contrario si possono verificare selezionando una velocità maggiore.

Altre idee?

non c'è modo per essere sicuri che le interferenze non rompano??? tipo se schermi la zona in cui stai trasmettendo...non so come però XD

Ok, ho cambiato radicalmente approccio e ho usato un 'altra libreria per far comunicare un tx e un rx .

La libreria si chiama "virtualwire" che sembra davvero funzionare...
Ora ci vuole il tempo per adattare il codice per la gestione di luci e altro...

Per ora sono riuscito a far si che quando sull' arduino con trasmettitore si preme un pulsante, sull'altro arduino con ricevitore viene stampato un comando sul serial monitor.

Work in progress :wink:

Anche io uso VirtualWire e non ho assolutamente problemi.

hai qualche sketch pronto che comanda led o luci?
Per farmi un idea di cosa posso fare?

grandi!!! allora li ordino anch'io! che portata hanno???

A casa mia passano 3 muri di cui due portanti e il segnale è buono (TX alimentata a 9 volt)
Non ho script pronti per comandare luci: io li uso per conteggiare l'energia prodotta/consumata dai contatori enel.

beh molto bene! adesso che ho scoperto che si può programmare l'atmega328 anche con arduino UNO è tutto perfetto per questo progetto....si inizia con gli ordini XD

sono riuscito ad accendere un paio di led con la tastiera.. Ora se riesco ad usare i pulsanti ,il prossimo passo sarà la costruzione di un telecomando :grin:

Qualcuno chiedeva se qualche utente faceva in tempo a portare un prototipo di domotica all'Arduino Day del 14 aprile.

Io penso che ci sarò...porterò (se faccio in tempo a prepararlo) un prototipo del mio sistema domotico basato su Arduino attualmente installato e funzionante a casa mia da più di un anno...composto da 6 Arduino UNO/2009 in network LAN x gestire luci, irrigazione, climatizzazione...più un Arduino MEGA che funge da centrale di allarme a 35 zone...

Chiaramente questo prototipo, se riuscirò a prepararlo per tempo, sarà molto minimale e grezzo...ma ci provo!!!

Mi interessano, come evidenziavo in un apposito topic che avevo aperto, eventuali collaborazioni...il mio indirizzo E-Mail è astroweb@gmail.com

complimenti per il tuo progetto!!! che cosa usi per far comunicare i vari nodi con la centrale?? xbee, RF, bluetooth ecc

ho anche trovato questi moduli su ebay:
http://cgi.ebay.com/2-pcs-nRF24L01-Wireless-Transceiver-Module-Arduino-ARM_W0QQitemZ200588286637QQcategoryZ163866QQcmdZViewItemQQ_trksidZp4340.m263QQ_trkparmsZalgo%3DSIC%26its%3DI%252BC%26itu%3DUCI%252BIA%252BUA%252BFICS%252BUFI%26otn%3D10%26pmod%3D290535993164%26ps%3D63%26clkid%3D8120634446936982550#ht_3031wt_745

sono come quelli che hai preso te dr4gone no??? solo che sono rx e tx in un solo pcb...

credo che astroz78 usi le ethernet shield o una wifishield per il collegamento di ogni nodo.. dato che dice network lan.

I moduli che dici tu non sono uguali a quelli che ho io. Lavorano a due Frequenze diverse.