#include // https://github.com/marvinroger/homie-esp8266 #include "DeviceRgb.h" #include "DeviceLdr.h" #include "DeviceDht.h" #include "DeviceIrRx.h" #include "DeviceIrTx.h" #include "DeviceButton.h" const byte PIN_RGB_RED = D8; const byte PIN_RGB_GREEN = D6; const byte PIN_RGB_BLUE = D7; DeviceRgb deviceRgb(PIN_RGB_RED, PIN_RGB_GREEN, PIN_RGB_BLUE); const byte PIN_LDR = A0; DeviceLdr deviceLdr(PIN_LDR); const byte PIN_DHT = D5; const byte TYPE_DHT = DHT22; DeviceDht deviceDht(PIN_DHT, TYPE_DHT); const byte PIN_IRRX = D1; const byte PIN_POWER = D0; DeviceIrRx deviceIrRx(PIN_IRRX, PIN_POWER); const byte PIN_IRTX = D2; DeviceIrTx deviceIrTx(PIN_IRTX); const byte PIN_BUTTON = D2; DeviceButton deviceButton(PIN_BUTTON); Device* devices[] = { &deviceRgb, &deviceLdr, &deviceDht, &deviceIrRx, &deviceIrTx, &deviceButton, }; void setupHandler() { for (int i = 0; i < sizeof(devices) / sizeof(*devices); i++) { devices[i]->deviceSetup(); } } void loopHandler() { for (int i = 0; i < sizeof(devices) / sizeof(*devices); i++) { devices[i]->deviceLoop(); } } void setup() { Homie.setFirmware("things", "1.0.0"); for (int i = 0; i < sizeof(devices) / sizeof(*devices); i++) { devices[i]->deviceRegister(); } Homie.setSetupFunction(setupHandler); Homie.setLoopFunction(loopHandler); Homie.setup(); } void loop() { Homie.loop(); }