趙 雨,栗雅清,林曉琪,王芮宇,蘇逸揚(yáng)
(南京航空航天大學(xué) 電子信息工程學(xué)院/集成電路學(xué)院,江蘇 南京 211100)
當(dāng)前,物聯(lián)網(wǎng)技術(shù)與特色農(nóng)業(yè)的深度融合得到了國家政策的大力扶持[1],“認(rèn)養(yǎng)農(nóng)業(yè)”是其中一種新型數(shù)字農(nóng)業(yè)模式,指由個人借助物聯(lián)網(wǎng)平臺有償認(rèn)養(yǎng)土地并參與作物耕種的全過程[2]。本文在一般智慧農(nóng)業(yè)模式的基礎(chǔ)上采用認(rèn)養(yǎng)農(nóng)業(yè)模式,并利用華為物聯(lián)網(wǎng)操作系統(tǒng)Huawei LiteOS所具有的“物物互聯(lián)”等關(guān)鍵能力,設(shè)計(jì)了一種認(rèn)養(yǎng)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)。
LiteOS是輕量級物聯(lián)網(wǎng)操作系統(tǒng),最小內(nèi)核尺寸僅為6 KB,具備快速啟動、低功耗等優(yōu)勢,可廣泛應(yīng)用于數(shù)字農(nóng)業(yè)領(lǐng)域,未來可以搭載HarmonyOS操作系統(tǒng)實(shí)現(xiàn)“互聯(lián)互通”,能夠更好地實(shí)現(xiàn)農(nóng)業(yè)操作系統(tǒng)在物聯(lián)網(wǎng)上的搭建與通信,具有實(shí)際應(yīng)用意義[3]。
該認(rèn)養(yǎng)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)的主要功能是系統(tǒng)用戶可以通過手機(jī)等設(shè)備自由認(rèn)領(lǐng)土地,遠(yuǎn)程實(shí)時(shí)獲取其認(rèn)領(lǐng)土地的溫度、濕度等環(huán)境數(shù)據(jù)并進(jìn)行灌溉、補(bǔ)光、施肥等操作。
為滿足上述需求,該系統(tǒng)以Huawei LiteOS為核心架構(gòu),采用軟硬結(jié)合的方法進(jìn)行設(shè)計(jì)。系統(tǒng)總體可分為3個層面,分別是感知與控制層、應(yīng)用服務(wù)層和平臺服務(wù)層[4],總體架構(gòu)如圖1所示。
圖1 認(rèn)養(yǎng)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)架構(gòu)
感知與控制層主要由物理電路實(shí)現(xiàn),其將大棚內(nèi)的土地進(jìn)行分區(qū),并將每一區(qū)域作為一個終端節(jié)點(diǎn),各終端節(jié)點(diǎn)與大棚內(nèi)的公共集中器通過WiFi通信。每個終端節(jié)點(diǎn)融合多種傳感器并布置多類執(zhí)行器,能夠接收集中器轉(zhuǎn)發(fā)的相應(yīng)指令,根據(jù)指令進(jìn)行環(huán)境信息的采集與執(zhí)行器狀態(tài)的更改。集中器收集各節(jié)點(diǎn)發(fā)送的數(shù)據(jù)并通過5G模塊發(fā)送給云端進(jìn)行存儲、分析等操作,也可接收云端所發(fā)送的控制指令并將其中轉(zhuǎn)至終端節(jié)點(diǎn)[5]。
應(yīng)用服務(wù)層側(cè)重于界面友好的應(yīng)用軟件的設(shè)計(jì),用戶可通過該應(yīng)用軟件實(shí)時(shí)遠(yuǎn)程查看作物情況并發(fā)送控制命令。
平臺服務(wù)層主要實(shí)現(xiàn)了本地?cái)?shù)據(jù)庫與云端服務(wù)器的搭建。云端服務(wù)器向下連接感知與控制層,向上面向應(yīng)用服務(wù)層提供應(yīng)用開發(fā)能力和統(tǒng)一接口,將數(shù)據(jù)在各級之間傳輸。
認(rèn)養(yǎng)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)由物理電路設(shè)計(jì)、應(yīng)用軟件設(shè)計(jì)與本地?cái)?shù)據(jù)庫及服務(wù)器搭建結(jié)合完成。
該系統(tǒng)的感知與控制層由物理電路實(shí)現(xiàn),其由公共集中器與分布式終端節(jié)點(diǎn)組成。終端節(jié)點(diǎn)包含主控模塊、傳感器模塊、WiFi通信模塊等,其電路原理如圖2所示[6]。
圖2 終端節(jié)點(diǎn)電路原理
本文選用Hi3861V100 2.4 GHz WiFi SoC芯片作為終端節(jié)點(diǎn)主控模塊,其能夠滿足LiteOS小內(nèi)核架構(gòu)設(shè)計(jì)需求。Hi3861V100芯片集成高性能32 bit微處理器、硬件安全引擎以及豐富的外設(shè)接口,外設(shè)接口包括SPI、UART、I2C、PWM、GPIO和多路ADC,同時(shí)支持高速SDIO 2.0 Slave接口,最高時(shí)鐘可達(dá)50 MHz;芯片內(nèi)置SRAM和FLASH,可獨(dú)立運(yùn)行。其通過了HarmonyOS Connect認(rèn)證,具有穩(wěn)定、可靠的通信能力,靈活的組網(wǎng)能力,完善的網(wǎng)絡(luò)與功能強(qiáng)大的安全引擎,可用于嵌入式WiFi產(chǎn)品[7],適合本系統(tǒng)的多終端節(jié)點(diǎn)分布式設(shè)計(jì),應(yīng)用于本系統(tǒng)中的實(shí)際農(nóng)業(yè)環(huán)境時(shí)可靠安全。
各終端節(jié)點(diǎn)內(nèi)布置了溫濕度傳感器SHT30、光照傳感器BH1750、土壤酸堿度傳感器等,確保所采集的環(huán)境信息詳細(xì)可靠,滿足智慧農(nóng)業(yè)系統(tǒng)在復(fù)雜環(huán)境下采集多維度環(huán)境信息的需求[8]。同時(shí),節(jié)點(diǎn)內(nèi)布置火焰?zhèn)鞲衅?,能夠在檢測到火情后自動報(bào)警以保證環(huán)境安全。
集中器模塊電路以STM32為主控芯片,通過ESP8266將終端節(jié)點(diǎn)采集的數(shù)據(jù)集中,由5G模塊MH5300上傳至云端,并將接收的指令傳回終端節(jié)點(diǎn)[9]。集中器結(jié)構(gòu)如圖3所示。
圖3 集中器結(jié)構(gòu)
為實(shí)現(xiàn)多個終端節(jié)點(diǎn)統(tǒng)一傳輸,在原有Hi3861V100 WiFi通信模塊基礎(chǔ)上,本文選擇ESP8266核心處理器作為通信傳輸節(jié)點(diǎn),實(shí)現(xiàn)集中器與各終端節(jié)點(diǎn)的通信[10]。ESP8266是一款物聯(lián)網(wǎng)WiFi芯片,基于ESP8266可以開發(fā)物聯(lián)網(wǎng)串口WiFi模塊,將用戶物理設(shè)備連接到WiFi無線網(wǎng)絡(luò)上,進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,實(shí)現(xiàn)聯(lián)網(wǎng)功能。其適用于各種低功耗應(yīng)用場景,能夠滿足本文低功耗、多節(jié)點(diǎn)聯(lián)網(wǎng)的需求。
應(yīng)用服務(wù)層的開發(fā)目的是設(shè)計(jì)界面友好的軟件,以便用戶使用本系統(tǒng)。在設(shè)計(jì)過程中結(jié)合本地及云端數(shù)據(jù)對頁面進(jìn)行相應(yīng)渲染,提供與用戶交互的UI頁面并實(shí)現(xiàn)獲取數(shù)據(jù)、下發(fā)命令等系統(tǒng)功能[7]。
軟件的具體功能是實(shí)現(xiàn)用戶對其認(rèn)領(lǐng)的土地環(huán)境的監(jiān)測與控制。系統(tǒng)在用戶初次使用時(shí)通過注冊操作進(jìn)行賬號綁定,并將相應(yīng)信息儲存至云端。用戶再次使用時(shí)登錄即可通過該軟件查看其所認(rèn)領(lǐng)土地的環(huán)境情況并進(jìn)行灌溉、施肥等遠(yuǎn)程操作[11]。
以該系統(tǒng)主要功能為例,用戶登錄后可以在主界面通過功能按鍵進(jìn)行作物狀態(tài)的查看與環(huán)境情況的控制。主要功能流程如圖4所示。
圖4 應(yīng)用軟件主要功能流程
該軟件所有的UI操作都在主線程設(shè)置[12],對執(zhí)行多線程的感知控制層下發(fā)指令,集中器與各分布節(jié)點(diǎn)響應(yīng)軟件指令流程如圖5、圖6所示。
圖5 集中器響應(yīng)指令流程
圖6 終端節(jié)點(diǎn)響應(yīng)指令流程
集中器執(zhí)行多線程,等待指令,當(dāng)其判斷收到云端中轉(zhuǎn)的下發(fā)指令時(shí),進(jìn)行指令解碼以確定指令下發(fā)的目的節(jié)點(diǎn),即在軟件中下發(fā)命令的用戶所認(rèn)領(lǐng)土地的對應(yīng)節(jié)點(diǎn)。而后判斷當(dāng)前集中器是否可以響應(yīng)指令,依據(jù)判斷結(jié)果執(zhí)行或重復(fù)判斷,可執(zhí)行時(shí)將指令下發(fā)至目標(biāo)節(jié)點(diǎn)。同時(shí),集中器判斷是否有需要上報(bào)的數(shù)據(jù),若有則確定數(shù)據(jù)源節(jié)點(diǎn)后上報(bào)。
各終端節(jié)點(diǎn)同時(shí)執(zhí)行多線程,與集中器通信并確定集中器轉(zhuǎn)發(fā)的用戶指令類型為采集指令或改變執(zhí)行器狀態(tài)指令,從而進(jìn)行環(huán)境信息的采集并上報(bào),對執(zhí)行器當(dāng)前工作狀態(tài)做出保持或更改等操作。
為了使用戶能夠通過互聯(lián)網(wǎng)遠(yuǎn)程訪問認(rèn)養(yǎng)農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng),該系統(tǒng)的平臺服務(wù)層主要進(jìn)行了本地?cái)?shù)據(jù)庫與云端服務(wù)器的搭建[13]。云端服務(wù)器將數(shù)據(jù)在物理電路與應(yīng)用軟件之間傳輸并進(jìn)行存儲、分析等操作[14]。
本地?cái)?shù)據(jù)庫采用MySQL關(guān)系型數(shù)據(jù)庫管理系統(tǒng)以及Navicat可視化數(shù)據(jù)庫管理工具,實(shí)現(xiàn)了認(rèn)養(yǎng)用戶數(shù)據(jù)的導(dǎo)入、導(dǎo)出、刪除、備份和還原[15]。從客戶端看,用戶可在其運(yùn)行環(huán)境中訪問數(shù)據(jù)庫,實(shí)現(xiàn)服務(wù)器與Web前端的交互[16]。
在建立好本地?cái)?shù)據(jù)庫的基礎(chǔ)上,完成基于華為云平臺云服務(wù)器的搭建。通過對接物理電路中的集中器其將硬件部分采集的信息上傳到云端[17],而后可將其發(fā)送給相關(guān)用戶或云端儲存,在服務(wù)器操作過程中,后臺本地?cái)?shù)據(jù)庫也會實(shí)時(shí)更新,從而實(shí)現(xiàn)認(rèn)養(yǎng)農(nóng)業(yè)系統(tǒng)的多用戶自由認(rèn)養(yǎng)功能[18]。所實(shí)現(xiàn)的業(yè)務(wù)管理員系統(tǒng)界面如圖7所示。
圖7 業(yè)務(wù)員管理系統(tǒng)界面
系統(tǒng)的功能測試分為板級測試、APP連接測試、數(shù)據(jù)存儲測試3個部分。
通過串口調(diào)試工具,可以看到設(shè)備啟動后聯(lián)網(wǎng)、采集數(shù)據(jù)、消息封裝等步驟均可在終端打印輸出,使用MQTT調(diào)試助手模擬向設(shè)備發(fā)送消息后也能夠得到相應(yīng)結(jié)果,說明硬件電路部分工作狀況良好,各功能模塊設(shè)計(jì)無誤。而后在APP端進(jìn)行設(shè)備狀態(tài)的查看和控制。通過華為云平臺提供的接口,在APP中能夠?qū)崟r(shí)獲取設(shè)備的狀態(tài)信息并展示在前端頁面,同時(shí)也能夠完成對設(shè)備的遠(yuǎn)程實(shí)時(shí)控制。最后,APP能夠訪問數(shù)據(jù)庫,獲取相應(yīng)的歷史數(shù)據(jù)。
經(jīng)測試,系統(tǒng)各層級功能均能達(dá)到設(shè)計(jì)要求,性能良好。
本文基于輕量級、低功耗的Huawei LiteOS,通過軟硬件結(jié)合進(jìn)行了感知與控制層、應(yīng)用服務(wù)層和平臺服務(wù)層3個層面的開發(fā),實(shí)現(xiàn)了用戶對其認(rèn)養(yǎng)土地環(huán)境的遠(yuǎn)程監(jiān)測與操作。系統(tǒng)測試結(jié)果表明,系統(tǒng)具有實(shí)際應(yīng)用意義,與當(dāng)前農(nóng)業(yè)發(fā)展模式及“物物互聯(lián)”發(fā)展趨勢吻合。