沈林濤,王 凱
(1.上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院;2.上海理工大學(xué)上海出版印刷高等專科學(xué)校,上海 200093)
實(shí)驗(yàn)室是人才培養(yǎng)、科學(xué)研究必備場所,實(shí)驗(yàn)室有大量貴重儀器設(shè)備、化學(xué)藥品和重要技術(shù)資料,其管理工作非常專業(yè)且重要。傳統(tǒng)的實(shí)驗(yàn)室管理模式仍停留在紙質(zhì)記錄、人工干涉階段,此種管理模式存在諸多弊端:設(shè)備管理非自動化、安全管理非智能化、環(huán)境管理非低碳化、資源管理非共享化等[1]。隨著高校學(xué)生擴(kuò)招,學(xué)校實(shí)驗(yàn)室規(guī)模擴(kuò)大,實(shí)驗(yàn)室使用頻繁,人員集中且流動性大,造成實(shí)驗(yàn)室發(fā)生火災(zāi)事故、中毒事故、傷人事故和環(huán)境污染等重大問題[2]。在我國第一個物聯(lián)網(wǎng)五年規(guī)劃——物聯(lián)網(wǎng)十二五規(guī)劃指導(dǎo)下,物聯(lián)網(wǎng)在工業(yè)、金融、醫(yī)療、智能家居等行業(yè)應(yīng)用越來越廣,為實(shí)驗(yàn)室的智能化管理帶來新的機(jī)遇[3]。文獻(xiàn)[4]針對高校實(shí)驗(yàn)中心資源管理效率低下、共享不及時問題,提出基于物聯(lián)網(wǎng)技術(shù)的高校實(shí)驗(yàn)中心資源管理平臺設(shè)計(jì)概念;文獻(xiàn)[5]針對實(shí)驗(yàn)室管理提出數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)處理的三層智慧實(shí)驗(yàn)室架構(gòu)模型,采用網(wǎng)頁監(jiān)控形式實(shí)現(xiàn)對實(shí)驗(yàn)設(shè)備遠(yuǎn)程聯(lián)網(wǎng)監(jiān)控和智能安防;文獻(xiàn)[6]通過ESP8266 與分子泵控制器和手機(jī)APP 數(shù)據(jù)通信,實(shí)現(xiàn)基于WiFi 的分子泵控制器跨平臺無線監(jiān)控。
WiFi 組網(wǎng)與有線以太網(wǎng)絡(luò)整合,具有組網(wǎng)成本低等優(yōu)勢,逐漸受到人們推崇。目前WiFi 芯片性能越來越好,其中ESP8266 是一款性價(jià)比較高的低功耗WiFi 芯片[7]。本文提出一種結(jié)合ESP8266 芯片、mqtt 服務(wù)器和微信公眾號的實(shí)驗(yàn)設(shè)備監(jiān)控系統(tǒng)設(shè)計(jì)方案。以生活中常用的微信作為監(jiān)控平臺,用戶只需要簡單的授權(quán)即可登錄該公眾號管理系統(tǒng),能有效避免APP 監(jiān)控時繁瑣的下載和注冊流程,且不會造成APP 大量占用手機(jī)存儲空間現(xiàn)象,實(shí)現(xiàn)在An?droid 和IOS 系統(tǒng)跨設(shè)備、跨平臺工作,有效提高用戶體驗(yàn)感。經(jīng)過測試驗(yàn)證,采用ESP8266 芯片的網(wǎng)關(guān)可實(shí)時將采集到的實(shí)驗(yàn)設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)發(fā)送到服務(wù)器,經(jīng)過服務(wù)器處理后在微信公眾號中以1s 速度更新顯示,可對實(shí)驗(yàn)設(shè)備進(jìn)行遠(yuǎn)程設(shè)置。
系統(tǒng)實(shí)現(xiàn)手機(jī)移動端和實(shí)驗(yàn)設(shè)備之間的實(shí)時監(jiān)測和控制,搭載ESP8266WiFi 芯片的開發(fā)板作為主控制器,采用SmartConfig 一鍵配網(wǎng),當(dāng)WiFi 芯片連接到網(wǎng)絡(luò)后,會自動連接指定的MQTT 服務(wù)器并訂閱與實(shí)驗(yàn)相關(guān)主題消息。此時主控制器通過串口和實(shí)驗(yàn)設(shè)備進(jìn)行通信,將實(shí)驗(yàn)設(shè)備運(yùn)行參數(shù)如溫度、速度、故障報(bào)警等數(shù)據(jù)通過POST 方式發(fā)送至服務(wù)器,經(jīng)服務(wù)器處理后將實(shí)驗(yàn)設(shè)備運(yùn)行狀態(tài)信息實(shí)時顯示在設(shè)備管理頁面。在微信公眾號設(shè)備管理界面可修改設(shè)備運(yùn)行參數(shù),后臺將設(shè)置信息通過MQTT 服務(wù)器相關(guān)主題轉(zhuǎn)發(fā)至物聯(lián)網(wǎng)網(wǎng)關(guān),網(wǎng)關(guān)通過MODBUS 協(xié)議向設(shè)備寄存器寫數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程修改設(shè)備運(yùn)行參數(shù)。該系統(tǒng)還具備故障報(bào)警、危險(xiǎn)報(bào)警功能,對網(wǎng)關(guān)上傳的實(shí)驗(yàn)數(shù)據(jù)科學(xué)系統(tǒng)記錄并可一鍵分享,大大提高了實(shí)驗(yàn)的高效性、安全性和共享性,總體框架如圖1 所示。

