物聯(lián)網(wǎng)技術(shù)開創(chuàng)了一個智慧城市的新時代,從智能攝像頭到部署各種傳感器,以此對城市各種數(shù)據(jù)進行收集,并經(jīng)云端AI技術(shù)處理后,有助于提高對交通和街道等城市公共管理能力;物聯(lián)網(wǎng)的發(fā)展也為智能家居帶來了新的玩法,智能機器人,智能冰箱,智能電視等相繼推出,智能家居離我們越來越近。下面帶大家用Python通過HTTP協(xié)議做一個廉價的溫濕度報警系統(tǒng)。
成都創(chuàng)新互聯(lián)公司擁有一支富有激情的企業(yè)網(wǎng)站制作團隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗豐富。十載網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為成百上千家中小企業(yè)提供了成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)解決方案,按需網(wǎng)站開發(fā),設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費網(wǎng)站維護!物聯(lián)網(wǎng)應(yīng)用需要檢測設(shè)備和處理設(shè)備,我們選用TPYBoard v102作為中心處理設(shè)備。為了方便我選擇用無線傳輸,選了TPYBoard v202(ESP8266模塊)用wifi來往云端傳輸數(shù)據(jù),檢測設(shè)備我們用一個比較簡單的溫濕度檢測模塊-DHT11溫濕度傳感器,顯示設(shè)備我們就用廉價的顯示屏-5110液晶顯示屏,這些是主要的設(shè)備,在某寶上都能買得到,通過這些我們就可以做到網(wǎng)上看數(shù)據(jù),現(xiàn)實看數(shù)據(jù)了,了解當前的溫度和濕度了。
一、 實驗器材
1.TPYBoard v102 1塊
2.TPYBoard v202 1塊
3.LCD5110顯示屏 1塊
4.DHT11溫濕度傳感器 1個
5.安卓數(shù)據(jù)線 2條
6.面包板 1塊
7.杜邦線 若干
二、實驗步驟
1.用TPYBoard v102連接DHT11溫濕度傳感器采集溫濕度信息;
2.將采集到的溫濕度信息顯示在LCD5110上;
3.將采集到的溫濕度信息通過TPYBoard v102發(fā)送給TPYBoard v202;
4.通過TPYBoard v202 將串口的數(shù)據(jù)讀取出來,同時傳到服務(wù)器上
5.通過網(wǎng)頁的形式顯示采集到的實時溫濕度
三、實驗方法
1. LCD 5110顯示屏說明
LCD5110是一款84×48 的點陣LCD,可以顯示4 行漢字。采用串行接口與主處理器進行通信,支持多種串行通信協(xié)議(如AVR 單片機的SPI等),傳輸速率高達4Mbps,可全速寫入顯示數(shù)據(jù)。
LCD5110 顯示屏共有8個引腳,不同的板子可能標注的英文略有不同,具體參照如下:
2 . DHT11溫濕度說明
DHT11是一款有已校準數(shù)字信號輸出的溫濕度傳感器。 精度濕度+-5%RH, 溫度+-2℃,量程濕度20-90%RH, 溫度0~50℃。
DHT11溫濕度共有3個引腳-VCC,DATA,GND。
四、接線方式
1 . 針腳對應(yīng)圖
DHT11溫濕度傳感器和LCD5110顯示屏的使用方法上面都介紹過了,接下來,就要動手和我們的TPYBoard v102 接起來了。
TPYBoard v102連接LCD5110顯示屏
TPYBoard v102連接DHT11溫濕度傳感器
TPYBoard v102連接TPYBoard v202
2. 實物連接圖
五、源代碼
TPYBoard v102 源代碼
main.py 如下:
#main.py import pyb import upcd8544 from machine import SPI,Pin from dht11 import DHT11 def main(lcd_5110,dht,uart6): data_=dht.read_data() lcd_5110.lcd_write_string(' ',0,1)#添加一個分隔行 lcd_5110.lcd_write_string('Temp:'+str(data_[0]),2,2) lcd_5110.lcd_write_string(' ',0,3) lcd_5110.lcd_write_string(' Hum:'+str(data_[1]),2,4) uart6.write(str(data_[0])+','+str(data_[1]))#通過串口將數(shù)據(jù)發(fā)送給v202 if __name__ == '__main__': #init UART u6=pyb.UART(6,115200) #init DHT11 dht=DHT11('X12') #init LCD5110 SPI = pyb.SPI(1) RST = pyb.Pin('Y11') CE = pyb.Pin('Y10') DC = pyb.Pin('Y9') LIGHT = pyb.Pin('X4') #DIN=>X8-MOSI/CLK=>X6-SCK #DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in) #CLK =>SPI(1).SCK 'X6' SPI clock lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT) lcd_5110.lcd_write_string('TPYBoard v102',1,0) while True: main(lcd_5110,dht,u6) pyb.delay(2000)