【micropython】四行代码做微信报警系统

2017-06-251.3万
AI 快速预览详细 收起
本文介绍了如何使用Micropython和DHT11传感器创建一个温度报警系统,并通过微信推送报警信息。首先需要申请ServerChan密钥,然后下载并上传所需的库文件到Flash。接着编写boot脚本和main.py脚本,配置WiFi连接和报警条件。最关键的是main.py脚本中的push方法,通过四行代码实现温度达到临界点时自动推送微信报警。


一, 申请ServerChan密钥         

打开该网址http://sc.ftqq.com/3.version,根据说明生成自己的密钥。


二, 写一个温度报警系统,温度达到临界点推送给微信
下载以下库文件并上传到flash
https://github.com/micropython/micropython/blob/master/esp8266/modules/dht.py

https://github.com/micropython/m ... quests/urequests.py

最终目录结构如下:
创建一个空文件__init__.py
【micropython】四行代码做微信报警系统图2


编写boot脚本:
[mw_shl_code=python,true]import network
import utime

pdcn = network.WLAN(network.STA_IF)
pdcn.active(True)
pdcn.connect('wifi账号', 'wifi密码')
utime.sleep(5)
if pdcn.isconnected():
    print("WiFi is connected %s."%pdcn.ifconfig()[0])   
else:
    pdcn.active(False)
    utime.sleep(5)
    print("WiFi cannot connect.")[/mw_shl_code]


编写main.py脚本[mw_shl_code=python,true]# coding=utf-8
from lib import urequests
from lib import dht
import machine


class AlarmSystem:
    def __init__(self):
        self.d = dht.DHT11(machine.Pin(5))

    def dht11(self):
        self.d.measure()
        return "Temp:%s" % self.d.temperature(), "Humi:%s" % self.d.humidity()

    def push(self, result):
        title = "FireBeetle_ESP32"
        content = "text=%s" % title + "&" + "desp=%s"%result  
        r = urequests.get("https://sc.ftqq.com/你的密钥.send?%s" % content)
        r.close()
        
if __name__ == '__main__':
    a = AlarmSystem()
    while True:
        result = a.dht11()[0]
        if result >= 28:
            a.push(result)
[/mw_shl_code]


最关键的就是main.py脚本中的push方法,四行代码(其实一行就行了,不过urequests的接受参数不能太长)就可以做到报警了。是不是炒鸡简单。
测试结果如下:
【micropython】四行代码做微信报警系统图1





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
世界雫ss
世界雫ss
还没试过有空试试看
秦皇岛岛主
秦皇岛岛主
用了一下,超级简单,挺好玩
pATAq
pATAq
server酱不错的服务,谢谢楼主文章
dexin1
dexin1
microPython是不是先把相关文件下载到esp里 然后在用命令行编程
dexin1
dexin1回复小和尚
明白了!!!
小和尚
小和尚
作者
回复dexin1
micropython在有些固件里自带了大部分库,像esp32就有些库不全。所以需要自己下载并上传到flash里面进行调用。在python,想要调用同目录下的库就需要创建一个名字为__init__.py的空文件。你可以用论坛的uPyCraft_V0.20.exe IDE进行脚本上传下载。并不需要在命令行写脚本,那会很蛋疼
dexin1
dexin1
好棒!!
- 没有更多了 -