comunicazione seriale xbee s1

Salve a tutti e grazie in anticipo a tutti voi che leggerete questo post.
Ho da poco acquistato due moduli xbee serie 1 da utilizzare accoppiati a due arduino in particolare un Mega e un Uno.
Ho fatto alcuni test come ad esempio l'accenzione di un led da remoto con i due arduino e tutto funziona regolarmente, ho poi provato a leggere i valori di temperatura da un dht22 collegato all'arduino uno da remoto con la sua xbee e attaccando la seconda xbee al pc tramite l'adattatore ed anche qui tutto ok ossia riesco a vedere i valori del dht remoto.
Se però provo ad attaccare l'xbee all'arduino mega e questo al pc non vedo più niente.
Nel mega ho settato la xbee sul Serial1 ossia pin 18 e 19 anzichè i pin 0 e 1 per lasciare la comunicazione con il pc libera ma non vedo comunque niente.
Premesso che è da qualche giorno che uso gli xbee però ho optato per la serie 1 visto che crea una seriale senza fili in tutto e per tutto.

Devi usare i pin 19 (RX1) e 18 (TX1) al posto di 0 (RX) e 1 (TX) (nota la sequenza) in modo da acere RX e TX sui pin giusti.

Ciao Uwe

#include <SoftwareSerial.h>
SoftwareSerial XBee(18, 19); // RX, TX
float x;
void setup(){
  Serial.begin(9600);
  Serial1.begin(9600);
}
void loop(){
    if(Serial1.available()>0){
      x=Serial1.read();
      Serial.print((x));
      delay(500);
    }
}

Xbee ricevente è già connesso sul 18 e 19, ma non ricevo nulla forse ho scrito male lo sketch del ricevente.
Su Xbee+ Arduino trasmettitore leggo i valori dal dht 22 e li trasmette al ricevitore infatti se connetto xbee ricevente con explorer vedo tutti i valori se poi lo connetto ad arduino mega e il mega al computer non leggo niente.

Ho risolto il problema di comuicazione ed ora i due arduino comunicano via Xbee i valori dei sensori che riesco a visualizzare dal seriale.
Ora l'Arduino Mega con shield ethernet+Xbee che fa da Master, dovrebbe rivevere i valori del sensore dht 22 e gas collegati ad un arduino Uno+ Xbee che funziona da Slave in Remoto e visualizzarli in una pagina html.
A sua volta il master ha esso stesso un sensore dht 22 i cui valori sono perfettamente visualizzabili via Html.
Come posso rendere fruibili anche i sensori collegati allo Slave in Remoto assieme al sensore connesso al Master?
Ecco il programma

