// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
//Including nescessary libraries
#include <SPI.h>
#include <MySensors.h>
#include <DHT.h>
#define HUMIDITY 1
#define TEMPERATURE 2
#define HUMIDITY_SENSOR_DIGITAL_PIN 3
DHT dht;
float lastTempValue;
float lastHumValue;
boolean metric = true;
unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)(30 seconds)
#define MESSAGEWAIT 500
MyMessage msgHum(HUMIDITY, V_HUM);
MyMessage msgTemp(TEMPERATURE, V_TEMP);
void presentation() {
// Send the sketch version information to the gateway and Controller
sendSketchInfo("XXXX", "XX");
wait(MESSAGEWAIT);
// Register all sensors to gateway (they will be created as child devices)
present(HUMIDITY, S_HUM);
wait(MESSAGEWAIT);
present(TEMPERATURE, S_TEMP);
wait(MESSAGEWAIT);
}
void setup() {
dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);
}
void loop() {
delay(dht.getMinimumSamplingPeriod());
float temperature = dht.getTemperature();
if (isnan(temperature)) {
Serial.println("Failed reading temperature from DHT");
} else if (temperature != lastTempValue) {
send(msgTemp.set(temperature, 1));
lastTempValue = temperature;
Serial.print("Temp: ");
Serial.println(temperature);
}
float humidity = dht.getHumidity();
if (isnan(humidity)) {
Serial.println("Failed reading humidity from DHT");
} else if (humidity != lastHumValue) {
send(msgHum.set(humidity, 1));
lastHumValue = humidity;
Serial.print("Hum: ");
Serial.println(humidity);
}
sleep(SLEEP_TIME);
}