陳敏敏+廉迎戰(zhàn)+黃道燚
摘 要: 針對溫度監(jiān)控的區(qū)域局限性問題,設(shè)計了以單片機STC15F2K60S2與溫度傳感器DS18B20為核心的溫度監(jiān)控系統(tǒng)。通過ESP8266 WiFi芯片,以中國移動物聯(lián)網(wǎng)開放平臺為中繼服務(wù)器,以App Inventor為開發(fā)軟件,完成了硬件的程序設(shè)計、數(shù)據(jù)采集系統(tǒng)設(shè)計以及手機APP軟件的開發(fā),通過WiFi物聯(lián)網(wǎng)實現(xiàn)了溫度實時監(jiān)測及匯報。實驗結(jié)果表明,該系統(tǒng)運行穩(wěn)定,可通過手機或其他手持移動終端隨時隨地監(jiān)控溫度,可廣泛應(yīng)用于家庭熱水器、空調(diào)等家用電器的智能控制,也可應(yīng)用于工業(yè)生產(chǎn)中需要隨時監(jiān)控的、人體不宜靠近的場合的溫度監(jiān)測。
關(guān)鍵詞: 溫度傳感器; 物聯(lián)網(wǎng); APP; 云服務(wù)器; 智能控制
中圖分類號: TN915?34; TN709 文獻標識碼: A 文章編號: 1004?373X(2017)18?0147?03
Design and realization of temperature monitoring system based on
WiFi Internet of Things
CHEN Minmin1, LIAN Yingzhan2, HUANG Daoyi1
(1.Shanwei Polytechnic, Shanwei 516600, China; 2.Guangdong University of Technology, Guangzhou 510009, China)
Abstract: According to the regional limitation of temperature monitoring, the temperature monitoring system was designed, in which MCU STC15F2K60S2 and temperature sensor DS18B20 are taken as its kernels. By means of ESP8266 WiFi chip, the open platform of China Mobile Internet of Things is taken as the relay server and App inventor is taken as the development software to achieve program design of the hardware, design of data acquisition system and development of APP software. Temperature real-time monitoring and reporting were realized through WiFi Internet of Things. The experimental results show that the system can run stably, monitor the temperature through mobile phone or other handheld mobile terminals whenever and wherever possible, can be widely used in intelligent control of household appliances (such as household water heater and air conditioning), and also can be applied to temperature monitoring of industrial production which needs to be monitored momentarily and is inappropriate for staff to close to.
Keywords: temperature sensor; Internet of Things; APP; cloud server; intelligent control
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,傳統(tǒng)的傳感器煥發(fā)出新的光彩。本文以常見的溫度傳感器DS18B20為基礎(chǔ),結(jié)合單片機STC15F2K60S2,以及當前低價高性價比的熱門芯片ESP8266 WiFi芯片,以中國移動設(shè)備云作為網(wǎng)絡(luò)服務(wù)器,開發(fā)一個實時溫度監(jiān)控系統(tǒng)。單片機通過溫度傳感器對溫度實施實時的采集,并通過WiFi芯片將溫度數(shù)據(jù)采用HTTP協(xié)議上傳到中國移動物聯(lián)網(wǎng)開放平臺;同時使用App Inventor軟件開發(fā)手機APP,APP通過HTTP傳輸協(xié)議從中國移動設(shè)備云服務(wù)器獲取溫度數(shù)據(jù),并展示到用戶的手機屏幕上,實現(xiàn)遠距離對溫度的實時監(jiān)控。本設(shè)計主要以測試功能為主,所以電路與APP都以最簡的方式來進行設(shè)計。
1 系統(tǒng)硬件設(shè)計
溫度監(jiān)控系統(tǒng)的硬件電路主要由微控制器、溫度數(shù)據(jù)采集模塊、WiFi模塊等組成。如圖1所示,DS18B20主要是實現(xiàn)溫度檢測,并把測得的溫度數(shù)據(jù)傳送到單片機上;STC15F2K60S2單片機是整個硬件電路的核心,主要負責對DS18B20的溫度數(shù)據(jù)的采集,同時與ESP8266實現(xiàn)通信,將溫度數(shù)據(jù)傳送到ESP8266上;ESP8266起到的作用則是把單片機傳送過來的溫度數(shù)據(jù)通過無線路由器上傳到中國移動設(shè)備云服務(wù)器上。
圖1 硬件電路
(1) 微控制器。微控制器采用STC15F2K60S2[1]。該系列單片機是STC生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/高可靠/低功耗/超強抗干擾的新一代8051單片機,加密性強,指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍。內(nèi)部集成R/C時鐘,5~35 MHz寬范圍可設(shè)置,可徹底省掉外部晶振和外部復位電路。
(2) 溫度傳感器。其采用DS18B20溫度傳感器。DS18B20是常用的溫度傳感器,其具有體積小、硬件開銷低、抗干擾能力強、精度高的特點,還具有獨特的單線接口方式,可用PVC電纜直接出線或德式球型接線盒出線。DS18B20在與微處理器連接時僅需要一條線即可實現(xiàn)微處理器與DS18B20的雙向通信,其測溫范圍為-55~125 ℃,基本滿足室溫和機房溫度的采集要求。工作電壓低,只需要DC 3.3~5 V的電壓即可運行,可與單片機共用一組電源,使用方便。它支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在惟一的三線上,最多只能并聯(lián)8個,實現(xiàn)多點測溫,如果數(shù)量過多,會使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定。測量結(jié)果以9~12位數(shù)字量方式串行傳送[2],適用于DN15~DN25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫。
(3) WiFi模塊。其采用的是ESP8266芯片。ESP8266是樂鑫Espressif設(shè)計的WiFi芯片,其價格低廉,具備有高性價比,是目前市面上非常流行的一款WiFi芯片,它可以通過串口通信方式與單片機實現(xiàn)雙向的通信,并能通過WiFi掛載到路由上去,與外網(wǎng)連接[3]。
ESP8266是一個完整且自成體系的WiFi網(wǎng)絡(luò)解決方案,能夠獨立運行,也可以作為slave搭載于其他host運行。ESP8266 在搭載應(yīng)用并作為設(shè)備中惟一的應(yīng)用處理器時,能夠直接從外接閃存中啟動。內(nèi)置的高速緩沖存儲器有利于提高系統(tǒng)性能,并減少內(nèi)存需求。另外一種情況是,無線上網(wǎng)接入承擔WiFi適配器的任務(wù)時,可以將其添加到任何基于微控制器的設(shè)計中,連接簡單易行,只需通過SPI/SDIO接口或中央處理器AHB橋接口即可[4]。ESP8266強大的片上處理和存儲能力,使其可通過GPIO口集成傳感器及其他應(yīng)用的特定設(shè)備,實現(xiàn)了最低的前期開發(fā)和運行中最少的占用系統(tǒng)資源。
2 單片機軟件系統(tǒng)設(shè)計
單片機的軟件程序主要完成以下工作,軟件主要設(shè)計總流程圖[5]如圖2所示。
圖2 軟件流程圖
2.1 初始化
系統(tǒng)啟動之后,開始進行一些初始化,初始化內(nèi)容包括:
(1) 定時器的初始化,開啟中斷,定時器0工作方式設(shè)置為方式1等設(shè)置。
(2) 串口初始化,波特率設(shè)置為115 200 b/s,使其與ESP8266的波特率匹配。
2.2 配置ESP8266的工作模式和參數(shù)
單片機通過串口與ESP8266進行通信,利用AT指令對ESP8266的工作模式和參數(shù)進行配置。
(1) 設(shè)置ESP8266為station模式,并復位重啟芯片。
(2) 開始DHCP,并設(shè)置要連接的路由器的熱點SSID和熱點密碼。
(3) 開啟mux多路連接,開啟服務(wù)器模式,設(shè)置HTTP協(xié)議所用的端口。
2.3 設(shè)置定時中斷,啟動DS18B20溫度轉(zhuǎn)化和采集
(1) 初始化定時器:設(shè)置定時器初始值,設(shè)置定時時間為10 s(多次短定時的累加達到10 s),設(shè)定中斷服務(wù)程序,服務(wù)程序中置位溫度采集標志位。
(2) 每當10 s定時時間到,溫度采集標志位被置位時,單片機與 DS18B20進行通信,啟動DS18B20溫度轉(zhuǎn)化,并采集DS18B20溫度值。
2.4 溫度值上傳云服務(wù)器
單片機通過串口與ESP8266進行通信[6],并通過ESP8266將獲取到的溫度值采用POST的方式上傳到中國移動物聯(lián)網(wǎng)開放平臺服務(wù)器。上傳之前要在中國移動物聯(lián)網(wǎng)開放平臺服務(wù)器上創(chuàng)建設(shè)備、創(chuàng)建數(shù)據(jù)流、獲取上傳網(wǎng)址和獲取設(shè)備ID,ApiKey等,文章后面再進行闡述。
3 物聯(lián)網(wǎng)平臺數(shù)據(jù)采集
為了實現(xiàn)物聯(lián)網(wǎng)把溫度值共享到網(wǎng)上,必須搭建一個中繼服務(wù)器。開發(fā)者可在中國移動物聯(lián)網(wǎng)開放平臺免費創(chuàng)建云平臺服務(wù)器,讓數(shù)據(jù)進行中轉(zhuǎn),既可以接收單片機通過ESP8266與TCP協(xié)議發(fā)送過來的溫度傳感器數(shù)據(jù),也可以向手機APP或者PC發(fā)送溫度數(shù)據(jù)[7]。
物聯(lián)網(wǎng)開放平臺溫度采集數(shù)的上傳和讀取,服務(wù)器數(shù)據(jù)的上傳和下載采用get和post的方式,格式如下:
數(shù)據(jù)流上傳:
POST /devices/680869/datapoints HTTP/1.1
api?key: bryNFvy6sbj9Isu5mHXp3fwIvtc=
Host:api.heclouds.com
Connection:close
Content?Length:59
{"datastreams":[{"id":" temperature ","datapoints":[{"value":50}]}]}
讀取數(shù)據(jù)流:
GET /devices/680872/datastreams/temperature HTTP/1.1
api?key: vUAoLurFOH=xkqr9s7w4dXuXBGY=
Host:api.heclouds.com
Connection:close
返回數(shù)據(jù):
Date: Wed, 04 May 2016 04:54:26 GMT
Content?Type: application/json
Content?Length: 138
Connection: close
Server: Apache?Coyote/1.1
Pragma: no?cache
{"errno":0,"data":{"create_time":"2016?01?14 09:34:17","update_at":"2016?05?04 12:45:28","id":"temperature ","current_value":23},"error":"succ"}
4 手機APP軟件設(shè)計
為了方便隨時隨地查詢監(jiān)控溫度數(shù)據(jù),不采用中國移動物聯(lián)網(wǎng)開放平臺提供的PC頁面應(yīng)用顯示方式,而是采用制作手機APP來進行查詢和顯示。本文采用App Inventor來制作手機APP,如圖3所示。
為了進行顯示溫度和溫度的符號,首先使用到了文本組件,其中一個文本組件固定顯示溫度符號,另外一個隨著讀取到的溫度數(shù)據(jù)進行改變。
溫度數(shù)據(jù)需要通過HTTP協(xié)議連接中國移動物聯(lián)網(wǎng)開放平臺進行讀取,需要使用到Web客戶端,讀取數(shù)據(jù)流必須按照中國移動物聯(lián)網(wǎng)開放平臺的要求先發(fā)送讀取請求,格式如上面介紹所示,然后平臺再返回溫度數(shù)據(jù)[8]。定時器組件,使用定時器進行定時,設(shè)定的一個周期時間為10 s,當定時時間到的時候?qū)χ袊苿游锫?lián)網(wǎng)開放平臺進行讀取溫度數(shù)據(jù)。此處時間不宜太長,太長有可能導致監(jiān)控室的溫度與遠程終端的溫度不一致,時間也不宜太短,太短數(shù)據(jù)交換頻繁,一方面增加服務(wù)器和手機的負擔,當網(wǎng)絡(luò)不佳時可能出錯,另一方面,消耗手機電量嚴重。
按鈕組件和輸入框組件,輸入框組件完成對監(jiān)控報警溫度上限進行設(shè)置,按鈕組件為對設(shè)置的溫度值進行確認。接收到的數(shù)據(jù)不能直接顯示,必須進行提取顯示,把返回數(shù)據(jù)與“temperature”,“current_value”比較,如果相等則把后面的數(shù)據(jù)提取出來到大括號結(jié)束,然后把它顯示到文本上。
5 結(jié) 語
針對溫度監(jiān)控系統(tǒng)的功能需要,通過總體設(shè)計、硬件設(shè)計、軟件設(shè)計和軟硬件調(diào)試,最終完成了基于溫度傳感器DS18B20與物聯(lián)網(wǎng)的溫度監(jiān)控系統(tǒng)構(gòu)建。該系統(tǒng)運行穩(wěn)定,溫度數(shù)據(jù)采集功能正常執(zhí)行,結(jié)合云服務(wù)器和App Inventor制作的手機APP,有效地解決了對溫度監(jiān)控的地域局限性,能隨時隨地通過手機或其他手持移動終端監(jiān)控溫度。
參考文獻
[1] 王偉,李樹榮.基于8051單片機溫度采集及無線發(fā)送[J].現(xiàn)代電子技術(shù),2011,34(1):146?149.
[2] 李華.MCS?51系列單片機實用接口技術(shù)[M].北京:北京航天航空大學出版社,2007:45?60.
[3] 焦尚彬,宋丹,張青,等.基于ZigBee無線傳感器網(wǎng)絡(luò)的煤礦監(jiān)測系統(tǒng)[J].電子測量與儀器學報,2013,27(5):436?442.
(上接第149頁)
[4] 楊黎.基于C語言的單片機應(yīng)用技術(shù)與Proteus仿真[M].長沙:中南大學出版社,2012:161?174.
[5] 閻石.數(shù)字電子技術(shù)[M].北京:高等教育出版社,2006:117?123.
[6] 王福泉,萬頻,馮孔淼,等.DS18B20在空調(diào)檢測系統(tǒng)溫度采集模塊中的應(yīng)用[J].電子技術(shù)應(yīng)用,2011,37(8):46?48.
[7] 周月霞,孫傳友.DS18B20硬件連接及軟件編程[J].傳感器世界,2001(12):25?29.
[8] 李朝青.PC機與單片機數(shù)據(jù)通信技術(shù)[M].北京:北京航空航天大學出版社,2012:100?106.endprint