智能時(shí)代一夜間什么都能遠(yuǎn)程了。創(chuàng)業(yè)者想著如何做智能產(chǎn)品,如何做遠(yuǎn)程控制。DIY愛(ài)好者也想著如何自制各種奇妙的工具。這里和大家一起學(xué)習(xí)制作一款廉價(jià)的智能溫濕度計(jì)。說(shuō)它廉價(jià)是因?yàn)楣灿?jì)花費(fèi)不過(guò)40元,說(shuō)它智能是因?yàn)槟憧梢酝ㄟ^(guò)手機(jī)微信時(shí)時(shí)知道該設(shè)備所在位置的溫濕度。
一、申請(qǐng)微信推送服務(wù)
能否實(shí)現(xiàn)微信推送服務(wù)的平臺(tái)有很多,這里我就不一一解釋了。我選用了「Server醬」,英文名「ServerChan」。你完全可以選用你認(rèn)為比較好用的平臺(tái)。「Server醬」的申請(qǐng)方法:
打開該網(wǎng)址<http://sc.ftqq點(diǎn)com/3.version>,開通并使用:
1.登入:用GitHub賬號(hào)登錄網(wǎng)站 <https://sc.ftqq點(diǎn)com/?c=github&a=login>,點(diǎn)擊進(jìn)入“發(fā)送消息”頁(yè)面,就能獲得一個(gè)SCKEY <https://sc.ftqq點(diǎn)com/?c=code>。具體見(jiàn):<http://sc.ftqq點(diǎn)com/?c=code>
2.綁定:點(diǎn)擊“微信推送”頁(yè)面,掃碼關(guān)注同時(shí)即可完成綁定
3.發(fā)消息:往 <https://sc.ftqq點(diǎn)com/SCKEY.send> 發(fā)GET請(qǐng)求,就可以在微信里收到消息啦
二、我們開始DIY溫濕度計(jì)
1、選擇合適的主控板
更喜歡python編程的我,這里選用支持micropython的TPYBoard v202(esp8266)開發(fā)板。該開發(fā)板能夠直接用python進(jìn)行編程,功能還是比較強(qiáng)大的,甚至可用來(lái)作web服務(wù)器。這里我們主要是用其進(jìn)行溫濕度傳感器的控制及網(wǎng)絡(luò)請(qǐng)求。

2、DHT11溫濕度傳感器
DHT11是常用的溫濕度傳感器,網(wǎng)上可以很輕易就買到。簡(jiǎn)單的講,就是可以用這個(gè)傳感器獲取的當(dāng)前環(huán)境的溫度和濕度。

該傳感器使用非常簡(jiǎn)單,有的有3個(gè)引腳,有的有4個(gè)引腳。我們?cè)谑褂脮r(shí),只用三個(gè),分別為VCC(電源腳,接5V)、DATA(數(shù)據(jù)引腳)、GND(接地)。
3、正確的連線方法
TPYBoard v202與DHT11的具體接線對(duì)應(yīng)及實(shí)物圖

三、少不了的編程
TPYBoard v202主要有兩個(gè)文件來(lái)控制,一個(gè)是boot,py,一個(gè)是main.py。我們只需要修改這兩個(gè)文件就可以完成程序的編寫。如果你對(duì)如何使用TPYBoard v202還不清楚,可以參照
<http://docs.tpyboard點(diǎn)com/zh/latest/tpyboard/tutorial/v202/>。
1、編寫boot腳本 import network import utime
pdcn = network.WLAN(network.STA_IF) pdcn.active(True) pdcn.connect('wifi賬號(hào)', '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點(diǎn)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) |
四、 成果分享
到這里,工作完成,方糖就會(huì)給你,你就會(huì)看到顯示的溫濕度了。

|