Fig.1 Iot architecture as a whole圖1 物聯(lián)網(wǎng)總體架構(gòu)
硬件包括主控芯片、通信接口、按鍵LED、系統(tǒng)時鐘和供電模塊,如圖2 所示。主控芯片ESP8266 負(fù)責(zé)網(wǎng)關(guān)聯(lián)網(wǎng)訂閱MQTT 主題,向服務(wù)器上傳設(shè)備運(yùn)行參數(shù),主控和實(shí)驗(yàn)設(shè)備之間通過RS485 串口相連并進(jìn)行數(shù)據(jù)收發(fā),穩(wěn)壓模塊提供3.3V 的穩(wěn)定電壓保證主控設(shè)備穩(wěn)定工作,按鍵作為網(wǎng)關(guān)配網(wǎng)和綁定時的輸入控制,LED 負(fù)責(zé)網(wǎng)關(guān)狀態(tài)指示,用戶操作時可觀察網(wǎng)關(guān)工作狀態(tài)。

Fig.2 Hardware architecture圖2 硬件架構(gòu)
ESP8266 是上海樂鑫公司針對移動設(shè)備和物聯(lián)網(wǎng)應(yīng)用推出的一款超低功耗的UART-WiFi 模塊,具有性能穩(wěn)定、高度集成、低功耗等特點(diǎn)。模塊有STA/AP/STA+AP 三種工作模式,內(nèi)置TCP/IP 協(xié)議棧,支持多路TCP Client 連接[8]。其硬件接口豐富,可支持UART、IIC、PWM、GPIO、ADC 等。
系統(tǒng)主要使用ESP8266 的STATION 模式和GPIO 控制功能。STATION 模式下的ESP8266 模塊在物聯(lián)網(wǎng)中作為設(shè)備和服務(wù)器之間的橋梁[9],可將采集到的數(shù)據(jù)進(jìn)行處理并發(fā)送到服務(wù)器,模塊引腳接線如圖3 所示,外部需提供3.3V 工作電壓。

Fig.3 Main control chip circuit圖3 主控芯片電路
主控制器穩(wěn)定有序運(yùn)轉(zhuǎn)離不開時鐘系統(tǒng),本文采用DS1307 模塊作為系統(tǒng)時鐘,時鐘電路如圖4 所示。DS1307 是低功耗、兩線制串行讀寫接口、日歷和時鐘數(shù)據(jù)按BCD 碼存取的時鐘/日歷芯片,提供秒、分、小時、星期、日期、月和年等時鐘日歷數(shù)據(jù),集成如下幾點(diǎn)功能:①56 字節(jié)掉電時電池保持NV SRAM 數(shù)據(jù)存儲;②可編程的方波信號輸出;③掉電檢測及自動切換電池供電模式。

Fig.4 The system clock circuit圖4 系統(tǒng)時鐘電路
網(wǎng)關(guān)作為物聯(lián)網(wǎng)的中間物件,穩(wěn)定的工作電壓是保證其正常運(yùn)行的前提,方案采用開關(guān)電源適配器給物聯(lián)網(wǎng)網(wǎng)關(guān)提供5V 外部電源,通過穩(wěn)壓器ASM1117 模塊降至3.3V給ESP8266 芯片提供穩(wěn)定的工作電壓,電源電路如圖5 所示。ASM1117 是一個正向低壓穩(wěn)壓器,在電路輸入端、輸出端都加入了極性電容和旁路電容,該設(shè)計(jì)具有良好的去耦合和濾波作用,能夠有效保證電源電路的穩(wěn)定性。ASM1117 模塊內(nèi)部集成有過熱保護(hù)以及限流電路,防止環(huán)境溫度異常導(dǎo)致硬件損壞,是電池供電和便攜式計(jì)算機(jī)的最佳選擇[10]。

