劉 勇,徐識溥,胡雯雯,吳穎靜,王運(yùn)圣
(上海市農(nóng)業(yè)科學(xué)院農(nóng)業(yè)科技信息研究所,上海數(shù)字農(nóng)業(yè)工程與技術(shù)研究中心,上海201403)
隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,近幾年興起的物聯(lián)網(wǎng)技術(shù)正在各行各業(yè)中得到越來越廣泛的應(yīng)用,其中就包括在農(nóng)業(yè)生產(chǎn)上的應(yīng)用[1-6]。物聯(lián)網(wǎng)是誕生于互聯(lián)網(wǎng)基礎(chǔ)之上的,是對互聯(lián)網(wǎng)的擴(kuò)展,它將計(jì)算機(jī)網(wǎng)絡(luò)擴(kuò)展為物-物相聯(lián)的更大的通信網(wǎng)絡(luò)。在擴(kuò)展聯(lián)網(wǎng)對象的同時,也依然要接入傳統(tǒng)互聯(lián)網(wǎng),而接入互聯(lián)網(wǎng)的方式目前主要有三大類:有線的以太網(wǎng)、基于移動運(yùn)營商基站的無線接入方式(GPRS、4G、5G等)、以及以Wi-Fi為代表的無線局域網(wǎng)接入。農(nóng)業(yè)物聯(lián)網(wǎng)作為物聯(lián)網(wǎng)技術(shù)的一個應(yīng)用分支,除具有物聯(lián)網(wǎng)技術(shù)的共性特征之外,還有為適應(yīng)農(nóng)業(yè)生產(chǎn)這一特殊的應(yīng)用環(huán)境而產(chǎn)生的特殊性,比如聯(lián)網(wǎng)方式。由于農(nóng)業(yè)生產(chǎn)環(huán)境通常都地處偏遠(yuǎn),有線以太網(wǎng)具有不適用性,所以,基于移動運(yùn)營商基站的無線接入方式成了首選,只要有手機(jī)信號覆蓋的地方,就都能應(yīng)用這種方式。因此,目前農(nóng)業(yè)物聯(lián)網(wǎng)的組成結(jié)構(gòu)大多是由現(xiàn)場采集或控制設(shè)備加上一個帶流量卡的DTU(Data transfer unit,數(shù)據(jù)傳輸單元)組成,但隨著通信政策的改變以及應(yīng)用場景的擴(kuò)展,其固有缺點(diǎn)也逐漸暴露出來。
農(nóng)業(yè)物聯(lián)網(wǎng)的組成結(jié)構(gòu)因其接入互聯(lián)網(wǎng)的便利性而大為流行,但是,近年來隨著Wi-Fi網(wǎng)絡(luò)的普及,結(jié)合作者多年的應(yīng)用經(jīng)驗(yàn),對比之下其缺點(diǎn)也越來越明顯。首先,移動基站接入方式需要消耗流量費(fèi),雖然流量單價不高但隨著節(jié)點(diǎn)數(shù)量的增多也將造成不小的開支;其次,由于近年來電信詐騙案件的增多,國家加強(qiáng)了對流量卡的管控,開卡手續(xù)更加繁瑣;最后,這種接入方式除了流量卡之外,還需要相應(yīng)通信模塊的支持,而模塊的價格也需幾十元或數(shù)百元。反觀Wi-Fi,其不需要消耗運(yùn)營商流量,模塊單價只需要幾元到十幾元,除此之外,Wi-Fi網(wǎng)絡(luò)的覆蓋范圍也已擴(kuò)大到觸手可及的程度,其在工業(yè)生產(chǎn)上已有了多方面的應(yīng)用,但卻鮮見農(nóng)業(yè)生產(chǎn)上Wi-Fi的應(yīng)用[7-10]。目前,越來越多的設(shè)施農(nóng)業(yè)基地或者農(nóng)場均實(shí)現(xiàn)了網(wǎng)絡(luò)覆蓋,或者只需增加幾臺無線路由器即可實(shí)現(xiàn)Wi-Fi信號覆蓋,而且Wi-Fi設(shè)備都是基于IEEE 802.11系列協(xié)議的,可與手機(jī)、筆記本電腦等設(shè)備實(shí)現(xiàn)無障礙連接,基于Wi-Fi的農(nóng)業(yè)物聯(lián)網(wǎng)在使用上也更加便利。隨著互聯(lián)網(wǎng)和智能手機(jī)的普及,無線互聯(lián)網(wǎng)得到極大的發(fā)展,其中Wi-Fi網(wǎng)絡(luò)更是逐漸覆蓋各大廣場、公園、辦公場所等,同樣,在溫室大棚這種農(nóng)業(yè)設(shè)施里也能很方便地實(shí)現(xiàn)Wi-Fi網(wǎng)絡(luò)的覆蓋,本研究旨在利用Wi-Fi技術(shù),實(shí)現(xiàn)農(nóng)業(yè)物聯(lián)網(wǎng)溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng)。
溫室作為設(shè)施農(nóng)業(yè)的方式之一,可使農(nóng)業(yè)生產(chǎn)擺脫自然環(huán)境和傳統(tǒng)生產(chǎn)條件的束縛,是一種更為高產(chǎn)、優(yōu)質(zhì)、高效、安全的農(nóng)業(yè)生產(chǎn)方式。溫室技術(shù)經(jīng)歷了小棚、中棚、塑料大棚、普通溫室、現(xiàn)代化溫室等發(fā)展階段,其科技含量和自動化水平不斷提高。目前在溫室環(huán)境監(jiān)控方面已有一些研究成果[11-16],但在遠(yuǎn)程控制方面尚有欠缺。本系統(tǒng)針對溫室環(huán)境的監(jiān)測和遠(yuǎn)程控制而開發(fā),主要功能為采集溫室的空氣溫度、空氣濕度、光照強(qiáng)度,實(shí)時遠(yuǎn)程傳輸采集數(shù)據(jù),遠(yuǎn)程控制灌溉水閥、天窗開關(guān)、通風(fēng)、補(bǔ)光燈等。所有遠(yuǎn)程數(shù)據(jù)的傳輸均通過Wi-Fi網(wǎng)絡(luò)實(shí)現(xiàn),系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)Fig.1 Framework of this system
以MCU(Microcontroller unit,微控制單元)為核心的本地系統(tǒng)將采集的傳感器數(shù)據(jù)上傳給Wi-Fi模塊,Wi-Fi模塊通過無線路由器將數(shù)據(jù)發(fā)送到云服務(wù)器,繼而展示給用戶終端,本研究開發(fā)的用戶終端是手機(jī)APP,但APP也可以變?yōu)殡娔X客戶端、瀏覽器、微信小程序等多種形式。如果想要調(diào)控溫室的某個參數(shù),可以通過用戶終端將控制命令發(fā)送到云服務(wù)器,進(jìn)而通過Wi-Fi網(wǎng)絡(luò)傳送給MCU,從而通過具體執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)對相應(yīng)環(huán)境參數(shù)的控制。
硬件系統(tǒng)為基于ARM處理器的嵌入式系統(tǒng),組成包括STM32F103微控制器、空氣溫濕度傳感器、光照度傳感器、ESP8266 Wi-Fi模塊、繼電器、灌溉閥門、補(bǔ)光燈、排氣扇、天窗開閉電機(jī)、市電或太陽能供電系統(tǒng)等(圖2)。
圖2 控制器硬件架構(gòu)Fig.2 Hardware architecture of this controller
需要特別指出的是,本系統(tǒng)是通過兩級繼電器實(shí)現(xiàn)對溫室設(shè)備的控制的,由于STM32主控制器的驅(qū)動能力最大為5 V(常規(guī)3.3 V),所以與主控制器直接相連的是第一級繼電器:干簧管繼電器可由控制器的IO口直接驅(qū)動,控制信號經(jīng)干簧管繼電器進(jìn)入驅(qū)動能力更強(qiáng)的第二級繼電器,繼而實(shí)現(xiàn)對大功率設(shè)備的開關(guān)控制。本系統(tǒng)還有一個特別的設(shè)計(jì),即實(shí)時檢測被控設(shè)備的工作狀態(tài),從而了解控制命令發(fā)出后對設(shè)備的控制是否達(dá)到相應(yīng)的效果。實(shí)現(xiàn)方法為在灌溉閥門、補(bǔ)光燈、排氣扇等設(shè)備電路中加裝電流傳感器,以檢測這些設(shè)備是否在工作以及工作是否異常(如電流是否超過額定值),在天窗舵機(jī)上加裝角度傳感器,以監(jiān)測天窗的開啟度,從而判處天窗是否正常開啟或閉合。
嵌入式軟件是運(yùn)行在微控制器上的固件,本系統(tǒng)中嵌入式軟件主要實(shí)現(xiàn)傳感器數(shù)據(jù)采集及打包上傳、控制命令的解析及功能執(zhí)行,Wi-Fi接入互聯(lián)網(wǎng)功能在Wi-Fi模塊內(nèi)部通過編程實(shí)現(xiàn)。嵌入式軟件使用ANSI標(biāo)準(zhǔn)的C語言開發(fā),為無操作系統(tǒng)的前后臺程序,前臺程序主要實(shí)現(xiàn)串口數(shù)據(jù)的中斷接收,后臺死循環(huán)執(zhí)行數(shù)據(jù)采集和命令解析。嵌入式軟件與Wi-Fi模塊通信方式為串口透傳,故程序設(shè)計(jì)上無需關(guān)注Wi-Fi模塊,但是軟件啟動后要對傳感器和串口等其他外設(shè)進(jìn)行初始化,并配置IO口、定時器、中斷系統(tǒng)等,本研究主要關(guān)注數(shù)據(jù)采集和控制命令解析與執(zhí)行的邏輯,即死循環(huán)執(zhí)行的內(nèi)容,該部分功能的具體實(shí)現(xiàn)流程如圖3所示。其中需注意的是,若有控制命令下發(fā),則執(zhí)行完命令后更新傳感器數(shù)據(jù)和相關(guān)設(shè)備狀態(tài);若長時間無控制命令,則系統(tǒng)每隔2 s更新一次傳感器數(shù)據(jù)和設(shè)備狀態(tài)。軟件的核心功能在“關(guān)鍵技術(shù)”部分進(jìn)行詳細(xì)介紹。
圖3 嵌入式軟件主程序流程Fig.3 Main program flow chart of embedded software
本研究選取Wi-Fi作為接入互聯(lián)網(wǎng)的方式,而Wi-Fi入網(wǎng)首先要對其參數(shù)進(jìn)行配置,所以Wi-Fi模塊的配置入網(wǎng)是本研究的關(guān)鍵技術(shù)之一?!癢i-Fi”這一名稱的靈感來源于“Hi-Fi”,是一種無線局域網(wǎng)(WLAN)的接入技術(shù),IEEE 802.11系列協(xié)議的別稱。Wi-Fi通信的雙方需區(qū)分AP(Access point,接入點(diǎn))和Station(站點(diǎn)),本研究中使用的Wi-Fi模塊是樂鑫公司的ESP8266,工作在Station模式,相應(yīng)的無線路由器即為AP。Station要接入AP需要知道AP的SSID(Service Set Identifier服務(wù)集標(biāo)識符)和密碼,具體配置過程如圖4、圖5所示。
圖4 Wi-Fi模塊配置入網(wǎng)流程Fig.4 Flow chart of configure Wi-Fi module access network
圖5 Wi-Fi模塊配置入網(wǎng)過程手機(jī)截屏Fig.5 Phone screenshot of configure Wi-Fi module access network
出于成本考慮,本研究研發(fā)的現(xiàn)場控制設(shè)備沒有配備按鍵和顯示屏,AP參數(shù)的輸入需要手機(jī)APP來完成,所以配置入網(wǎng)過程的參與對象包括:手機(jī)APP、無線路由器、Wi-Fi模塊以及圖1中的MCU。手機(jī)APP首先連接無線路由器,填寫相應(yīng)的SSID和密碼,之后由MCU通過串口發(fā)送命令,控制Wi-Fi模塊進(jìn)入配置模式,即進(jìn)入接收UDP廣播數(shù)據(jù)包狀態(tài),如圖5左側(cè)APP界面所示,點(diǎn)擊下一步后APP將配置信息通過UDP數(shù)據(jù)包發(fā)送給Wi-Fi模塊,模塊提取其中的SSID和密碼信息用以連接路由器,此時手機(jī)APP如圖5中間所示,如果在進(jìn)度條走完之前連接成功,則Wi-Fi模塊發(fā)送配置成功數(shù)據(jù)包給手機(jī)APP,如圖5右側(cè)截圖所示,APP界面上顯示新發(fā)現(xiàn)的設(shè)備,至此配置成功。
本研究解決的第二個關(guān)鍵技術(shù)即Wi-Fi模塊與服務(wù)器建立連接,這里所說的云服務(wù)器是指運(yùn)行在云服務(wù)器上的服務(wù)器端軟件,選用的服務(wù)器是國內(nèi)主流物聯(lián)網(wǎng)云平臺之一的機(jī)智云,在機(jī)智云上創(chuàng)建一款新產(chǎn)品后會分配一個32位十六進(jìn)制數(shù)的產(chǎn)品編號,之后Wi-Fi模塊憑此編號進(jìn)行服務(wù)器連接。
連接云服務(wù)器涉及的對象包括Wi-Fi模塊、MCU、路由器和云端(圖6)。該過程由Wi-Fi模塊發(fā)起,并且在每次上電之后或者掉線之后都自動執(zhí)行該過程,即Wi-Fi模塊首先從MCU處獲取產(chǎn)品編號信息,之后使用之前配置好的SSID和密碼連接無線路由器,成功之后使用剛剛獲取的產(chǎn)品編號通過TCPIP協(xié)議與云服務(wù)器進(jìn)行身份驗(yàn)證,驗(yàn)證通過之后即完成與服務(wù)器建立連接。為保證設(shè)備實(shí)時在線,Wi-Fi模塊會以50 s的時間間隔分別與MCU和云服務(wù)器發(fā)送心跳包,如果心跳包超時沒有收到回應(yīng),則開始一次新的連接過程。
圖6 Wi-Fi模塊連接云服務(wù)器流程Fig.6 Process of connecting Wi Fi module to cloud server
通過前兩小節(jié)的研究內(nèi)容,實(shí)現(xiàn)了Wi-Fi模塊的配置入網(wǎng)和連接云服務(wù)器,在此基礎(chǔ)之上就可以實(shí)現(xiàn)本系統(tǒng)的核心功能,即數(shù)據(jù)的上報和下發(fā)。對本系統(tǒng)而言,上報的數(shù)據(jù)主要是傳感器采集的溫室環(huán)境信息以及設(shè)備狀態(tài)信息及發(fā)生的事件告警等信息,而下發(fā)的數(shù)據(jù)則主要指用戶發(fā)送給溫室的控制命令。
無論上報還是下發(fā),都需要用戶的參與,所以這一過程的參與對象包括手機(jī)APP、云端、Wi-Fi模塊以及MCU(圖7)。當(dāng)用戶打開APP后,APP首先需要與云端建立連接,該過程與Wi-Fi模塊連接云端類似,連接之后從云端獲取當(dāng)前在線設(shè)備的列表顯示給用戶,用戶根據(jù)需要點(diǎn)擊關(guān)心的設(shè)備進(jìn)行控制或查看。對于數(shù)據(jù)上報,這個過程是由MCU主動發(fā)起的,MCU以2 s為周期進(jìn)行傳感器數(shù)據(jù)的采集,采集完成后通過串口發(fā)送給Wi-Fi模塊,Wi-Fi模塊再發(fā)送給云服務(wù)器,云服務(wù)器收到后進(jìn)行存儲并轉(zhuǎn)發(fā)給手機(jī)APP,對于事件告警信息,為保證被及時處理則是發(fā)生之后立即上傳的。用戶想要控制某個設(shè)備時,只需在APP上點(diǎn)擊相應(yīng)的按鈕,從而觸發(fā)APP將控制命令上傳到云端,云端直接通過Wi-Fi模塊轉(zhuǎn)發(fā)給MCU,MCU驗(yàn)證通過后進(jìn)行解析,進(jìn)而通過繼電器實(shí)現(xiàn)對相應(yīng)設(shè)備的控制。
圖7 Wi-Fi模塊上報∕下發(fā)設(shè)備數(shù)據(jù)流程Fig.7 Wi-Fi module report∕issue equipment data process
數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的目的是把采集到的相關(guān)數(shù)據(jù)按照一定的結(jié)構(gòu)組織起來,以便于存儲和傳輸。本系統(tǒng)中傳感器數(shù)據(jù)、控制數(shù)據(jù)以及狀態(tài)數(shù)據(jù)均是以數(shù)據(jù)點(diǎn)的方式進(jìn)行定義(表1),每個數(shù)據(jù)點(diǎn)包含顯示名稱、標(biāo)識名、數(shù)據(jù)類型、讀寫類型等屬性,APP和MCU對數(shù)據(jù)進(jìn)行處理時均按照屬性要求進(jìn)行。
表1 系統(tǒng)涉及的數(shù)據(jù)點(diǎn)屬性說明Table 1 Description of data points attribute involved in the system
對于數(shù)值型數(shù)據(jù)點(diǎn)的處理,為減少微控制器的運(yùn)算量,避免對浮點(diǎn)數(shù)的使用,通過公式“y=ax+b”進(jìn)行變換,公式中x為通信鏈路中傳輸?shù)臄?shù)據(jù),y為APP上顯示給用戶的實(shí)際數(shù)據(jù),該公式變換的目的是無論y為小數(shù)還是負(fù)數(shù),通過公式逆推后保證x始終為無符號整型;公式中參數(shù)a即表1中的分辨率,作用是將浮點(diǎn)數(shù)變換為整數(shù),參數(shù)b為表1中的增量,或稱偏移量,其作用是將負(fù)數(shù)變換為正數(shù)。比如傳感器測的溫度值為-1.87℃(即y=-1.87),按照表1取值:a=0.01,b=-30,則推算出x=(y-b)∕a=2 819,所以MCU只需通過Wi-Fi模塊傳輸無符號整數(shù)值2819,用戶即可在手機(jī)APP上看到當(dāng)前溫度值-1.87℃。
本系統(tǒng)涉及的通信協(xié)議種類較多,比如傳感器層的I2C協(xié)議、485協(xié)議、Modbus協(xié)議,遠(yuǎn)程傳輸?shù)腡CP∕IP協(xié)議等,以上都是通用協(xié)議。這里要介紹的是系統(tǒng)自定義的內(nèi)部應(yīng)用層數(shù)據(jù)傳輸協(xié)議,即MCU與Wi-Fi模塊、云端、手機(jī)APP等之間進(jìn)行數(shù)據(jù)采集和控制時傳輸?shù)臄?shù)據(jù)包格式(表2)。
表2 控制命令數(shù)據(jù)包格式Table 2 Packet format of control command
應(yīng)用層協(xié)議采用一問一答方式,每條命令需要由接收方給出ACK應(yīng)答確認(rèn)消息,超時時間200 ms,超時后重發(fā),發(fā)送3次后不再嘗試發(fā)送,丟棄該包。數(shù)據(jù)包默認(rèn)采用大端編碼,即高字節(jié)在前,低字節(jié)在后(表2)。指令由以下部分按順序組成:包頭(2B,0xFFFF),包長度(2B,命令...校驗(yàn)和),命令(1B),包序號(1B),Flags(2B),有效負(fù)載,校驗(yàn)和(1B)。對于控制命令,其有效負(fù)載為表2中序號為6、7、8的部分,控制對象標(biāo)志位有效時才按照控制對象數(shù)據(jù)值執(zhí)行相應(yīng)的控制。
本研究以STM32F103微控制器和Wi-Fi通信模塊為硬件基礎(chǔ),開發(fā)完成了一套集傳感器數(shù)據(jù)采集、溫室設(shè)備控制、設(shè)備狀態(tài)監(jiān)測等功能于一體的溫室環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng),成功將Wi-Fi技術(shù)應(yīng)用于農(nóng)業(yè)物聯(lián)網(wǎng)中,解決了Wi-Fi模塊入網(wǎng)、監(jiān)測數(shù)據(jù)上傳、控制命令下發(fā)、心跳包維持在線狀態(tài)等關(guān)鍵問題,使得原來必須使用GPRS、3G、4G的地方可以用Wi-Fi替代,從而大大降低成本,擴(kuò)展了農(nóng)業(yè)物聯(lián)網(wǎng)的應(yīng)用范圍。對于小而分散的設(shè)施農(nóng)業(yè)溫室大棚而言,使用Wi-Fi進(jìn)行環(huán)境監(jiān)測具有低成本、可靠、靈活、隨時隨地用手機(jī)查看的優(yōu)點(diǎn)。系統(tǒng)用戶應(yīng)用界面可以是手機(jī)APP,也可以是微信小程序等(圖8)。Wi-Fi的高速性和穩(wěn)定性應(yīng)用于溫室環(huán)境的遠(yuǎn)程控制,可以實(shí)現(xiàn)如同在現(xiàn)場按開關(guān)一樣的流暢體驗(yàn),實(shí)測從APP上控制按鈕被點(diǎn)擊到被控設(shè)備執(zhí)行相應(yīng)動作的延時時間,大多數(shù)情況下都不到0.5 s。
圖8 系統(tǒng)應(yīng)用界面Fig.8 Application interface of this system
農(nóng)業(yè)生產(chǎn)需要與信息技術(shù)結(jié)合、與物聯(lián)網(wǎng)技術(shù)結(jié)合來提高生產(chǎn)效率和農(nóng)產(chǎn)品品質(zhì)。本研究的關(guān)鍵在于將Wi-Fi這一日益普及的無線網(wǎng)絡(luò)接入技術(shù)應(yīng)用到農(nóng)業(yè)物聯(lián)網(wǎng)中,實(shí)現(xiàn)了對設(shè)施農(nóng)業(yè)中溫室大棚環(huán)境的遠(yuǎn)程監(jiān)測與控制,既避免了布線的麻煩,又節(jié)省了移動互聯(lián)網(wǎng)的流量資費(fèi),因此可以提高農(nóng)業(yè)物聯(lián)網(wǎng)的普及度。監(jiān)控設(shè)備可以像手機(jī)和平板電腦一樣方便地接入Wi-Fi網(wǎng)絡(luò),而使用者也可以隨時隨地拿出手機(jī)對溫室內(nèi)的實(shí)時環(huán)境進(jìn)行查看和調(diào)節(jié),減輕了生產(chǎn)管理人員的勞動強(qiáng)度,提高生產(chǎn)效率,繼而促進(jìn)農(nóng)業(yè)物聯(lián)網(wǎng)的快速普及。