#include #include #include #include "IFTTTWebhook.h" #include "WiFiManager.h" extern "C" { #include "user_interface.h" } #define IFTTT_API_KEY "put_key_here" #define IFTTT_EVENT_NAME "put_event_here_eg_Fridge_Open" #define WIFICONF_PIN 0 void setup() { //initialise serial Serial.begin(115200); delay(5000); //if pin0 is GND, show the wifi config page pinMode(WIFICONF_PIN, INPUT); if ( digitalRead(WIFICONF_PIN) == LOW ) { Serial.println("WiFi config jumper detected, starting portal"); WiFiManager wifiManager; wifiManager.startConfigPortal("ESP_ALERT_CONFIG"); } //check why the device restarted rst_info *rsti; rsti = ESP.getResetInfoPtr(); Serial.println("\r\nStart..."); Serial.println(String("ResetInfo.reason = ") + rsti->reason); //if esp8266 ever wakes from sleep, the door is still open -> alarm if (rsti->reason == 5) { Serial.println("Wake from sleep detected....."); WiFiManager wifiManager; wifiManager.setConfigPortalTimeout(1); // prevent wifi config page; conserve battery if fault if (wifiManager.autoConnect()) { IFTTTWebhook wh(IFTTT_API_KEY, IFTTT_EVENT_NAME); wh.trigger(); } else { Serial.println("Could not connect to wifi and hit timeout"); } } //sleep Serial.println("Going to sleep..."); ESP.deepSleep(60000000 , WAKE_RF_DEFAULT); delay(100); } void loop() {}