Add multiple lighting zones.

This commit is contained in:
Robert Marshall 2021-07-30 10:07:23 +01:00
parent 173c388b67
commit f1dabd3a7d
2 changed files with 26 additions and 17 deletions

View file

@ -2,22 +2,27 @@
#include <BLEUtils.h>
class BluetoothLEDCallback : public BLECharacteristicCallbacks {
LED *_led;
LED *_seatingLeds, *_kitchenLeds;
void onWrite(BLECharacteristic *characteristic) {
std::string value = characteristic->getValue();
if (value.length() > 0) {
Serial.println(value.c_str());
if (value == "on")
_led->on();
else
_led->off();
if (value == "seating on")
_seatingLeds->on();
if (value == "kitchen on")
_kitchenLeds->on();
if (value == "seating off")
_seatingLeds->off();
if (value == "kitchen off")
_kitchenLeds->off();
}
}
public:
BluetoothLEDCallback(LED* led){
_led = led;
BluetoothLEDCallback(LED *seatingLeds, LED *kitchenLeds){
_seatingLeds = seatingLeds;
_kitchenLeds = kitchenLeds;
}
};

View file

@ -6,24 +6,28 @@
#define FADE_IN_DURATION 500
#define FADE_OUT_DURATION 2000
LEDOutput _ledOutput(0, true);
LED _led(&_ledOutput, FADE_IN_DURATION, FADE_OUT_DURATION);
LEDOutput _seatingLedOutput(0, true);
LED _seatingLeds(&_seatingLedOutput, FADE_IN_DURATION, FADE_OUT_DURATION);
LEDOutput _kitchenLedOutput(1 , true);
LED _kitchenLeds(&_kitchenLedOutput, FADE_IN_DURATION, FADE_OUT_DURATION);
BluetoothLEDCallback _btCallback(&_led);
BluetoothLEDCallback _btCallback(&_seatingLeds, &_kitchenLeds);
BluetoothService _btService("Van Lights", &_btCallback);
void setup() {
Serial.begin(115200);
_ledOutput.attach(16);
_ledOutput.attach(17);
_ledOutput.attach(5);
_ledOutput.attach(18);
_ledOutput.attach(23);
_seatingLedOutput.attach(16);
_seatingLedOutput.attach(17);
_kitchenLedOutput.attach(5);
_kitchenLedOutput.attach(18);
_kitchenLedOutput.attach(23);
_btService.init();
_btService.start();
}
void loop() {
_led.loop();
_seatingLeds.loop();
_kitchenLeds.loop();
}