宋俊慷,黃秀梅,楊秀增
(廣西民族師范學院數(shù)理與電子信息工程學院,廣西崇左 532200)
隨著智慧農(nóng)業(yè)的建設(shè)需要,對田間氣象數(shù)據(jù)的采集和分析將作為農(nóng)業(yè)生產(chǎn)過程智慧化控制的基礎(chǔ),因此如何有效、可靠實現(xiàn)田間氣象數(shù)據(jù)的監(jiān)測工作成為智慧農(nóng)業(yè)推廣應(yīng)用的研究目標之一。為了實現(xiàn)這一目標,可使用作為物聯(lián)網(wǎng)基礎(chǔ)設(shè)施建設(shè)的物聯(lián)網(wǎng)開放云平臺實現(xiàn)田間氣象數(shù)據(jù)的存儲與可視化展示工作。通過自行開發(fā)數(shù)據(jù)采集裝置完成對田間氣象數(shù)據(jù)的實時采集和遠距離傳輸工作,在此基礎(chǔ)上使用基于TCP連接承載的EDP協(xié)議搭建數(shù)據(jù)采集裝置和物聯(lián)網(wǎng)開放云平臺的數(shù)據(jù)連接工作,完成基于物聯(lián)網(wǎng)技術(shù)的智慧農(nóng)業(yè)監(jiān)測系統(tǒng)設(shè)計。
針對物聯(lián)網(wǎng)開放云平臺的開發(fā),選用中移物聯(lián)網(wǎng)有限公司研制的OnNET物聯(lián)網(wǎng)開放云平臺。在進行具體的開發(fā)過程中需要在該平臺上進行賬號注冊,選擇接入?yún)f(xié)議類型,創(chuàng)建產(chǎn)品,添加設(shè)備,配置據(jù)流模板等工作,最終完成對監(jiān)測數(shù)據(jù)的存儲和可視化展示。田間氣象數(shù)據(jù)采集裝置主要由STM32F429嵌入式微處理器,基于ModBus-RTU的氣象多要素百葉盒,4G-DTU傳輸模塊和供電系統(tǒng)四個模塊和部分接口轉(zhuǎn)換電路組成。在此基礎(chǔ)上使用基于TCP連接承載EDP協(xié)議實現(xiàn)采集裝置和OnNET物聯(lián)網(wǎng)開放云平臺的數(shù)據(jù)通信工作,最終實現(xiàn)整個系統(tǒng)的設(shè)計。
田間氣象數(shù)據(jù)在線監(jiān)測裝置原理框圖如圖1所示,裝置將部署在需要進行氣象數(shù)據(jù)監(jiān)測的農(nóng)作物產(chǎn)業(yè)田中,該裝置在使用傳感器技術(shù)采集溫度、濕度、光照強度和二氧化碳濃度等氣象數(shù)據(jù)的基礎(chǔ)上,將所采集的氣象數(shù)據(jù)封裝在由TCP連接承載EDP協(xié)議數(shù)據(jù)包中發(fā)送至OneNET物聯(lián)網(wǎng)開放云平臺。
田間氣象數(shù)據(jù)在線監(jiān)測裝置軟件流程圖如圖2所示,STM32F429嵌入式微處理器正常上電后先進行各種功能的初始化,在此之后調(diào)用ModBus-RTU協(xié)議通過RS485總線向氣象多要素百葉盒發(fā)送ModBus-RTU詢問幀。氣象多要素百葉盒在接收到該ModBus-RTU詢問幀之后將內(nèi)部傳感器所采集的溫度、濕度、光照強度和二氧化碳濃度等田間氣象數(shù)據(jù)組合成ModBus-RTU應(yīng)答幀發(fā)送給STM32F429嵌入式微處理器。STM32F429嵌入式微處理器成功接收該ModBus-RTU應(yīng)答幀之后,從中解析出溫度、濕度、光照強度和二氧化碳濃度等氣象數(shù)據(jù)的具體數(shù)值,隨后調(diào)用初始化時預(yù)制好的EDP協(xié)議數(shù)據(jù)包,將田間氣象數(shù)據(jù)封裝在其中后通過RS232串行通信接口發(fā)送給4G-DTU傳輸模塊。4G-DTU傳輸模塊通過和OneNET物聯(lián)網(wǎng)開放云平臺建立好的TCP連接將封裝有田間氣象數(shù)據(jù)的EDP協(xié)議數(shù)據(jù)包發(fā)送給OneNET物聯(lián)網(wǎng)開放云平臺。
首先,注冊O(shè)neNET物聯(lián)網(wǎng)開放云平臺賬號并登錄該賬號進入平臺的控制臺,在平臺所提供的服務(wù)產(chǎn)品目錄之中選擇“多協(xié)議接入服務(wù)”并創(chuàng)業(yè)一個用于接收田間氣象數(shù)據(jù)的產(chǎn)品,由于上傳平臺的田間氣象數(shù)據(jù)是封裝在TCP連接承載的EDP協(xié)議數(shù)據(jù)包中,因此產(chǎn)品接入?yún)f(xié)議類型需要選擇EDP協(xié)議。在成功創(chuàng)建EDP協(xié)議接入的產(chǎn)品后需要為該產(chǎn)品添加設(shè)備,進入已經(jīng)創(chuàng)建好產(chǎn)品的設(shè)備列表使用“添加設(shè)備”功能為該產(chǎn)品添加設(shè)備。在創(chuàng)建產(chǎn)品和添加設(shè)備的過程中相關(guān)配置信息如表1所示。
圖2 田間氣象數(shù)據(jù)在線監(jiān)測裝置軟件流程圖
表1 創(chuàng)建產(chǎn)品和添加設(shè)備相關(guān)配置信息
創(chuàng)建產(chǎn)品并添加設(shè)備成功后就需要為設(shè)備配置數(shù)據(jù)流模板用于存儲田間氣象數(shù)據(jù)在線監(jiān)測裝置上傳的數(shù)據(jù),田間氣象數(shù)據(jù)在線監(jiān)測裝置以溫度、濕度、光照強度和二氧化碳濃度四類氣象數(shù)據(jù)作為監(jiān)測目標,因此需要配置4個采樣數(shù)據(jù)流如圖3所示。每一個數(shù)據(jù)流模板與一類氣象數(shù)據(jù)相對應(yīng),保證田間氣象數(shù)據(jù)在線監(jiān)測裝置上傳的數(shù)據(jù)能正常存儲并用于數(shù)據(jù)可視化展示。
圖3 采樣數(shù)據(jù)流配置
EDP協(xié)議規(guī)定了15種消息類型,為了實現(xiàn)田間氣象數(shù)據(jù)在線監(jiān)測裝置和OneNET物聯(lián)網(wǎng)開放云平臺之間的正常數(shù)據(jù)交互,主要使用其中的三類,其分別為鑒權(quán)消息,數(shù)據(jù)存儲消息和心跳消息。鑒權(quán)消息實現(xiàn)田間氣象數(shù)據(jù)在線監(jiān)測裝置與OneNET物聯(lián)網(wǎng)開放云平臺之間TCP連接的建立;數(shù)據(jù)存儲消息用于田間氣象數(shù)據(jù)在線監(jiān)測裝置將采集好的氣象數(shù)據(jù)上傳至OneNET物聯(lián)網(wǎng)開放云平臺;心跳消息用于維持田間氣象數(shù)據(jù)在線監(jiān)測裝置與OneNET物聯(lián)網(wǎng)開放云平臺之間已經(jīng)建立好的TCP連接不中斷。
數(shù)據(jù)存儲消息數(shù)據(jù)包需要在STMSTM32F429嵌入式微處理器的進行預(yù)制。田間氣象數(shù)據(jù)在線監(jiān)測裝置調(diào)用預(yù)制好的EDP協(xié)議存儲消息數(shù)據(jù)包,封裝采集好的氣象數(shù)據(jù)通過RS232串行通信接口發(fā)送給4G-DTU傳輸模塊,經(jīng)4G-DTU傳輸模塊與OneNET物聯(lián)網(wǎng)開放云平臺之間建立的TCP連接上傳至平臺配置好的采樣數(shù)據(jù)流。使用“EdpProtoDebugger-v2.0”軟件可構(gòu)造用于封裝田間氣象數(shù)據(jù)的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包如圖4所示。具體配置時消息類型選擇SaveData,消息子類型選擇Json數(shù)據(jù)2,數(shù)據(jù)內(nèi)容根據(jù)前述OneNET物聯(lián)網(wǎng)開放云平臺配置的采樣數(shù)據(jù)流名稱和Json數(shù)據(jù)格式進行填寫配置。
圖4 用于封裝田間氣象數(shù)據(jù)的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包配置
鑒權(quán)消息數(shù)據(jù)包和心跳消息數(shù)據(jù)包可在進行4G-DTU傳輸模塊和OneNET物聯(lián)網(wǎng)開放云平間配置TCP連接時一并進行預(yù)制,其中心跳消息數(shù)據(jù)包有固定的結(jié)構(gòu)其具體內(nèi)容為“0XC0 0X00”。鑒權(quán)消息數(shù)據(jù)包同樣可以使用“EdpProtoDebugger-v2.0”軟件構(gòu)造,配置時需要使用OneNET物聯(lián)網(wǎng)開放云平臺創(chuàng)建產(chǎn)品后生成的產(chǎn)品ID和添加設(shè)備時設(shè)置的鑒權(quán)信息,具體配置方法如圖5所示。
確定鑒權(quán)消息數(shù)據(jù)包和心跳消息數(shù)據(jù)包后就可以對4G-DTU傳輸模塊進行配置,使用有人物聯(lián)網(wǎng)USR-G781型4G-DTU模塊,通過RS232串行通信接口連接個人PC運行專門配置軟件進行USR-G781型4G-DTU模塊配置工作。
表2展示了由“EdpProtoDebugger-v2.0”軟件構(gòu)造生成的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包基本結(jié)構(gòu),整個消息從0字節(jié)開始編號,共72字節(jié)。STMSTM32F429嵌入式微處理器在成功上電后以對該消息數(shù)據(jù)包結(jié)構(gòu)進行初始化,此后通過氣象多要素百葉盒采集溫度、濕度、光照強度和二氧化碳濃度四個田間氣象數(shù)據(jù)的數(shù)值,在數(shù)據(jù)成功采集后分別將它們轉(zhuǎn)換為ASCII碼的16進制表示形式。最后將ASCII碼的16進制表示的田間氣象數(shù)據(jù)分別封裝在已經(jīng)預(yù)制在STMSTM32F429嵌入式微處理器存儲器內(nèi)部的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包基本結(jié)構(gòu)之中。
圖5 鑒權(quán)消息配置
表2 EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包基本結(jié)構(gòu)
田間氣象數(shù)據(jù)封裝具體實現(xiàn)方法是針對預(yù)制好的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包基本結(jié)構(gòu),將轉(zhuǎn)換為ASCII碼的16進制表示的溫度數(shù)據(jù)插入到第24和25字節(jié)之間,將轉(zhuǎn)換為ASCII碼的16進制表示的濕度數(shù)據(jù)插入到第41號和42號字節(jié)之間,將轉(zhuǎn)換為ASCII碼的16進制表示的二氧化碳濃度數(shù)據(jù)插入到第54號和55號字節(jié)之間,將轉(zhuǎn)換為ASCII碼的16進制表示的光照強度數(shù)據(jù)插入到第68和69字節(jié)之間。數(shù)據(jù)插入完成后從新計算整個消息數(shù)據(jù)包長度并根據(jù)新長度數(shù)值修改消息數(shù)據(jù)包的第1號、第4號和第5號字節(jié)編號取值,完成前述工作后就構(gòu)造完成了用于發(fā)送田間氣象數(shù)據(jù)的EDP協(xié)議數(shù)據(jù)存儲消息數(shù)據(jù)包。
OneNET物聯(lián)網(wǎng)開放云平臺自帶的應(yīng)用管理功能可使用其內(nèi)置的曲線、表盤或柱狀圖等組件連接配置好的數(shù)據(jù)流,在此基礎(chǔ)上實現(xiàn)田間氣象數(shù)據(jù)的可視化如圖6所示。使用了簡單的表盤組件和曲線圖分別展示了田間氣象數(shù)據(jù)在線采集裝置上傳的氣象數(shù)據(jù)的實時數(shù)值和歷史數(shù)據(jù)??梢允褂闷脚_自帶的應(yīng)用發(fā)布功能將展示界面以網(wǎng)頁的形式發(fā)布至Internet,農(nóng)業(yè)生產(chǎn)管理者可使用智能手機或者個人PC通過Internet訪問已經(jīng)發(fā)布的可視化界面實時掌握當前田間氣象狀態(tài)數(shù)據(jù)的變化。
圖6 田間氣象數(shù)據(jù)的可視化展示
由可視化監(jiān)測界面可以看出,由TCP連接承載的EDP數(shù)據(jù)包可有效的將以STM32F429嵌入式微處理器作為控制核心,配合ModBus-RTU的氣象多要素百葉盒和4G-DTU模塊組成的田間氣象數(shù)據(jù)在線監(jiān)測裝置所采集的溫度、濕度、二氧化碳濃度和光照強度等氣象數(shù)據(jù)實時上傳到OneNET物聯(lián)網(wǎng)開放云平臺。OneNET物聯(lián)網(wǎng)開放云平臺在保證上傳數(shù)據(jù)可靠性的基礎(chǔ)上完成數(shù)據(jù)的存儲展示工作,整個系統(tǒng)作為應(yīng)用于智慧農(nóng)業(yè)建設(shè)的農(nóng)業(yè)生產(chǎn)過程數(shù)據(jù)監(jiān)測手段,為智慧農(nóng)業(yè)進一步的推廣和發(fā)展提供必要的技術(shù)支持。