文档章节

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

bodasisiter
 bodasisiter
发布于 2017/07/01 16:54
字数 803
阅读 49
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

  智能时代一夜间什么都能远程了。创业者想着如何做智能产品,如何做远程控制。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脚本

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)

  四、成果分享

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

© 著作权归作者所有

bodasisiter
粉丝 31
博文 209
码字总数 196976
作品 0
潍坊
私信 提问
加载中

评论(0)

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

智能时代一夜间什么都能远程了。创业者想着如何做智能产品,如何做远程控制。DIY爱好者也想着如何自制各种奇妙的工具。这里和大家一起学习制作一款廉价的智能温湿度计。说它廉价是因为共计花...

bodasisiter
2018/09/30
344
0
TPYBoard v102+v202 家庭无线温湿度检测

一、实验器件 1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干 二、实验步骤 TPYB...

bodasisiter
2018/09/30
91
0
物联那点事儿之SmartConfig技术给esp8266设备手机wifi配网,一键配网!有wifi的地方,就能让你的设备跑起来,你心动了吗!(点灯科技篇)

前言 好久没更新了,最近在研究用ardunio+阿里云物联网平台+微信开发者者工具做微信小程序的项目,先来更新一下使用点灯科技第三方平台编写程序的代码吧!最近接触了了阿里云物联网平台之后,...

JIANGYINGH
04/30
0
0
用MicroPython制作家庭无线温湿度检测气象站

一、实验器件 1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干 (该套件组合某宝可...

osc_v8xs2czi
2018/09/11
2
0
[Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测

一、实验器件 1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干 二、实验步骤 1、T...

bodasisiter
2018/05/31
440
0

没有更多内容

加载失败,请刷新页面

加载更多

微服务项目搭建,到底要不要聚合工程?

这是一个入门问题,做微服务项目,首先就是要搭建 Project,代码采用什么样的形式来组织,这是我们面临的第一个问题。 要扯清楚这个问题,首先对 Maven 的使用不能含糊,小伙伴们可以在公众号...

osc_y12wmf09
21分钟前
15
0
C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容

作者 谢恩铭,慕课网精英讲师 Oscar老师。 转载请注明出处。 内容简介 用 printf 显示变量内容 用 scanf 提取程序中的输入 总结 第一部分第七课预告 1. 用 printf 显示变量内容 变量相关的内...

osc_zjs1puzi
22分钟前
16
0
php 操作RabbitMQ

基本流程图 如果exchange 没有绑定queue,则消息将会被丢弃 如果创建exchange,queue,并且已经绑定了,则可以直接使用 为了防止脚本出问题 可以配合supervisor 安装 从网站 https://packag...

php开源社区
24分钟前
18
0
Kotlin Coroutines Flow 系列(五) 其他的操作符

八. Flow 其他的操作符 8.1 Transform operators transform 在使用 transform 操作符时,可以任意多次调用 emit ,这是 transform 跟 map 最大的区别: fun main() = runBlocking { (1...

osc_0l1onu3j
24分钟前
13
0
挽救数据库性能的30条黄金法则

原文: 挽救数据库性能的30条黄金法则 1. 优化查询,应尽量避免全表扫描,应该在用于检索数据和排序数据的字段上建立索引,如where子句用于搜索,order by子句用于排序,所以在这两个子句涉及...

osc_gxvh47u5
24分钟前
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部