Hi,
The code running in Waspmote is below:
Code:
packetXBee* paq_sent;
int8_t state=0;
long previous=0;
char aux[100];
float humEnv;
float temp;
float hum_1;
float hum_2;
float hum_3;
char _humEnv[6]="";
char _temp[7]= "";
char _hum_1[10]="";
char _hum_2[10]="";
char _hum_3[10]="";
char _bat;
#define key_access "LIBELIUM"
uint8_t direccion[8]={0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF};
void setup(){
PWR.ifHibernate();
// Store key access in EEPROM
for(int i=0;i<8;i++){
Utils.writeEEPROM(i+107,key_access[i]);
}
USB.begin();
SensorAgr.setBoardMode(SENS_ON);
delay(1000);
SensorAgr.setSensorMode(SENS_ON, SENS_AGR_TEMPERATURE);
SensorAgr.setSensorMode(SENS_ON, SENS_AGR_HUMIDITY);
SensorAgr.setSensorMode(SENS_ON, SENS_AGR_WATERMARK_1);
SensorAgr.setSensorMode(SENS_ON, SENS_AGR_WATERMARK_2);
SensorAgr.setSensorMode(SENS_ON, SENS_AGR_WATERMARK_3);
delay(2000);
RTC.ON();
ACC.ON();
XBee.setMode(XBEE_ON);
XBee.begin(9600);
delay(1000);
XBee.print("+++");
delay(2000);
XBee.println("ATBD5,AP2,WR,CN");
delay(150);
XBee.setMode(XBEE_OFF);
XBee.close();
delay(5000);
xbeeZB.init(ZIGBEE,FREQ2_4G,NORMAL);
xbeeZB.ON();
delay(1000);
}
void loop(){
temp=0;
humEnv=0;
hum_1=0;
hum_2=0;
hum_3=0;
temp=SensorAgr.readValue(SENS_AGR_TEMPERATURE);
USB.print("Temperatura: ");
USB.println(temp);
humEnv=SensorAgr.readValue(SENS_AGR_HUMIDITY);
USB.print("Humedad: ");
USB.println(humEnv);
hum_1=(SensorAgr.readValue(SENS_AGR_WATERMARK_1));
USB.print("Humedad de Suelo: ");
USB.println(hum_1);
delay(1000);
hum_2=(SensorAgr.readValue(SENS_AGR_WATERMARK_2));
USB.print("Humedad de Suelo: ");
USB.println(hum_2);
delay(1000);
hum_3=(SensorAgr.readValue(SENS_AGR_WATERMARK_3));
USB.print("Humedad de Suelo: ");
USB.println(hum_3);
delay(1000);
Utils.float2String(temp,_temp,2);
Utils.float2String(humEnv,_humEnv,2);
Utils.float2String(hum_1,_hum_1,2);
Utils.float2String(hum_2,_hum_2,2);
Utils.float2String(hum_3,_hum_3,2);
sprintf(aux,"$5$%s$%s$%s$%s$%s",_humEnv,_temp,_hum_1,_hum_2,_hum_3);
USB.print("Mitad de la trama: ");
USB.println(aux);
auxFunction();
USB.print("Trama enviada: ");
USB.println(aux);
paq_sent=(packetXBee*) calloc(1,sizeof(packetXBee));
paq_sent->mode=BROADCAST;
paq_sent->MY_known=0;
paq_sent->packetID=0x52;
paq_sent->opt=0;
xbeeZB.hops=0;
xbeeZB.setOriginParams(paq_sent,MAC_TYPE);
xbeeZB.setDestinationParams(paq_sent, direccion, aux, MAC_TYPE, DATA_ABSOLUTE);
xbeeZB.sendXBee(paq_sent);
free(paq_sent);
paq_sent = NULL;
if( intFlag & HIB_INT )
{
hibInterrupt();
}
PWR.hibernate("00:00:30:00",RTC_OFFSET,RTC_ALM1_MODE2);
}
void auxFunction(){
sprintf(aux,"%s$%s$%s$%s$%s$%s$%d\r\n",aux,"","","","","",PWR.getBatteryLevel());
}
void hibInterrupt()
{
//Utils.blinkLEDs(1000);
//Utils.blinkLEDs(1000);
intFlag &= ~(HIB_INT);
}
Regards