首页 » 99链接平台 » [Micropython]TPYBoard v202 自制微信远程智能温湿度计(温湿度智能推送是因为选用)

[Micropython]TPYBoard v202 自制微信远程智能温湿度计(温湿度智能推送是因为选用)

乖囧猫 2024-11-02 14:27:46 0

扫一扫用手机浏览

文章目录 [+]

一、申请微信推送服务

能否实现微信推送服务的平台有很多,这里我就不一一解释了。
我选用了「Server酱」,英文名「ServerChan」。
你完全可以选用你认为比较好用的平台。
「Server酱」的申请方法:

打开该网址 http://sc.ftqq.com/3.version 开通并使用。

[Micropython]TPYBoard v202 自制微信远程智能温湿度计(温湿度智能推送是因为选用) 99链接平台
(图片来自网络侵删)

•1.登入:用GitHub账号登入网站,点击进入“发送消息”页面,就能获得一个SCKEY。
具体见:http://sc.ftqq.com/?c=code

•2.绑定:点击“微信推送”页面,扫码关注同时即可完成绑定

•3.发消息:往 https://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦。

二、让我们开始DIY温湿度计

选择合适的主控板

更喜欢python编程的我,这里选用支持micropython的TPYBoard v202(esp8266)开发板。
该开发板能够直接用python进行编程,功能还是比较强大的,甚至可用来作web服务器。
这里我们主要是用其进行温湿度传感器的控制及网络请求。

DHT11温湿度传感器

DHT11是常用的温湿度传感器,网上可以很轻易就买到。
简单的讲,就是可以用这个传感器获取的当前环境的温度和湿度。

该传感器使用非常简单,有的有3个引脚,有的有4个引脚。
我们在使用时,只用三个,分别为VCC(电源脚,接5V)、DATA(数据引脚)、GND(接地)。

正确的连线方法

TPYBoard v202与DHT11的具体接线对应及实物图

三、少不了的编程

TPYBoard v202主要有两个文件来控制,一个是boot,py,一个是main.py。
我们只需要修改这两个文件就可以完成程序的编写。
如果你对如何使用TPYBoard v202还不清楚,可以参照此教程:http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v202/start/。

编写boot脚本

boot.py:

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.")

编写main.py脚本

main.py:

import urequests

import dht

import machine

from machine import Pin

import time

class AlarmSystem:

def __init__(self):

self.d = dht.DHT11(machine.Pin(5))

def dht11(self):

try:

self.d.measure()

return 'Temp:'+str(self.d.temperature())+'°C---Hum:'+str(self.d.humidity())+'%'

except:

return '0'

def push(self, result):

title = "TPYBoardv202提示您:注意天气变化保持健康心情"

content = 'text='+title+'&'+'desp='+result

url="https://sc.ftqq.com/你的密钥.send?%s" % content

r = urequests.get(url)

r.close()

p2=Pin(2,Pin.OUT)

a = AlarmSystem()

def SendData():

p2.value(not p2.value())

data_= a.dht11()

if(data_!='0'):

print(data_)

a.push(data_)

else:

print('GET Data Fail')

if __name__ == '__main__':

while True:

SendData()

time.sleep(300)

标签:

相关文章