55 lines
989 B
C
55 lines
989 B
C
/*
|
|
* Sonoff
|
|
* off-the-shelf wifi relay module
|
|
*
|
|
* Settings in IDE:
|
|
* - Board: "Generic ESP8266 Module"
|
|
* - Flash Size: "1M (64k SPIFFS)"
|
|
* - Upload Speed: "1152200"
|
|
*/
|
|
|
|
#include "DeviceRelay.h"
|
|
|
|
const char* FWNAME = "things@Sonoff";
|
|
|
|
bool state = LOW;
|
|
bool switched = false;
|
|
|
|
const byte PIN_BUTTON = 0;
|
|
|
|
const byte PIN_RELAY = 12;
|
|
DeviceRelay deviceRelay(PIN_RELAY, "relay");
|
|
|
|
const byte PIN_LED = 13;
|
|
|
|
Device* devices[] = {
|
|
&deviceRelay,
|
|
};
|
|
|
|
void hardwareSetup() {
|
|
Homie.setLedPin(PIN_LED, HIGH);
|
|
pinMode(PIN_BUTTON, INPUT);
|
|
pinMode(PIN_RELAY, OUTPUT);
|
|
digitalWrite(PIN_RELAY, HIGH);
|
|
};
|
|
|
|
void hardwareLoop() {
|
|
digitalWrite(PIN_LED, !state);
|
|
for (int i = 0; i < 3; i++) {
|
|
if (digitalRead(PIN_BUTTON) == HIGH) {
|
|
switched = false;
|
|
return;
|
|
}
|
|
delay(10);
|
|
}
|
|
if (!switched) {
|
|
state = !state;
|
|
if (state) {
|
|
deviceRelay.relayOnHandler("true");
|
|
} else {
|
|
deviceRelay.relayOnHandler("false");
|
|
}
|
|
switched = true;
|
|
}
|
|
};
|