在假期中,我認為為我們在新英格蘭的房屋設備停電設備是一個好主意。快速的DuckDuckgo搜索發現了 @Fabytm出色的Raspberry Pi實現。經過一點點玩具,我決定在便宜的ESP32或ESP8266 MCU上,Butean的想法更簡單。它還將允許其他人以更少的時間,更少的資金或可能更少的技術技能來建造功率檢測設備。
我想捕獲兩種停電方案:
停電檢測- 首先,我想使用Adafruit的Feed Notification System在指定的時間內未從設備收到HTTP響應時通知我。 Adafruit IO允許免費帳戶發送通知,如果在10分鐘,30分鐘,1小時或1天內沒有發布更新。這個“在線”提要功能真的很好。對於免費的Adafruit IO帳戶,僅是電子郵件,但出於我們的目的,這足夠了。
中斷長度- 代碼,所有〜100行,也跟踪時期時間。恢復功率時,它會計算自上次記錄的時間以來已經過去了多少時間,如果超出您在config.py中設置的值,則將發佈到IFTTT此delta。我在IFTTT的Value1字段中報告了中斷時間,而我的“然後”動作是讓Alexa通知我停電長度。
在config.py中,我將Adafruit發布間隔設置為30秒,而中斷間隔為10分鐘。我也有此提要通過電子郵件發送我的Gmail帳戶,該帳戶的規則是,如果發件人通知發送者@io.adafruit.com,它將電子郵件轉發到我的AT&T SMTP-to-SMS網關[email protected],我會收到SMS Alert。對於IFTTT通知,我將Delta中斷長度設置為30分鐘,並使用Webhooks提醒我的任何持續時間比該時間間隔更長的中斷。
您需要以下5個組件來構建此設備:
Axpressif ESP MCU-我以〜4美元的價格選擇了LOLIN/WEMOS ESP32C3板。 ESP8266效果同樣效果很好。
Micropython-您可以在此處為上述板下載它。您將需要esptool和ampy工具來刷新微密碼和上傳Python腳本。使用您喜歡的串行連接工具(putty.exe,屏幕等)。
detect.py和config-sample.py micropython文件。重命名config-sample.py to config.py以合併您的WiFi,Adafruit和IFTTT憑據。
在Adafruit和IFTTT上都有免費帳戶。創建這些帳戶很簡單 - 只是直接進入這些站點並註冊。您需要創建一個提要並在Adafruit上設置此提要的通知。在IFTTT上,使用您在Adafruit中指定的Feed名稱使用Webhook。
一個封閉MCU的小案例。我包括了一個小案例的.scad和.stl版本,該版本將容納ESP芯片。您可以在適合自己選擇的董事會時進行修改。使用SCAD進行這些更改。
歡迎評論/建議/批評。請記住,我在不到90分鐘的時間內就建立了此倉庫和代碼,我敢肯定它可以得到改進。但是它非常適合我的需求。
