原创: 橙子
随着当代社会的迅速发展,互联网的发展为智能家居产业带来了新玩法,智能电视、智能机器人、智能插座等相继推出,智能家居离我们越来越近。今天和大家一起分享一下制作一款廉价的智能温湿度计,说它廉价是因为共计花费不过几十元,说它智能是因为你可以通过手机微信时时知道该设备所在位置的温湿度。
一、申请微信推送服务
能否实现微信推送服务的平台有很多,这里我就不一一解释了。我选用了「Server酱」,英文名「ServerChan」。你完全可以选用你认为比较好用的平台。「Server酱」的申请方法:打开该网址http://sc.ftqq.com/3.version,开通并使用,非常简单只要三步:
1).登入:用GitHub账号登入网站,点击进入“发送消息”页面,就能获得一个SCKEY。
2).绑定:点击“微信推送”页面,扫码关注同时即可完成绑定
3).发消息:
往 https://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦
链接:http://sc.ftqq.com/?c=code
二、开始DIY温湿度计
1.选择合适的主控板
更喜欢python编程的我,这里选用支持micropython的TPYBoard v202开发板。该开发板能够直接用python进行编程,功能还是比较强大的,甚至可用来作web服务器。这里我们主要是用其进行温湿度传感器的控制及网络请求。
2.DHT11温湿度传感器
DHT11是常用的温湿度传感器,网上可以很轻易就买到。简单的讲,就是可以用这个传感器获取的当前环境的温度和湿度。
该传感器使用非常简单,有的有3个引脚,有的有4个引脚。我们在使用时,只用三个,分别为VCC(电源脚,接5V)、DATA(数据引脚)、GND(接地)。
3.正确的连线方法
TPYBoard v202与DHT11的具体接线对应及实物图
三、动手写代码
TPYBoard v202主要有两个文件来控制,一个是boot,py,一个是main.py。我们只需要修改这两个文件就可以完成程序的编写。如果你对如何使用TPYBoard v202还不清楚,可以参照:
http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v202/
1.编写boot脚本
2.编写main.py脚本
import urequests
import machine
from machine import Pin
import dht
import time
class AlarmSystem:
def __init__(self):
self.dht = dht.DHT11(machine.Pin(5))
def get_result(self):
try:
self.dht.measure()
return 'Temp:'+str(self.dht.temperature())+'°C---Hum:'+str(self.dht.humidity())+'%'
except:
return None
def push(self, result):
title = "TPYBoardv202提示您:注意天气变化保持健康心情"
content = 'text='+title+'&'+'desp='+result
url="https://sc.ftqq.com/SCU9545T6a65dcc064b04f78364fc3e6df6593c45951abe4d7219.send?%s" % content
r = urequests.get(url)
r.close()
def SendData():
pin = Pin(2, Pin.OUT)
alarm_system = AlarmSystem()
pin.value(not pin.value())
message= alarm_system.get_result()
if message:
print(message)
alarm_system.push(message)
else:
print('GET Data Fail')
if __name__ == '__main__':
while True:
sendData()
time.sleep(300)
代码的思路:
其实代码很简单,利用一些硬件模块的API即可.声明一个 AlarmSystem的类,这个类主要干两件事:
- 初始化一个dht11的对象.(有同学问什么是DHT11,是校准数字信号输出的温湿度传感器),通过这个对象获取温度和湿度的信息,然后构成一条消息。
- 然后把这条消息,通过sc工具发送到微信上即可。
是不是很简单,中间的模块和管道都帮你准备好了,你不需要造轮子,只要提供内容即可,Python语言真的是无处不在。
3.看一下微信上的效果效果图
这个小应用非常简单,算是抛砖引玉,其实Python来开发一个应用真的是非常方便,语言简洁,上手很快,库有很多。拿到了这个温度和湿度之后,再做一个界面,进行一些逻辑判断,就是一个好玩的小产品了,编程就是这样,多动手,多实践才能走更远。
下面推荐我的小程序,码题达人,一起来玩耍
码题达人
好玩·有趣·奖品多
点击:码题达人 一起来玩耍
fix了一些bug
1.修改了不出题目,计时器就开始的问题
2.增加了每轮2次的查看答案的提示
3.规则说明,修了答案提示功能
近期热门:
菜鸟学Python,上半年文章大汇总
周末也要编程,3道Python题,9种解法,你能想出几种
我想带你去旅行,我用Python提前做了一份端午旅游攻略
超酷,用Python还能写超级玛丽游戏
30岁后还能不能学Python,这里有一碗鸡汤
零基础学了8个月的Python,到底有啥感悟