TPYBoard自制微信遠程智能溫濕度計


        智能時代一夜間什么都能遠程了。創業者想着如何做智能產品,如何做遠程控制。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的TPYBoard v202(esp8266)開發板。該開發板能夠直接用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腳本

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)

四、成果分享

   到這里,工作完成,方糖就會發送推送消息給你,你就會看到檢測的溫濕度了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM