Wireless Temperature using Xbee

I have 2-Xbee's Series 2
I-Arduino Uno
1-Xbee shield
1-Xbee explorer

I would like to see temperature values pop up on the serial monitor while using wireless communication. The temperature sensor is connected to the Xbee shield(with an Xbee attached) which is connected to the Arduino Uno. I then have the Xbee explorer attached to an Xbee connected to the computer. I can get values to show up on the serial monitor if I connect the Arduino Uno directly to the computer but not when using wireless communication. I have been able to turn on an led from the serial monitor having the same set up. I figured it would work both ways, receiving and sending information. Please help.

Here's the code.

//TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
                        //the resolution is 10 mV / degree centigrade with a
                        //500 mV offset to allow for negative temperatures
 
/*
 * setup() - this function runs once when you turn your Arduino on
 * We initialize the serial connection with the computer
 */
void setup()
{
  Serial.begin(9600);  //Start the serial connection with the computer
                       //to view the result open the serial monitor 
}
 
void loop()                     // run over and over again
{
 //getting the voltage reading from the temperature sensor
 int reading = analogRead(sensorPin);  
 
 // converting that reading to voltage, for 3.3v arduino use 3.3
 float voltage = reading * 5.0;
 voltage /= 1024.0; 
 
 // print out the voltage
 Serial.print(voltage); Serial.println(" volts");
 
 // now print out the temperature
 float temperatureC = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
                                               //to degrees ((volatge - 500mV) times 100)
 Serial.print(temperatureC); Serial.println(" degrees C");
 
 // now convert to Fahrenheight
 float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
 Serial.print(temperatureF); Serial.println(" degrees F");
 
 delay(1000);                                     //waiting a second
}

I don't see anything wrong with the code, so I suspect it is something with your setup. Maybe getting the pins reversed, or some mistake with the programming of the XBee? When I do something with an XBee I use a software serial port so I still have the serial port to debug with. You could try that.

"When I do something with an XBee I use a software serial port so I still have the serial port to debug with."

Can you point me in the right direction as to where I can find information regarding what you mention? Do I need to connect the Xbee at the TX and RX pins?

Can you point me in the right direction as to where I can find information regarding what you mention?

The search terms, SoftwareSerial, should be enough of a clue.

Do I need to connect the Xbee at the TX and RX pins?

Not if you are using SoftwareSerial. Then, you use any two other pins.

I use IDE version 21 for most of my playing (it works and I already know how to use it) so I get a library off the web and link it into the project. With 1.0, this changes and I haven't messed with it yet so I can't say specifically how to incorporate it. I do know that it is now part of the standard release so it should be easy to include. Then, just get an example off the web or this forum and start modifying it for your project. But basically, you use a different couple of pins for the XBee and you get the serial port to use for debugging. You can even use the serial port to send stuff over the XBee link.

Software serial gives you an additional serial port on the Arduino or two if you need it for something like a serial LCD display. It's a nice addition to the Arduino's capabilities. Google is your friend for getting information on this cool library.

The program seems ok to me. I tried it and found correct reading. I hope the problem has already been solved. But only to give green flag to this program so that other can use it.