#include <SPI.h>
#include <Ethernet2.h>
#include <RCSwitch.h>
#include "DHT.h"
#include <stdio.h>
#define DHTTYPE DHT22 
#define DHTPIN 5
RCSwitch mySwitch = RCSwitch();
DHT dht(DHTPIN, DHTTYPE);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 106);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);                
//Sensori
const int value = mySwitch.getReceivedValue();
long FINESTRACAMERETTA_SENSORE  = 3776072;
int sensorGas = A0;
int x = Serial1.read();//Variabile lettura sensori Arduino Slave remoto + Xbee
String readString; //stringhe
boolean LEDON1 = false; // flag status attuatore
boolean LEDON2 = false; // flag status attuatore
boolean LEDON3 = false; // flag status attuatore
boolean LEDON4 = false; // flag status attuatore
boolean LEDON5 = false; // flag status attuatore
void setup(){
Serial.begin(9600);
Serial1.begin(9600);
dht.begin();
Ethernet.begin(mac, ip);
mySwitch.enableTransmit(31);
mySwitch.enableReceive(0);
}
void loop(){
  if (Serial1.available()){//Inizializzo counicazione seriale Arduino Slave remoto + sensori + Xbee
    int x = Serial1.read();
    Serial.write(x);
   }
  /*inizio client*/
  EthernetClient  client = server.available();
  if (client) {
  Serial.println("new client");
   boolean currentLineIsBlank = true;
    while (client.connected()) {
     if (client.available()) {
       char c = client.read();
       Serial.write(c);
       readString.concat(c); 
        if (c == '\n' && currentLineIsBlank) {
         if(readString.indexOf("L=2") > 0) {     //rele ON
          mySwitch.send("000100000000010101010001"); 
          LEDON1 = true;
          //accende il led con comando a 433 Mhz
          }
          if(readString.indexOf("L=3") > 0) {    //rele1 OFF
          mySwitch.send("000100000000010101010100");    
          LEDON1 = false;
           //spenge il led  
          }
          if(readString.indexOf("L=4") > 0) {    //rele2 ON
          mySwitch.send("000100000001000101010001");  
          LEDON2 = true;
          }
          if(readString.indexOf("L=5") > 0) {    //rele2 OFF
          mySwitch.send("000100000001000101010100");  
          LEDON2 = false;
          }
          if(readString.indexOf("L=6") > 0) {    //rele3 ON
          mySwitch.send("000100000001010001010001"); 
          LEDON3 = true;
          }
          if(readString.indexOf("L=7") > 0) {    //rele3 OFF
          mySwitch.send("000100000001010001010100"); 
          LEDON3 = false;
          }          
          if(readString.indexOf("L=8") > 0) {    //rele4 ON
          mySwitch.send("000100000001010100010001"); 
          LEDON4 = true;
          }          
          if(readString.indexOf("L=9") > 0) {    //rele4 OFF
          mySwitch.send("000100000001010100010100"); 
          LEDON4 = false;          
          }          
          if(readString.indexOf("L=10") > 0) {   //rele5 ON
          mySwitch.send("010000000000010101010001"); 
          LEDON5 = true;
          }          
          if(readString.indexOf("L=11") > 0) {   //rele5 OFF
          mySwitch.send("010000000000010101010100"); 
          LEDON5 = false;         
          } 
          if(readString.indexOf("L=13") > 0) {   //rele tutti OFF
          mySwitch.send("000100000000010101010100");  
          
          mySwitch.send("000100000001000101010100"); 
       
          mySwitch.send("000100000001010001010100"); 
         
          mySwitch.send("000100000001010100010100");
           
          mySwitch.send("010000000000010101010100");
          LEDON1 = false;
          LEDON2 = false;
          LEDON3 = false;
          LEDON4 = false;
          LEDON5 = false;
        } 
        // COSTRUZIONE PAGINA HTML
        // inizializzo pagina 
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        client.println("<html>");
        client.print("<head>");
        client.print(" <title>Gergio Server Domotica</title> ");
        client.println(" <meta name='viewport' content='width=device-width, user-scrollbar=no'>");
        client.print("</head>");
        client.println(" <body>");                 //Inizio pagina Dati sensori
        client.println("<p>Temperatura Ambientale ");
        client.print(dht.readTemperature());       //Sensori Arduino Master da visualizzare via Html
        client.println(" C</p>");
        client.println("<p>Umidita Ambientale "); 
        client.print(dht.readHumidity());
        client.println(" %</p>");
        client.println("<p>Sensori Slave remoto ");//Sensori Arduino Slave remoto da visualizzare via Html
        client.print(x);
          if (mySwitch.available()) { //Sensori porte finestre
          const int value = mySwitch.getReceivedValue();
          long receivedValue = mySwitch.getReceivedValue();
          if (value == 0) {
          client.print("<span style='color:green; font-weight:bold;'>Finestre cameretta Chiusa</span></font>");
          }
          else 
          {
          client.print("<span style='color:red; font-weight:bold;'>Finestre cameretta Aperta</span></font>");
          }   
           } //Inizio pagina Menù luci 
          client.println("<h3>Luce Biblioteca</h3>");
          client.println("<a href='/?L=2'>Accendi</a> | <a href='/?L=3'>Spegni</a></h2>"); //primo rele
          if (LEDON1)  {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
           
          client.println("<h3>Luce mensole</h3>");
          client.println("<a href='/?L=4'>Accendi</a> | <a href='/?L=5'>Spegni</a>");//secondo rele
          if (LEDON2) {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Luce colonna</h2>");
          client.println("<a href='/?L=6'>Accendi</a> | <a href='/?L=7'>Spegni</a>"); //terzo rele
          if (LEDON3) {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Led Scrivania</h3>");
          client.println("<a href='/?L=8'>Accendi</a> | <a href='/?L=9'>Spegni</a></h2>"); //quarto rele
          if (LEDON4)  
          {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Audio diffusori</h3>");
          client.println("<a href='/?L=10'>Accendi</a> | <a href='/?L=11'>Spegni</a></h2>");//quinto rele
          if (LEDON5)  
          {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>All Off<h3><a href='/?L=13'>Spegni Tutto</a> "); //spegni tutti i rele                      
          client.println(" </body>");
          client.println("</html>");
          readString=""; 
          client.print("<meta http-equiv=\"refresh\" content=\"3\">");
          client.stop();
        
              }
               }
                } 
                 } 
                  }

Nesun suggerimento?
Grazie in anticipo della cortesia che vorrete concedermi

Sono riuscito a visualizzare dei numeri dalla pagina html

1 Valori provenienti dal dht 22 connesso all'arduino Master e fin qui tutto ok.

2 Valori provenienti dal dht 22 connesso all'arduino Slave e ricevuti da seriale1 del Master tramite modulo xbee e qui da numeri incomprensibili.

Temperatura Ambientale 21.90 C 1

Umidita Ambientale 67.70 %

Sensori Slave remoto 58 2

Luce Biblioteca
Accendi | Spegni OFF
Luce colonna
Accendi | Spegni OFF
Luce mensole
Accendi | Spegni OFF
Led Scrivania
Accendi | Spegni OFF
Audio diffusori
Accendi | Spegni OFF
All Off
Spegni Tutto

Se però disattivo il modulo xbee smetto di ricevere quei valori strani il che mi fa pensare che serva una qualche codifica che permetta al master di decodificare i dati provenienti da Xbee connesso al seriale 1.
C'è da precisare che se apro il seriale dal PC connesso al Master i valori sono perfettamente visualizzati quindi l'arduino Slave trasmette normalemte.

#include <SPI.h>
#include <Ethernet2.h>
#include <RCSwitch.h>
#include "DHT.h"
#include <stdio.h>
#define DHTTYPE DHT22 
#define DHTPIN 5
RCSwitch mySwitch = RCSwitch();
DHT dht(DHTPIN, DHTTYPE);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192, 168, 1, 106);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
EthernetServer server(80);                
//Sensori
const int value = mySwitch.getReceivedValue();
int sensorGas = A0;                                                      <===     //int x = Serial1.read() eliminato               
String readString; //stringhe
boolean LEDON1 = false; 
boolean LEDON2 = false; 
boolean LEDON3 = false;
boolean LEDON4 = false; 
boolean LEDON5 = false; 
void setup(){
Serial.begin(9600);
Serial1.begin(9600);
dht.begin();
Ethernet.begin(mac, ip);
mySwitch.enableTransmit(31);
mySwitch.enableReceive(0);
}
void loop(){
  if (Serial1.available()){
 
    Serial.write(Serial1.read());   <===  //parte modificata rispetto allo sketch postato in precedenza 
   }
  /*inizio client*/
  EthernetClient  client = server.available();
  if (client) {
  Serial.println("new client");
   boolean currentLineIsBlank = true;
    while (client.connected()) {
     if (client.available()) {
       char c = client.read();
       Serial.write(c);
       readString.concat(c); 
        if (c == '\n' && currentLineIsBlank) {
         if(readString.indexOf("L=2") > 0) {     //rele ON
          mySwitch.send("000100000000010101010001"); 
          LEDON1 = true;
          //accende il led con comando a 433 Mhz
          }
          if(readString.indexOf("L=3") > 0) {    //rele1 OFF
          mySwitch.send("000100000000010101010100");    
          LEDON1 = false;
           //spenge il led  
          }
          if(readString.indexOf("L=4") > 0) {    //rele2 ON
          mySwitch.send("000100000001000101010001");  
          LEDON2 = true;
          }
          if(readString.indexOf("L=5") > 0) {    //rele2 OFF
          mySwitch.send("000100000001000101010100");  
          LEDON2 = false;
          }
          if(readString.indexOf("L=6") > 0) {    //rele3 ON
          mySwitch.send("000100000001010001010001"); 
          LEDON3 = true;
          }
          if(readString.indexOf("L=7") > 0) {    //rele3 OFF
          mySwitch.send("000100000001010001010100"); 
          LEDON3 = false;
          }          
          if(readString.indexOf("L=8") > 0) {    //rele4 ON
          mySwitch.send("000100000001010100010001"); 
          LEDON4 = true;
          }          
          if(readString.indexOf("L=9") > 0) {    //rele4 OFF
          mySwitch.send("000100000001010100010100"); 
          LEDON4 = false;          
          }          
          if(readString.indexOf("L=10") > 0) {   //rele5 ON
          mySwitch.send("010000000000010101010001"); 
          LEDON5 = true;
          }          
          if(readString.indexOf("L=11") > 0) {   //rele5 OFF
          mySwitch.send("010000000000010101010100"); 
          LEDON5 = false;         
          } 
          if(readString.indexOf("L=13") > 0) {   //rele tutti OFF
          mySwitch.send("000100000000010101010100");  
          
          mySwitch.send("000100000001000101010100"); 
       
          mySwitch.send("000100000001010001010100"); 
         
          mySwitch.send("000100000001010100010100");
           
          mySwitch.send("010000000000010101010100");
          LEDON1 = false;
          LEDON2 = false;
          LEDON3 = false;
          LEDON4 = false;
          LEDON5 = false;
        } 
        // COSTRUZIONE PAGINA HTML
     
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println();
        client.println("<html>");
        client.print("<head>");
        client.print(" <title>Gergio Server Domotica</title> ");
        client.println(" <meta name='viewport' content='width=device-width, user-scrollbar=no'>");
        client.print("</head>");
        client.println(" <body>");               
        client.println("<p>Temperatura Ambientale ");
        client.print(dht.readTemperature());       //Sensori Arduino Master da visualizzare via Html
        client.println(" C</p>");
        client.println("<p>Umidita Ambientale "); 
        client.print(dht.readHumidity());
        client.println(" %</p>");
        client.println("<p>Sensori Slave remoto ");   //Sensori Arduino Slave remoto da visualizzare via 
                                                                            Html
         client.println(Serial1.read());    <===        // In precedenza era client.println(x());
          
           } //Inizio pagina Menù luci 
          client.println("<h3>Luce Biblioteca</h3>");
          client.println("<a href='/?L=2'>Accendi</a> | <a href='/?L=3'>Spegni</a></h2>"); //primo rele
          if (LEDON1)  {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
           
          client.println("<h3>Luce mensole</h3>");
          client.println("<a href='/?L=4'>Accendi</a> | <a href='/?L=5'>Spegni</a>");//secondo rele
          if (LEDON2) {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
            }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Luce colonna</h2>");
          client.println("<a href='/?L=6'>Accendi</a> | <a href='/?L=7'>Spegni</a>"); //terzo rele
          if (LEDON3) {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Led Scrivania</h3>");
          client.println("<a href='/?L=8'>Accendi</a> | <a href='/?L=9'>Spegni</a></h2>"); //quarto rele
          if (LEDON4)  
          {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>Audio diffusori</h3>");
          client.println("<a href='/?L=10'>Accendi</a> | <a href='/?L=11'>Spegni</a></h2>");//quinto rele
          if (LEDON5)  
          {
          client.println("<span style='color:green; font-weight:bold;'>ON</span></font>");
           }
          else
          {
          client.println("<span style='color:red; font-weight:bold;'>OFF</span></font>");
           }
          client.println("<hr >");
          client.println("<h3>All Off<h3><a href='/?L=13'>Spegni Tutto</a> ");                   
          client.println(" </body>");
          client.println("</html>");
          readString=""; 
          client.print("<meta http-equiv=\"refresh\" content=\"3\">");
          client.stop();
        
              }
               }
                } 
                 } 
                  }

Salve sono ancora qui.
Ho risolto il problema della comunicazione fra arduino uno ed arduino mega con xbee e ora vedo i sensori collegati ad arduino uno.
Da pc connesso all'usb di arduino mega vedo via seriale del mega i sensori collegati ad arduino uno tutto via wirelessa grazie ad xbee.
Come faccio a vedere via html i valori dei sensori inviati ad arduino mega?
Premetto che xbee è connesso al pin 17 e 18 quindi su serial1 del mega.
Grazie mille a chi vorrà aiutarmi.