|
|
- /*
-
- ESPurna
- RELAY MODULE
-
- Copyright (C) 2016 by Xose Pérez <xose dot perez at gmail dot com>
-
- */
-
- #include <EEPROM.h>
-
- // -----------------------------------------------------------------------------
- // RELAY
- // -----------------------------------------------------------------------------
-
- void switchRelayOn() {
-
- if (!digitalRead(RELAY_PIN)) {
-
- DEBUG_MSG("[RELAY] ON\n");
- digitalWrite(RELAY_PIN, HIGH);
- EEPROM.write(0, 1);
- EEPROM.commit();
-
- mqttSend((char *) MQTT_STATUS_TOPIC, (char *) "1");
- webSocketSend((char *) "{\"relayStatus\": true}");
-
- }
-
- }
-
- void switchRelayOff() {
-
- if (digitalRead(RELAY_PIN)) {
-
- DEBUG_MSG("[RELAY] OFF\n");
- digitalWrite(RELAY_PIN, LOW);
- EEPROM.write(0, 0);
- EEPROM.commit();
-
- mqttSend((char *) MQTT_STATUS_TOPIC, (char *) "0");
- webSocketSend((char *) "{\"relayStatus\": false}");
-
- }
-
- }
-
- void toggleRelay() {
- if (digitalRead(RELAY_PIN)) {
- switchRelayOff();
- } else {
- switchRelayOn();
- }
- }
-
- void relaySetup() {
- pinMode(RELAY_PIN, OUTPUT);
- EEPROM.begin(4096);
- EEPROM.read(0) == 1 ? switchRelayOn() : switchRelayOff();
- }
|