Xbee Aiuto

Salve a tutti e grazie in anticipo per il tempo che mi dedicherete!

Ho recentemente acquistato 3 moduli Xbee Digimesh serie 1 e sto provando a configurare una mini rete per poter poi proseguire nelle connessioni...

Dopo tanto peregrinare sul web tra forum, videoguide e C.O. sono riuscito a farli funzionare anche se onestamente non capisco come... Vi riassumo quanto fatto:

Materiale Utilizzato:

2x Xbee Serie 1 Digimesh
1x 990.001 XBee Simple Board webServerInfo
1x 990.002-XBee-USB-Board webServerInfo
1x Arduino Uno

Collegamento:

  • Pc -> Xbee USB + Xbee -> X-CTU

  • Arduino + Basetta millefori + Xbee Simple Board così connessi:
    Arduino GND -> a GND di Dx XBSB (XBeeSimpleBoard)
    Arduino 3.3 -> a 3.3 XBSB
    Arduino 0 RX -> a TX XBSB
    Arduino 1 TX -> a RX XBSB

Arduino code:

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("In attesa di dati");
}

void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0){
Serial.print((char)Serial.read());
Serial.println();
}
}

Così facendo da X-CTU riesco a ricevere quanto trasmesso anche se l'output risulta una colonna di valori singoli e non una stringa di dati... e anche se X-CTU afferma che la trasmissione non è andata a buon fine.

Le cose migliorano leggermente se invece che trasmettere una stringa di 32 bytes mi limito a un "1" o "0" l'indice dell'avvenuta trasmissione si attesta sul 50% ma di norma è sempre uno trasmesso correttamente e uno fallito.

Qualcuno che ha esperienza potrebbe dirmi se questo comportamento è normale o se ho sbagliato qualcosa?

Connettendo XBSB Rx e Tx ai corrispettivi di Arduino dal terminale non appare nulla mentre il led della XbeeBoard indica che c'è comunicazione...

Spero di essere stato chiaro e spero in un vostro aiuto!

Grazie

Davide

Serial.read() legge UN carattere, dopo di che tu AGGIUNGE il carattere a capo (Serial.println():wink: quindi è corretto quello che ottieni.

togli Serial.println(); e tutto dovrebbe funzionare

Grazie mille proverò!

ma il collegamento

Arduino 0 RX -> a TX XBSB
Arduino 1 TX -> a RX XBSB

è corretto? perchè mi risulta molto oscura come cosa...

se volessi comandare un relay come potrei fare?

il collegamento è ok,
Trasmittente (TX) -> Ricevente(RX) e viceversa :slight_smile:

se volessi comandare un relay come potrei fare?

google :smiley: