极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12329|回复: 0

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

[复制链接]
发表于 2017-7-1 15:26:13 | 显示全部楼层 |阅读模式
  智能时代一夜间什么都能远程了。创业者想着如何做智能产品,如何做远程控制。DIY爱好者也想着如何自制各种奇妙的工具。这里和大家一起学习制作一款廉价的智能温湿度计。说它廉价是因为共计花费不过40元,说它智能是因为你可以通过手机微信时时知道该设备所在位置的温湿度。

  一、申请微信推送服务

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

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

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

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

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

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

  1、选择合适的主控板

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



  2、DHT11温湿度传感器

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



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

  3、正确的连线方法

  TPYBoardv202与DHT11的具体接线对应及实物图
TPYBoard v202        DHT11传感器
+5v        vcc
G5        DATA
GND        GND



  三、少不了的编程

  TPYBoardv202主要有两个文件来控制,一个是boot,py,一个是main.py。我们只需要修改这两个文件就可以完成程序的编写。如果你对如何使用TPYBoardv202还不清楚,可以参照

  http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v202/。

  1、编写boot脚本
  1. import network
  2. import utime

  3. pdcn = network.WLAN(network.STA_IF)
  4. pdcn.active(True)
  5. pdcn.connect('wifi账号', 'wifi密码')
  6. utime.sleep(5)
  7. if pdcn.isconnected():
  8.     print("WiFi is connected %s."%pdcn.ifconfig()[0])   
  9. else:
  10.     pdcn.active(False)
  11.     utime.sleep(5)
  12.     print("WiFi cannot connect.")
复制代码


  2、编写main.py脚本

  1. # coding=utf-8
  2. import urequests
  3. import dht
  4. import machine
  5. from machine import Pin
  6. import time  

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

  10.     def dht11(self):
  11.         try:
  12.             self.d.measure()
  13.             return 'Temp:'+str(self.d.temperature())+'°C---Hum:'+str(self.d.humidity())+'%'
  14.    
  15.         except:
  16.             return '0'

  17.     def push(self, result):
  18.         title = "TPYBoardv202提示您:注意天气变化保持健康心情"
  19.         content = 'text='+title+'&'+'desp='+result
  20.         url="https://sc.ftqq.com/SCU9545T6a65dcc064b04f78364fc3e6df6593c45951abe4d7219.send?%s" % content
  21.         r = urequests.get(url)
  22.         r.close()

  23. p2=Pin(2,Pin.OUT)
  24. a = AlarmSystem()

  25. def SendData():
  26.     p2.value(not p2.value())
  27.     data_= a.dht11()
  28.     if(data_!='0'):
  29.         print(data_)
  30.         a.push(data_)
  31.     else:
  32.         print('GET Data Fail')

  33. if __name__ == '__main__':
  34.    
  35.     while True:
  36.         SendData()
  37.         time.sleep(300)
复制代码


  四、成果分享

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

  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 17:59 , Processed in 0.050350 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表