#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const int RF24_CE = 9; const int RF24_CSN = 10; RF24 radio(RF24_CE, RF24_CSN); const int intervalSleepTime = 5000; ////Downstairs Unit //const uint64_t WRITE_PIPE = 0x0000000000LL; //const int SENDER_ID = 0x00; //const int NUM_SENSORS = 6; //SensorBase* sensors[NUM_SENSORS] = //{ // new HeartbeatPingSensor("Downstairs", &radio, SENDER_ID), // new DHTTemperatureSensor(2, "Kitchen", &radio, SENDER_ID), // new DHTTemperatureSensor(3, "LivingRoom", &radio, SENDER_ID), // new DHTTemperatureSensor(4, "LowerSunChamber", &radio, SENDER_ID), // new DHTTemperatureSensor(5, "DiningRoom", &radio, SENDER_ID), // new MPL115A2BarometricPressureSensor("Downstairs", &radio, SENDER_ID) //}; ////Upstairs Hallway Unit //const uint64_t WRITE_PIPE = 0x0000000001LL; //const int SENDER_ID = 0x01; //const int NUM_SENSORS = 5; //SensorBase* sensors[NUM_SENSORS] = //{ // new HeartbeatPingSensor("Hallway", &radio, SENDER_ID), // new DHTTemperatureSensor(2, "GameRoom", &radio, SENDER_ID), // new DHTTemperatureSensor(3, "SunChamber", &radio, SENDER_ID), // new DHTTemperatureSensor(4, "ComputerRoom", &radio, SENDER_ID), // new DHTTemperatureSensor(5, "HallwayBath", &radio, SENDER_ID) //}; ////Backyard Unit const uint64_t WRITE_PIPE = 0x0000000002LL; const int SENDER_ID = 0x02; const int NUM_SENSORS = 4; SensorBase* sensors[NUM_SENSORS] = { new HeartbeatPingSensor("Backyard", &radio, SENDER_ID), new LightSensor(1, "Outside.Backyard", &radio, SENDER_ID), new RainSensor(1, "Outside.Backyard", &radio, SENDER_ID), new DHTTemperatureSensor(2, "Outside.Backyard", &radio, SENDER_ID) }; ////Master Bathroom Unit //const uint64_t WRITE_PIPE = 0x0000000003LL; //const int SENDER_ID = 0x03; //const int NUM_SENSORS = 5; //SensorBase* sensors[NUM_SENSORS] = //{ // new HeartbeatPingSensor("Bathroom", &radio, SENDER_ID), // new DHTTemperatureSensor(2, "MasterBedroom", &radio, SENDER_ID), // new DHTTemperatureSensor(3, "Outside.Attic", &radio, SENDER_ID), // new DHTTemperatureSensor(4, "MasterBath", &radio, SENDER_ID), // new DHTTemperatureSensor(5, "Shower", &radio, SENDER_ID) //}; ////Test Unit //const uint64_t WRITE_PIPE = 0x0000000009LL; //const int SENDER_ID = 0x09; //const int NUM_SENSORS = 4; //SensorBase* sensors[NUM_SENSORS] = //{ // new HeartbeatPingSensor("Test", &radio, SENDER_ID), // new LightSensor(0, "TestUnit", &radio, SENDER_ID), // new RainSensor(1, "TestUnit", &radio, SENDER_ID), // new DHTTemperatureSensor(2, "TestUnit", &radio, SENDER_ID) //}; void setup() { Serial.begin(57600); initSensors(); initRadio(); //DeepSleep::setup(); } void initSensors() { for(int sensorIndex = 0; sensorIndex < NUM_SENSORS; sensorIndex++) { Serial.print("Init: "); Serial.println(sensorIndex); sensors[sensorIndex]->Init(); } } void initRadio() { Serial.println("Init Radio"); radio.begin(); radio.setRetries(15,15); radio.openWritingPipe(WRITE_PIPE); } void loop() { readSensors(); //DeepSleep::sleep(); delay(intervalSleepTime); } void readSensors() { for(int sensorIndex = 0; sensorIndex < NUM_SENSORS; sensorIndex++) { Serial.print("Read: "); Serial.println(sensorIndex); sensors[sensorIndex]->Read(); } }