|
智能時(shí)代一夜間什么都能遠(yuǎn)程了。創(chuàng)業(yè)者想著如何做智能產(chǎn)品,如何做遠(yuǎn)程控制。DIY愛好者也想著如何自制各種奇妙的工具。這里和大家一起學(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點(diǎn)ftqq點(diǎn)com/3.version,開通并使用:
1. 登入:用GitHub賬號(hào)登入網(wǎng)站,點(diǎn)擊進(jìn)入“發(fā)送消息”頁(yè)面,就能獲得一個(gè)SCKEY。具體見:http://sc點(diǎn)ftqq點(diǎn)com/?c=code
2. 綁定:點(diǎn)擊“微信推送”頁(yè)面,掃碼關(guān)注同時(shí)即可完成綁定
3. 發(fā)消息:往https://sc點(diǎn)ftqq點(diǎn)com/SCKEY.send發(fā)GET請(qǐng)求,就可以在微信里收到消息啦
二、讓我們開始DIY溫濕度計(jì)
1、選擇合適的主控板
更喜歡python編程的我,這里選用支持micropython的TPYBoardv202(esp8266)開發(fā)板。該開發(fā)板能夠直接用python進(jìn)行編程,功能還是比較強(qiáng)大的,甚至可用來(lái)作web服務(wù)器。這里我們主要是用其進(jìn)行溫濕度傳感器的控制及網(wǎng)絡(luò)請(qǐng)求。
1.png (139.9 KB, 下載次數(shù): 73)
下載附件
2017-7-1 15:06 上傳
2、DHT11溫濕度傳感器
DHT11是常用的溫濕度傳感器,網(wǎng)上可以很輕易就買到。簡(jiǎn)單的講,就是可以用這個(gè)傳感器獲取的當(dāng)前環(huán)境的溫度和濕度。
2.jpg (95.69 KB, 下載次數(shù): 56)
下載附件
2017-7-1 15:06 上傳
該傳感器使用非常簡(jiǎn)單,有的有3個(gè)引腳,有的有4個(gè)引腳。我們?cè)谑褂脮r(shí),只用三個(gè),分別為VCC(電源腳,接5V)、DATA(數(shù)據(jù)引腳)、GND(接地)。
3、正確的連線方法
TPYBoardv202與DHT11的具體接線對(duì)應(yīng)及實(shí)物圖
TPYBoard v202 | DHT11傳感器 | +5v | vcc | G5 | DATA | GND | GND |
3.jpg (81.08 KB, 下載次數(shù): 64)
下載附件
2017-7-1 15:06 上傳
三、少不了的編程
TPYBoardv202主要有兩個(gè)文件來(lái)控制,一個(gè)是boot,py,一個(gè)是main.py。我們只需要修改這兩個(gè)文件就可以完成程序的編寫。如果你對(duì)如何使用TPYBoardv202還不清楚,可以參照
http://docs點(diǎn)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.")
復(fù)制代碼
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/SCU9545T6a65dcc064b04f78364fc3e6df6593c45951abe4d7219.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)
復(fù)制代碼
四、成果分享
到這里,工作完成,方糖就會(huì)給你,你就會(huì)看到顯示的溫濕度了。
4.png (108.48 KB, 下載次數(shù): 53)
下載附件
2017-7-1 15:07 上傳
|
評(píng)分
-
查看全部評(píng)分
|