Antes de empezar quisiera agradecer a todos los miembros del foro, ya que gracias a los posts ya creados tengo la oportunidad de aprender y conocer programas o modos que aun no conozco. Acabo de comenzar hace muy poco tiempo a utilizar XBee junto a Arduino. Dispongo de dos módulos XBee serie 1, 1 USB Explorer y un XBee Shield que he montado sobre un Arduino Uno V3. El XBee que tengo montado en el USB Explorer esta configurado como Coordinator (Maestro), y el que esta sobre el Arduino como End Device (Esclavo). He colocado un sensor de temperatura (LM35) al Arduino para que transmita los datos obtenidos a través del XBee End Device al XBee Coordinator. Los dos XBee los he programado con XCTU, el cual es muy sencillo de programar. Hay que tener cuidado cuando subamos el programa al Arduino, ya que si esta montado el XBee shield hay que poner los jumpers en posición USB, y cambiarlos a XBEE una vez que ya haya sido subido y estemos listos para emitir la señal. Tengo la intención de añadirle más sensores al Arduino.
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3); //RX, TX
int potPin = 0;
float temperature = 0;
void setup()
{
Serial.begin(9600);
Serial.println("LM35 ");
analogReference(INTERNAL);
xbee.begin(9600);
}
void printTenths(int value) {
// prints a value of 123 as 12.3
Serial.print(value / 10);
xbee.print(value/10);
Serial.print(".");
xbee.print(".");
Serial.println(value % 10);
xbee.print(value % 10);
}
void loop() {
int span = 20;
int aRead = 0;
for (int i = 0; i < span; i++) {
aRead = aRead+analogRead(potPin);
}
aRead = aRead / 20;
temperature = ((100*1.1*aRead)/1024)*10;
// convert voltage to temperature
Serial.print("KELVIN: ");
Serial.print(long(aRead));
// print temperature value on serial monitor
Serial.print(" - ºC: ");
xbee.print(" - ºC ");
printTenths(long(temperature));
delay(500);
}