void setup()
{
//Start communications radio
//Serial.begin(9600);
SPI.begin();
radio.begin();
network.begin(/*channel*/ 90, /*node address*/ this_node);
analogReference(DEFAULT);
//delay(1000);
pinMode(2, INPUT);
//attachInterrupt(0, messageReceived, FALLING);
//Sleep the NRF24L01
//radio.powerDown();
//Sleep the MCU
//LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
void(* resetFunc) (void) = 0; //declare reset function @ address 0
void loop()
{
attachInterrupt(0, messageReceived, FALLING);
//radio.powerDown();
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
//radio.powerUp();
detachInterrupt(0);
network.update();
if(network.available())
{
// If so, grab it and print it out
RF24NetworkHeader header;
payload_t payload;
network.read(header, &payload, sizeof(payload));
//Interrogation de toutes les données
if((payload.value == 0) && (header.from_node == edams_server))
{
int chk = dht22.read22(DHT22_PIN);
if(chk == DHTLIB_OK)
{
dht22_temperature_data_send();
dht22_humidity_data_send();
}
battery_level_send();
}
//Interrogation d'une donnée précise
else if ((payload.value == 1) && (header.from_node == edams_server))
{
if(payload.id == 301 || payload.id == 302)
{
int chk = dht22.read22(DHT22_PIN);
if(chk == DHTLIB_OK)
{
if(payload.id == 301)
dht22_temperature_data_send();
else if(payload.id == 302)
dht22_humidity_data_send();
}
}
else if(payload.id == 303)
{
battery_level_send();
}
}
//Interrogation du firmware du noeud
else if ((payload.value == 9) && (header.from_node == edams_server))
{
}
//resetFunc(); //call reset
}
}