In den Ferien dachte ich, es wäre eine großartige Idee, ein Stromausfall -Erkennungsgerät für unser Zuhause in Neuengland zu haben. Eine Quick DuckDuckgo -Suche entdeckte @Fabytms ausgezeichnete Raspberry PI -Implementierung. Nachdem ich ein bisschen mit ihm gespielt hatte, entschied ich, dass eine leichtere Version von Buteans Idee bei einem billigen ESP32 oder ESP8266 MCU einfacher sein könnte. Es ermöglicht auch anderen, dass andere mit weniger Zeit, weniger Geld oder möglicherweise weniger technischen Fähigkeiten ein Stromerkennungsgerät erstellen.
Es gibt zwei Ausfallszenarien, die ich erfassen wollte:
Ausfallerkennung - Erstens wollte ich das Adafruit -Feed -Benachrichtigungssystem verwenden, um mich zu benachrichtigen, wenn es innerhalb eines bestimmten Zeitraums keine HTTP -Antwort von meinem Gerät erhalten hatte. Mit Adafruit IO können kostenlose Konten Benachrichtigungen senden, wenn keine Aktualisierungen in 10 Minuten, 30 Minuten, 1 Stunde oder 1 Tag veröffentlicht wurden. Diese "Online" -Feed -Funktion ist wirklich schön. Für die kostenlosen Adafruit -IO -Konten ist es nur eine E -Mail, aber für unsere Zwecke reicht dies ziemlich aus.
Ausfalllänge - Der Code, alle ~ 100 Zeilen davon, verfolgt auch die Epoche -Zeit. Wenn Power wiederaufläuft, berechnet sie, wie viel Zeit seit der letzten aufgezeichneten Zeit vergangen ist, und wird dieses Delta an IFTTT veröffentlichen, wenn es einen Wert überschreitet, den Sie in config.py festgelegt haben. Ich melde die Ausfallzeit in IFTTTs Value1 -Feld und meine "dann" -Aktion besteht darin, dass Alexa mich über die Ausfalllänge benachrichtigt.
In config.py habe ich das Adafruit -Posting -Intervall auf 30 Sekunden und das Ausfallintervall auf 10 Minuten festgelegt. Ich habe diesen Feed auch eine E-Mail an mein Google Mail-Konto, in dem eine Regel enthält, dass, wenn der Absender [email protected] ist, die E-Mail an meine AT & T SMTP-to-Sms [email protected] und ich erhalten einen SMS-Alarm. Bei IFTTT -Benachrichtigungen habe ich die Delta -Ausfalllänge auf 30 Minuten festgelegt und verwende Webhooks, um mich über einen Ausfall aufmerksam zu machen, der länger dauert als dieses Zeitintervall.
Sie benötigen die folgenden 5 Komponenten, um dieses Gerät zu erstellen:
Ein Expressif ESP MCU - Ich habe das Lolin/Wemos ESP32C3 -Board für ~ 4 US -Dollar ausgewählt. Ein ESP8266 funktioniert gleich gut.
Micropython - Sie können es hier für das obige Board herunterladen. Sie benötigen esptool und ampy -Tools, um Mikropropython zu flashen und Ihre Python -Skripte hochzuladen. Verwenden Sie Ihr bevorzugter serielles Konnektivitätstool (Putty.exe, Bildschirm usw.).
Die mikropython-Dateien detect.py und config-sample.py . Benennen Sie config-sample.py in config.py um Ihre WLAN-, Adafruit- und IFTTT-Anmeldeinformationen einzubeziehen.
Kostenlose Konten sowohl auf Adafruit als auch auf IFTTT. Das Erstellen dieser Konten ist einfach - nur um diese Websites direkt zu gehen und sich anzumelden. Sie müssen einen Feed erstellen und die Benachrichtigung für diesen Feed auf Adafruit einrichten. Verwenden Sie auf IFTTT einen Webhook mit dem in Adafruit angegebenen Feed -Namen.
Ein kleiner Fall, um die MCU einzuschließen. Ich habe sowohl die .Scad- als auch die .stl -Version eines kleinen Falls aufgenommen, in dem der ESP -Chip untergebracht wird. Sie können es ändern, wenn Sie das Board Ihrer Wahl entsprechen möchten. Verwenden Sie SCAD, um diese Änderungen vorzunehmen.
Kommentare/Vorschläge/Kritik sind begrüßt. Denken Sie daran, ich habe diesen Repo und Code in weniger als 90 Minuten erstellt und ich bin sicher, dass es verbessert werden könnte. Aber es funktioniert großartig für das, was ich brauche.
