在假期中,我认为为我们在新英格兰的房屋设备停电设备是一个好主意。快速的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分钟的时间内就建立了此仓库和代码,我敢肯定它可以得到改进。但是它非常适合我的需求。
