方 銳, 李旭東, 貢 亮, 黃亦翔, 李彥明, 劉成良, 郭商羿
(1.上海交通大學(xué) 機械與動力工程學(xué)院,上海 200240;2.農(nóng)業(yè)部 華南都市農(nóng)業(yè)重點實驗室,廣州 510640)
物聯(lián)網(wǎng)就是把物理世界中的物品,通過射頻識別(Radio Frequency Identification,RFID)、紅外感應(yīng)器、全球定位系統(tǒng)(Global Positioning System,GPS)、激光掃描器等信息傳感設(shè)備,按照約定的協(xié)議,進(jìn)行信息交換和共享,以實現(xiàn)遠(yuǎn)程數(shù)據(jù)采集和測量、智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)[1-3]。物聯(lián)網(wǎng)打破傳統(tǒng)思維,將物理基礎(chǔ)設(shè)施和IT基礎(chǔ)設(shè)施統(tǒng)一起來,實現(xiàn)物理世界與數(shù)字虛擬世界的交流溝通,逐漸顯現(xiàn)出“全面感知,可靠傳輸,高度智能”的特征,成為繼計算機、互聯(lián)網(wǎng)與移動通信網(wǎng)絡(luò)之后的第3次信息化浪潮,以更透徹的感知和度量、更全面的互聯(lián)互通、更深入的智能化處理為特征的物聯(lián)網(wǎng)能夠有效地促進(jìn)物質(zhì)生產(chǎn)與服務(wù)管理相結(jié)合、物理世界與數(shù)字世界相融合、工業(yè)化與信息化相融合,應(yīng)用范圍將涉及基礎(chǔ)設(shè)施、公共安全、環(huán)境保護(hù)、現(xiàn)代農(nóng)業(yè)、智能工業(yè)、城市管理和商業(yè)應(yīng)用等各個領(lǐng)域[4]。
智慧農(nóng)業(yè)模式是現(xiàn)代農(nóng)業(yè)生產(chǎn)的大勢所趨,運用物聯(lián)網(wǎng)技術(shù),實現(xiàn)農(nóng)業(yè)的精確生產(chǎn),使得勞動力、生產(chǎn)資料、土地資源等各要素在時間空間上精確分配,以獲得利益最大化[7-8]。但是目前針對于大田墑情監(jiān)測,由于其環(huán)境惡劣,組網(wǎng)困難,開發(fā)成本高,對農(nóng)業(yè)物聯(lián)網(wǎng)的發(fā)展和普及造成了很大的阻礙[9]。針對這種現(xiàn)狀,本文建立了一種基于多種WSN的農(nóng)業(yè)物聯(lián)網(wǎng)溫室監(jiān)控系統(tǒng),可適配多種WSN終端,便攜式網(wǎng)關(guān)可以多種方式接入公網(wǎng),實現(xiàn)遠(yuǎn)程監(jiān)控。
物聯(lián)網(wǎng)溫室監(jiān)控系統(tǒng)包括WSN、網(wǎng)關(guān)、服務(wù)器和應(yīng)用監(jiān)控終端4個部分,如圖1所示。
圖1 溫室監(jiān)控系統(tǒng)原理圖
WSN由多個無線傳感節(jié)點組成,節(jié)點由太陽能板供電,適配5種常見農(nóng)業(yè)傳感器。采集的數(shù)據(jù)通過WSN最終匯聚到網(wǎng)絡(luò)協(xié)調(diào)器。網(wǎng)關(guān)內(nèi)置了這樣的協(xié)調(diào)器,接收的數(shù)據(jù)通過串口通信上傳到以樹莓派為主體硬件平臺的網(wǎng)關(guān),網(wǎng)關(guān)將接收到的數(shù)據(jù)按照無線傳輸協(xié)議進(jìn)行解析,轉(zhuǎn)化成傳統(tǒng)互聯(lián)網(wǎng)協(xié)議識別的數(shù)據(jù)格式,最終轉(zhuǎn)發(fā)至遠(yuǎn)程服務(wù)器中。服務(wù)器包括數(shù)據(jù)庫管理系統(tǒng)SQL Server和動態(tài)網(wǎng)頁腳本程序,負(fù)責(zé)用戶應(yīng)用網(wǎng)站后臺建設(shè)[10]。應(yīng)用終端和控制終端是針對于用戶設(shè)計的人機交互界面,可以提供溫室環(huán)境監(jiān)控、歷史環(huán)境數(shù)據(jù)查詢、水肥執(zhí)行器控制等服務(wù)。
物聯(lián)網(wǎng)網(wǎng)關(guān)可以實現(xiàn)多種感知網(wǎng)絡(luò)與基礎(chǔ)網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換和數(shù)據(jù)轉(zhuǎn)發(fā)。此外物聯(lián)網(wǎng)網(wǎng)關(guān)還需要具備設(shè)備管理功能。網(wǎng)關(guān)支持WSN通信接口,支持TCP/IP、WiFi、3G/4G、GPRS通信接口和其他協(xié)議接口。因此,物聯(lián)網(wǎng)網(wǎng)關(guān)必須滿足以下功能:
(1) 數(shù)據(jù)互操作?;ゲ僮魇侵竷蓚€系統(tǒng)之間數(shù)據(jù)信息共享交互操作的過程[11]。目前用于近距離通信的傳輸協(xié)議有很多,每種技術(shù)都有其針對性的應(yīng)用場合,缺乏兼容性和統(tǒng)一的標(biāo)準(zhǔn)。物聯(lián)網(wǎng)網(wǎng)關(guān)解決多種異構(gòu)網(wǎng)絡(luò)之間的溝通問題,建立信息交互的統(tǒng)一信息模型,實現(xiàn)通信協(xié)議的轉(zhuǎn)換,以規(guī)范農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用的建設(shè),達(dá)到高效的應(yīng)用集成和數(shù)據(jù)共享的目的[12]。
(2) 管理功能。網(wǎng)關(guān)接收的數(shù)據(jù)量大、數(shù)據(jù)結(jié)構(gòu)迥異,例如不僅需要接收WSN的節(jié)點數(shù)據(jù),包括節(jié)點的標(biāo)識、參數(shù)、狀態(tài)等信息,還需接收遠(yuǎn)程監(jiān)控端下發(fā)的控制命令。網(wǎng)關(guān)需要對各種數(shù)據(jù)進(jìn)行識別、分類和處理,實現(xiàn)統(tǒng)一的管理[13]。
基于上述的物聯(lián)網(wǎng)系統(tǒng)架構(gòu)和物聯(lián)網(wǎng)網(wǎng)關(guān)需求分析,本文介紹適配多種WSN終端的物聯(lián)網(wǎng)網(wǎng)關(guān),開發(fā)出網(wǎng)關(guān)樣機如圖2所示,該樣機上行提供TCP/IP、GPRS接口,下行提供ZigBee、WiFi、USB、UART串口等通信接口。下面從樣機的硬件和軟件兩個方面分別進(jìn)行介紹。
圖2 網(wǎng)關(guān)實物圖
本文研制的物聯(lián)網(wǎng)網(wǎng)關(guān)采用樹莓派Raspberry Pi為中心建立網(wǎng)關(guān)硬件平臺,Raspberry Pi是基于ARM11的開發(fā)板,它提供了以太網(wǎng)、USB、HDMI接口,基于Linux的操作系統(tǒng)、Python語言開發(fā)環(huán)境,同時也支持C、Java等語言,Raspberry Pi在體積、集成度、性價比、開發(fā)環(huán)境和效率上有著明顯的優(yōu)勢[14-15]。樹莓派作為網(wǎng)關(guān)主體實現(xiàn)通信協(xié)議的廣泛接入,上行以以太網(wǎng)、WiFi、或GPRS等多種模式連接到通用網(wǎng)絡(luò),遠(yuǎn)程服務(wù)器以PC機作為載體接收數(shù)據(jù),實現(xiàn)與基礎(chǔ)互聯(lián)網(wǎng)的對接。下行通過PL2303實現(xiàn)USB轉(zhuǎn)TTL串口通信與內(nèi)置的網(wǎng)絡(luò)協(xié)調(diào)器連接,再由協(xié)調(diào)器對子節(jié)點WSN進(jìn)行參數(shù)配置和結(jié)構(gòu)管理。
上述網(wǎng)絡(luò)協(xié)調(diào)器選用C8051F340作為主控芯片,C8051F34x器件是完全集成的混合信號片上系統(tǒng)型MCU,與標(biāo)準(zhǔn)8051內(nèi)核完全兼容,指令執(zhí)行速度有很大的提高[16],協(xié)調(diào)器中包括ZigBee模塊,WiFi模塊,電壓轉(zhuǎn)換模塊,串口通信模塊。ZigBee模塊選擇DRF1605H模塊,該模塊可以實現(xiàn)ZigBee和串口通信之間的相互轉(zhuǎn)換,可以安裝天線,室外傳輸距離達(dá)1.6 km[17]。WiFi模塊選擇深圳思博智聯(lián)科技公司開發(fā)的TTL-WiFi透傳固件,實現(xiàn)模塊串口與WiFi數(shù)據(jù)的實時透傳。電壓轉(zhuǎn)換模塊轉(zhuǎn)換電源電壓為開發(fā)板各模塊所需電壓。串口通信模塊作為與樹莓派的通信接口。該協(xié)調(diào)器樣機實現(xiàn)了對WSN的數(shù)據(jù)信息匯聚和數(shù)據(jù)傳輸。
物聯(lián)網(wǎng)網(wǎng)關(guān)功能是確保WSN上傳數(shù)據(jù)的接收、數(shù)據(jù)互操作和上傳,服務(wù)器端發(fā)送命令的接收,識別和下傳。同時,還需實現(xiàn)對WSN的操作維護(hù)和管理。物聯(lián)網(wǎng)網(wǎng)關(guān)樣機軟件功能模塊如圖3所示。
圖3 網(wǎng)關(guān)軟件設(shè)計功能模塊
本系統(tǒng)中,每個節(jié)點具有數(shù)據(jù)采集與自主路由功能,協(xié)調(diào)器接收到的數(shù)據(jù)格式見表1[18]。網(wǎng)關(guān)中內(nèi)置的網(wǎng)絡(luò)協(xié)調(diào)器接收WSN的數(shù)據(jù),監(jiān)測數(shù)據(jù)格式是否正確,不正確則舍棄,檢測正確后分辨來源地址,并重新分配短地址,將整理后的數(shù)據(jù)通過串口通訊發(fā)送出去,數(shù)據(jù)格式見表2。程序中啟動一個定時器,定時消除接收數(shù)據(jù)出錯時產(chǎn)生的錯誤冗余,當(dāng)數(shù)據(jù)出錯時,將接收和發(fā)送字段清零。協(xié)調(diào)器程序流程如圖4所示。
表1 協(xié)調(diào)器接收數(shù)據(jù)格式
表2 協(xié)調(diào)器發(fā)送數(shù)據(jù)格式
圖4 WSN協(xié)調(diào)器流程圖
莓派通過USB接口實現(xiàn)和WSN協(xié)調(diào)器樣機的串口通信,在Linux環(huán)境下使用python語言編寫基于USB接口的應(yīng)用程序編程接口(API),實現(xiàn)傳感數(shù)據(jù)的傳輸,運用輕量級集成數(shù)據(jù)庫sqlite3,創(chuàng)建數(shù)據(jù)表用于規(guī)范化存儲數(shù)據(jù),并調(diào)用python的圖像用戶界面模塊wxpython,實現(xiàn)在樹莓派上的實時節(jié)點數(shù)據(jù)顯示。向遠(yuǎn)程服務(wù)器發(fā)送TCP/IP客戶端連接請求,運行數(shù)據(jù)庫查詢驅(qū)動程序?qū)С鰯?shù)據(jù)發(fā)送至服務(wù)器。同時監(jiān)聽網(wǎng)絡(luò)端口,接收互聯(lián)網(wǎng)下發(fā)的指令數(shù)據(jù)包,識別數(shù)據(jù)包并解析包信息,根據(jù)包信息進(jìn)行指令下發(fā)。樹莓派程序流程圖如圖5所示。
圖5 樹莓派程序流程圖
本文提出的適配多種WSN終端的網(wǎng)關(guān)樣機可通過遠(yuǎn)程桌面或樹莓派自帶的液晶屏登陸系統(tǒng),查看網(wǎng)關(guān)數(shù)據(jù)接收與發(fā)送狀態(tài),實時顯示接收數(shù)據(jù),實現(xiàn)節(jié)點數(shù)據(jù)的可視化,如圖6所示。遠(yuǎn)程服務(wù)器接收并存儲網(wǎng)關(guān)發(fā)送的環(huán)境數(shù)據(jù)信息,為用戶應(yīng)用與監(jiān)控平臺服務(wù),實現(xiàn)數(shù)據(jù)源與應(yīng)用系統(tǒng)間的互操作性。服務(wù)器數(shù)據(jù)庫管理程序運行結(jié)果如圖7所示。
圖6 網(wǎng)關(guān)數(shù)據(jù)接收顯示
圖7 遠(yuǎn)程服務(wù)器監(jiān)聽網(wǎng)關(guān)日志
該網(wǎng)關(guān)已在溫室示范園區(qū)運行多時,現(xiàn)場運行調(diào)試結(jié)果證明,該網(wǎng)關(guān)系統(tǒng)性能穩(wěn)定、通用性和擴展性強、易于開發(fā)和維護(hù)。
物聯(lián)網(wǎng)網(wǎng)關(guān)是物聯(lián)網(wǎng)應(yīng)用的重要組成部分,它是傳統(tǒng)通信網(wǎng)絡(luò)與WSN的橋梁。本文展示了適配多種無線傳輸協(xié)議的物聯(lián)網(wǎng)網(wǎng)關(guān)樣機,該樣機實現(xiàn)了數(shù)據(jù)傳輸、協(xié)議轉(zhuǎn)換、WSN管理和控制等功能。除了本文中用于溫室環(huán)境監(jiān)控的應(yīng)用之外,該網(wǎng)關(guān)還適用于智能家居、工業(yè)監(jiān)控、智能電網(wǎng)等應(yīng)用中。