1回答

0收藏

TPYBoardv202自制微信远程智能温湿度计

STMCU STMCU 3708 人阅读 | 1 人回复 | 2018-09-30

    智能时代一夜间什么都能远程了。创业者想着如何做智能产品,如何做远程控制。DIY爱好者也想着如何自制各种奇妙的工具。这里和大家一起学习制作一款廉价的智能温湿度计。说它廉价是因为共计花费不过40元,说它智能是因为你可以通过手机微信时时知道该设备所在位置的温湿度。

    一、申请微信推送服务

    能否实现微信推送服务的平台有很多,这里我就不一一解释了。我选用了「Server酱」,英文名「ServerChan」。你完全可以选用你认为比较好用的平台。「Server酱」的申请方法:
    打开该网址<http://sc.ftqq.com/3.version>,开通并使用:

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

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

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

   二、我们开始DIY温湿度计

    1、选择合适的主控板

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


    2、DHT11温湿度传感器


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


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

    3、正确的连线方法
    TPYBoard v202与DHT11的具体接线对应及实物图

TPYBoard v202
DHT11传感器
+5v
vcc
G5
DATA
GND
GND


    三、少不了的编程

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

1、编写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()[0])     
  
else:
  
    pdcn.active(False)
  
    utime.sleep(5)
  
    print("WiFi  cannot connect.")
  
2、编写main.py脚本

  
# coding=utf-8
  
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)
  



    四、 成果分享

    到这里,工作完成,方糖就会给你,你就会看到显示的温湿度了。


分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

lylmirror

发表于 2021-1-18 22:45:27 | 只看该作者

看着不错,有空做个玩玩
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条