【micropython】四行代码做微信报警系统
本帖最后由 小和尚 于 2017-6-25 15:38 编辑一, 申请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
编写boot脚本:
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())
else:
pdcn.active(False)
utime.sleep(5)
print("WiFi cannot connect.")
编写main.py脚本# 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()
if result >= 28:
a.push(result)
最关键的就是main.py脚本中的push方法,四行代码(其实一行就行了,不过urequests的接受参数不能太长)就可以做到报警了。是不是炒鸡简单。
测试结果如下:
好棒!! microPython是不是先把相关文件下载到esp里 然后在用命令行编程 dexin 发表于 2017-6-25 18:45
microPython是不是先把相关文件下载到esp里 然后在用命令行编程
micropython在有些固件里自带了大部分库,像esp32就有些库不全。所以需要自己下载并上传到flash里面进行调用。在python,想要调用同目录下的库就需要创建一个名字为__init__.py的空文件。你可以用论坛的uPyCraft_V0.20.exe IDE进行脚本上传下载。并不需要在命令行写脚本,那会很蛋疼 小和尚 发表于 2017-6-25 19:05
micropython在有些固件里自带了大部分库,像esp32就有些库不全。所以需要自己下载并上传到flash里面进行 ...
明白了!!! server酱不错的服务,谢谢楼主文章 用了一下,超级简单,挺好玩 还没试过有空试试看
页:
[1]