Fig.5 The power supply module circuit圖5 供電模塊電路
通信接口選擇RS485 串口兼容工業(yè)中主流設(shè)備,串口電路如圖6 所示。RS-485 接口采用平衡驅(qū)動器和差分接收器組合,有效提高抗共模干擾和抗噪聲能力。該接口官方公布的傳輸距離為4 000ft,實(shí)際傳輸距離可達(dá)3 000m,可同時連接128 個收發(fā)器,即具有多站能力,這種特性使用戶可利用單一的RS-485 接口方便地建立設(shè)備網(wǎng)絡(luò)[11]。

Fig.6 Communication interface circuit圖6 通信接口電路
網(wǎng)關(guān)作為物聯(lián)網(wǎng)中間件,是實(shí)驗(yàn)設(shè)備和服務(wù)器通信的橋梁。實(shí)驗(yàn)設(shè)備和網(wǎng)關(guān)之間通過RS485 串口連接,采用工業(yè)中通用的MODBUS 通信協(xié)議進(jìn)行通信。網(wǎng)關(guān)上電后,通過微信的一鍵配網(wǎng)功能將網(wǎng)關(guān)接入指定的WiFi 熱點(diǎn)實(shí)現(xiàn)聯(lián)網(wǎng),并建立MQTT 客服端和HTTP 客服端。網(wǎng)關(guān)獲取到實(shí)驗(yàn)設(shè)備運(yùn)行參數(shù)后以1 秒為間隔向服務(wù)器發(fā)送POST 數(shù)據(jù),同時當(dāng)網(wǎng)關(guān)監(jiān)聽到相關(guān)主題消息后進(jìn)行數(shù)據(jù)解析,通過通信接口修改試驗(yàn)設(shè)備運(yùn)行狀態(tài),網(wǎng)關(guān)軟件流程如圖7所示。
微信公眾平臺是騰訊公司旗下產(chǎn)品微信的一個重要功能。微信公眾平臺主要面向名人、政府、媒體、企業(yè)等機(jī)構(gòu)推出合作推廣業(yè)務(wù)[12]。微信公眾平臺支持HTML 網(wǎng)頁,微信公眾平臺賬號包括訂閱號、服務(wù)號和企業(yè)號3 種類型,其中企業(yè)號用途如下:為企業(yè)或組織提供移動應(yīng)用入口,幫助企業(yè)建立與員工、上下游供應(yīng)鏈及企業(yè)應(yīng)用間的鏈接[13],本設(shè)計(jì)就是通過將網(wǎng)頁嵌入到企業(yè)號的方式實(shí)現(xiàn)對物聯(lián)網(wǎng)設(shè)備的綁定和遠(yuǎn)程監(jiān)控[14],主要功能如表1 所示。

Fig.7 Gateway software process圖7 網(wǎng)關(guān)軟件流程

Table 1 WeChat public platform function表1 微信公眾平臺功能
微信公眾號主界面如圖8 所示。用戶點(diǎn)擊“添加設(shè)備”按鈕進(jìn)入綁定網(wǎng)關(guān)界面,輸入網(wǎng)關(guān)序列號進(jìn)行網(wǎng)關(guān)綁定;點(diǎn)擊“查看網(wǎng)關(guān)”可查看已經(jīng)綁定的網(wǎng)關(guān);點(diǎn)擊“查看設(shè)備”可查看連接網(wǎng)關(guān)的實(shí)驗(yàn)設(shè)備實(shí)時運(yùn)行信息,包括實(shí)時信息和歷史信息;點(diǎn)擊“高級設(shè)置”進(jìn)入設(shè)置界面,可進(jìn)行網(wǎng)關(guān)配網(wǎng),修改參數(shù),實(shí)現(xiàn)遠(yuǎn)程控制。
在物聯(lián)網(wǎng)中,服務(wù)器和客服端之間如何高效可靠地推送消息對物聯(lián)網(wǎng)系統(tǒng)至關(guān)重要[15]。MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測傳輸協(xié)議)是由IBM 開發(fā)的一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP 協(xié)議上。MQTT 最大優(yōu)點(diǎn)是可以極少的代碼和有限的帶寬為遠(yuǎn)程設(shè)備提供實(shí)時可靠的消息服務(wù)。作為一種低開銷、低帶寬占用的即時通訊協(xié)議,其在物聯(lián)網(wǎng)、小型設(shè)備、移動設(shè)備等方面應(yīng)用廣泛。
MQTT 服務(wù)器解決方案包括Mosca 模塊搭建和Mos?quito 軟件搭建。Mosca 是MQTT 在Node.js 中的一個Bro?ker 開源實(shí)現(xiàn),即MQTT 通信協(xié)議中的服務(wù)器實(shí)現(xiàn);Mos?quitto 是一款開源消息代理軟件,使用MQTT v3.1 協(xié)議[16]。服務(wù)器和客戶端消息推送設(shè)計(jì)包括消息發(fā)布接口、客戶端消息處理接口、客戶端訂閱接口。用戶在微信公眾號遠(yuǎn)程修改設(shè)備狀態(tài),網(wǎng)關(guān)的綁定通過客戶端訂閱接口;客戶端消息處理接口用來接收和處理網(wǎng)關(guān)發(fā)送的報(bào)警消息。
在給網(wǎng)關(guān)智能配網(wǎng)前,手機(jī)確保已經(jīng)連接好網(wǎng)絡(luò),在微信公眾號監(jiān)控主界面點(diǎn)擊“高級設(shè)置”,選擇“WiFi 智能配網(wǎng)”進(jìn)入配網(wǎng)功能,此時長按網(wǎng)關(guān)的配網(wǎng)按鍵等待配網(wǎng)成功,配網(wǎng)界面如圖9 所示。

Fig.8 Public account main interface圖8 公眾號主界面

Fig.9 Gateway intelligent distribution network圖9 網(wǎng)關(guān)智能配網(wǎng)
網(wǎng)關(guān)聯(lián)網(wǎng)成功后,在主界面選擇“添加設(shè)備”進(jìn)入網(wǎng)關(guān)綁定界面,依次輸入網(wǎng)關(guān)序列號和網(wǎng)關(guān)名稱,點(diǎn)擊“確認(rèn)添加”后長按網(wǎng)關(guān)綁定按鍵3 秒等待網(wǎng)關(guān)綁定結(jié)束;系統(tǒng)還提供掃描二維碼快捷綁定網(wǎng)關(guān)功能,網(wǎng)關(guān)綁定界面如圖10所示。
在微信公眾號綁定網(wǎng)關(guān)后,可點(diǎn)擊“查看設(shè)備”進(jìn)入設(shè)備列表,查看與網(wǎng)關(guān)連接的實(shí)驗(yàn)設(shè)備運(yùn)行狀態(tài),如圖11 所示。點(diǎn)擊“實(shí)時查看”可查看設(shè)備運(yùn)行參數(shù)動態(tài)變化情況,該曲線每秒更新一次;點(diǎn)擊“一小時”可查看過去一小時記錄的運(yùn)行參數(shù)曲線,點(diǎn)擊“一天”可查看該設(shè)備過去一天的運(yùn)行曲線,同理可查看一周的運(yùn)行曲線。

Fig.10 Gateway binding圖10 綁定網(wǎng)關(guān)

Fig.11 The equipment history data check圖11 查看設(shè)備歷史數(shù)據(jù)
在“我的設(shè)備”界面點(diǎn)擊“高級設(shè)置”進(jìn)入遠(yuǎn)程控制實(shí)驗(yàn)設(shè)備界面,選擇需要設(shè)置運(yùn)行狀態(tài)的設(shè)備和需要修改的參數(shù),輸入修改值后點(diǎn)擊“確定”可遠(yuǎn)程修改實(shí)驗(yàn)設(shè)備運(yùn)行狀態(tài),如圖12 所示。比如實(shí)驗(yàn)設(shè)備當(dāng)前溫度36.8℃,遠(yuǎn)程設(shè)定實(shí)驗(yàn)設(shè)備溫度45℃后設(shè)備一直加熱直至目標(biāo)45℃后保持恒溫運(yùn)行。

Fig.12 Remote temperature control圖12 遠(yuǎn)程溫度控制
本方案利用物聯(lián)網(wǎng)技術(shù)結(jié)合微信公眾平臺優(yōu)化了傳統(tǒng)實(shí)驗(yàn)室管理模式,用戶不需要額外下載APP 和繁瑣的注冊流程,只需簡單授權(quán)即可遠(yuǎn)程監(jiān)控實(shí)驗(yàn)設(shè)備。采用微信公眾號作為監(jiān)控平臺,解決了監(jiān)控系統(tǒng)跨設(shè)備、跨平臺使用的限制,用戶可獲得更加便捷的體驗(yàn)效果。但此方案中物聯(lián)網(wǎng)網(wǎng)關(guān)僅限于具備接入互聯(lián)網(wǎng)的無線網(wǎng)絡(luò)場所使用,后續(xù)方案可考慮采用WiFi 和4G/5G 移動網(wǎng)絡(luò)模式相結(jié)合的形式優(yōu)化物聯(lián)網(wǎng)網(wǎng)關(guān),在無線網(wǎng)絡(luò)場所網(wǎng)關(guān)使用WiFi形式聯(lián)網(wǎng),在不具備WiFi 的場所網(wǎng)關(guān)可自動切換到4G/5G聯(lián)網(wǎng)模式。