韓鵬輝
(河南經(jīng)貿(mào)職業(yè)學(xué)院,河南 鄭州450000)
隨著互聯(lián)網(wǎng)產(chǎn)業(yè)在我國的飛速發(fā)展,互聯(lián)網(wǎng)與農(nóng)業(yè)經(jīng)濟的融合越來越多。食用菌產(chǎn)業(yè)也順勢而為,從原來的線下銷售轉(zhuǎn)型為線上的電子交易,出現(xiàn)了許多食用菌電子商務(wù)網(wǎng)站[1]。
食用菌智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)是將物聯(lián)網(wǎng)、人工智能、云平臺等先進科技與食用菌產(chǎn)業(yè)相結(jié)合,提供智能化的食用菌育種、種植氣象環(huán)境監(jiān)測;建立機電一體化的食用菌生產(chǎn)大棚管理方案;共享食用菌電子商務(wù)、溯源、產(chǎn)品銷售展示等云端數(shù)據(jù)和信息,從而形成一整套智慧農(nóng)業(yè)物聯(lián)網(wǎng)解決方案[2]。其核心是利用了物聯(lián)網(wǎng)的“物-物相聯(lián)”技術(shù),將傳感器、網(wǎng)絡(luò)、計算機等軟硬件技術(shù)進行集成,統(tǒng)一數(shù)據(jù)和信息的管理及應(yīng)用,實現(xiàn)自動化、智能化地食用菌信息整合。
應(yīng)用先進的物聯(lián)網(wǎng)科技,研究了如何從全產(chǎn)業(yè)鏈的角度為食用菌的電子商務(wù)服務(wù),設(shè)計食用菌智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng),以便更好地服務(wù)于食用菌產(chǎn)業(yè)的發(fā)展。
根據(jù)食用菌電子商務(wù)的需求,食用菌產(chǎn)業(yè)的智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)由數(shù)據(jù)采集終端、傳輸網(wǎng)絡(luò)、遠程客戶端、監(jiān)控系統(tǒng)等組成。幾個主要的功能模塊均基于嵌入式Web 服務(wù)器開展設(shè)計。嵌入式數(shù)據(jù)采集終端負責(zé)食用菌產(chǎn)業(yè)鏈上的各種數(shù)據(jù)采集;然后將采集數(shù)據(jù)信息經(jīng)過Internet 網(wǎng)絡(luò)傳送給遠程客戶端;監(jiān)控系統(tǒng)負責(zé)監(jiān)測數(shù)據(jù)采集和傳輸過程是否正常,出現(xiàn)問題及時處理或調(diào)整。系統(tǒng)各組成部分如圖1 所示。
由圖1 所示,各模塊主要功能如下。
數(shù)據(jù)采集終端:在食用菌育種、生產(chǎn)和物流環(huán)節(jié)的溫度濕度數(shù)據(jù)采集、電子商務(wù)平臺的客戶信息采集等,這是物聯(lián)網(wǎng)系統(tǒng)的核心,主要通過各種溫濕度、氣壓傳感器等硬件設(shè)備來完成,再通過傳感器接口上傳原始數(shù)據(jù),它是監(jiān)控原始數(shù)據(jù)的來源[3]。
數(shù)據(jù)采集過程主要有:實時采集、預(yù)處理、存儲、按照通信協(xié)議規(guī)定,通過嵌入式Web 服務(wù)器,將數(shù)據(jù)打包經(jīng)由Internet 網(wǎng)絡(luò)發(fā)送給監(jiān)控系統(tǒng)。
Internet 傳輸網(wǎng)絡(luò):Internet 傳輸網(wǎng)絡(luò)主要實現(xiàn)遠程客戶端和監(jiān)控設(shè)備之間的通信鏈路,是實現(xiàn)Internet 網(wǎng)絡(luò)數(shù)據(jù)遠程傳輸?shù)幕A(chǔ)。通信采用GPRS DTU登錄移動網(wǎng)關(guān)GGSN 連接遠程客戶端。
遠程客戶端:遠程客戶端主要負責(zé)將采集數(shù)據(jù)的監(jiān)測、接收和匯總。接收監(jiān)控設(shè)備發(fā)來的數(shù)據(jù)信息,并將數(shù)據(jù)存入系統(tǒng)數(shù)據(jù)庫;對數(shù)據(jù)進行匯總、統(tǒng)計和分析,為智慧農(nóng)業(yè)提供大數(shù)據(jù)支持和輔助決策。
監(jiān)控系統(tǒng):主要通過軟件來完成對整個物聯(lián)網(wǎng)系統(tǒng)的管理和操作,設(shè)計有系統(tǒng)查詢統(tǒng)計、數(shù)據(jù)資料管理、大數(shù)據(jù)預(yù)測和自動預(yù)警等功能。
根據(jù)智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)監(jiān)控終端的功能要求,監(jiān)控終端使用深圳市啟點時代科技有限公司的Embest NXP LPC2378 開發(fā)板。該開發(fā)板基于Philip(NXP) LPC2378 處理器,內(nèi)部資源豐富,接口種類齊全,非常適合于物聯(lián)網(wǎng)系統(tǒng)。
LPC2378 處理器的嵌入式ARM7 開發(fā)板使用ARM7TDMI-S 核的高性能32 位RSIC 微處理器,主頻高達72MHz[4]。片內(nèi)集成4MHz RC 晶振、10/100M以太網(wǎng)帶DMA、PLL 加強型矢量中斷控制器;接口有USB2.0 全速設(shè)備接口、全功能Modem 接口、CAN 2.0B 接口、SD/MMC 記憶卡接口、SPI/SSP 串行接口、I2S 接口和UART 等接口;并且有6 路10 位ADC、4個32 位捕獲/比較時鐘、看門狗時鐘、1 路10 位DAC 和通用I/O,內(nèi)置的PWM 模塊支持3 相馬達控制、RTC 實時鐘帶后備電池,可以有效延長供電時間。主芯片功能強大,特提供外圍焊針引線接孔、提供SD/MMC 卡驅(qū)動程序,可實現(xiàn)讀寫卡功能。
選用南京阿達爾電子科技有限公司生產(chǎn)的ADR-M2310_GPRS Modem 調(diào)制解調(diào)器。該產(chǎn)品采用基于GSM 網(wǎng)絡(luò)的標準SIM 大卡、內(nèi)嵌工業(yè)級的GPRS 模塊,支持標準DB9 串口接口、支持DC5~25V 多重防護并具有獨立硬件看門狗和故障自檢自愈功能。
選用Hayes 公司的調(diào)制解調(diào)器,能夠完全支持AT 控制指令集[5]。AT 指令集是數(shù)據(jù)正常通信的很必要控制命令,它包括一組多條設(shè)置命令,例如“設(shè)置模塊串口通信速率、設(shè)置是否自動登陸網(wǎng)絡(luò)、設(shè)置當(dāng)前網(wǎng)絡(luò)注冊情況、設(shè)置IP 地址”等。
根據(jù)智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)監(jiān)控系統(tǒng)的要求,溫濕度等監(jiān)控數(shù)據(jù)和信息必需通過終端的傳感器實時返回,因此,對終端傳感器及相關(guān)設(shè)備的實時性要求比較高。系統(tǒng)采用了μC/OS-II 嵌入式實時操作系統(tǒng)作為軟件平臺。嵌入式監(jiān)控終端軟件架構(gòu)如圖2所示。
由圖2 所示,整個監(jiān)控終端軟件通過底層的DG驅(qū)動、鍵盤驅(qū)動、SD 卡驅(qū)動、以太網(wǎng)驅(qū)動、UART驅(qū)動和ADC 驅(qū)動等6 個驅(qū)動程序來完成底層硬件的驅(qū)動;通過μC/OS-II 嵌入式實時操作系統(tǒng)的同步處理機制來實現(xiàn)多任務(wù)處理,并通過任務(wù)間的通信與同步機制來傳遞數(shù)據(jù)流,有效進行操作系統(tǒng)的時間管理,提高了整個系統(tǒng)的效率和實時性,從而實現(xiàn)監(jiān)控系統(tǒng)任務(wù)的實時管理和調(diào)度。
而應(yīng)用程序設(shè)計層則包括了各種通信協(xié)議棧和顯示控制函數(shù),為客戶端用戶的應(yīng)用程序和底層硬件驅(qū)動程序提供接口函數(shù),編寫各種用戶應(yīng)用程序以滿足不同的系統(tǒng)任務(wù)需求,在智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)監(jiān)控系統(tǒng)中,主要的系統(tǒng)用戶任務(wù)是,傳感器數(shù)據(jù)的采集和存儲、數(shù)據(jù)匯總與分析、數(shù)據(jù)的上傳下載、監(jiān)控調(diào)節(jié)指令和人機交互界面等,要完成這些任務(wù),應(yīng)用程序需要編寫相應(yīng)的功能模塊。
智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)使用的是TCP/IP 協(xié)議,它是一種基礎(chǔ)的網(wǎng)絡(luò)通訊協(xié)議。按照國際標準化組織(ISO) 開發(fā)了開放式系統(tǒng)互聯(lián)(OSI) 參考模型。TCP/IP 協(xié)議就是其中的一種參考模型,TCP/IP 沒有明確區(qū)分接口、服務(wù)和協(xié)議。只有鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層4 個模型層。鏈路層用于處理與網(wǎng)絡(luò)傳輸媒介之間的物理接口細節(jié);網(wǎng)絡(luò)層(也稱互聯(lián)網(wǎng)層) 用于處理分組在網(wǎng)絡(luò)中的活動;傳輸層提供應(yīng)用程序通信;應(yīng)用層提供處理應(yīng)用程序的超文本傳輸協(xié)議HTTP、文件傳輸協(xié)議FTP、郵件傳送協(xié)議SMTP 和網(wǎng)絡(luò)管理協(xié)議SNMP 等具體的網(wǎng)絡(luò)應(yīng)用。
在智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送過程中,處理器按照TCP/IP 協(xié)議的規(guī)定,對數(shù)據(jù)包進行封裝,使其從最初的應(yīng)用數(shù)據(jù)包變成最后在以太網(wǎng)中傳輸?shù)囊蕴W(wǎng)幀。數(shù)據(jù)報的封裝過程如圖3 所示。
由圖3 可知,在數(shù)據(jù)包的具體封裝過程中,用戶數(shù)據(jù)首先加上了用來區(qū)分不同應(yīng)用功能的應(yīng)用層協(xié)議首部,使之成為應(yīng)用數(shù)據(jù)包;然后再在應(yīng)用數(shù)據(jù)包的首部加上包括了TCP 端口號、序號以及確認號等標識和控制信息的TCP 首部,把應(yīng)用數(shù)據(jù)包變成TCP 數(shù)據(jù)包;接下來在TCP 數(shù)據(jù)包前端加入IP首部,IP 首部包含源站IP 地址、目的站IP 地址、協(xié)議類型以及服務(wù)類型等信息;最后在IP 數(shù)據(jù)包前面加上以太網(wǎng)幀首部,使數(shù)據(jù)包包括了源端與目的端的MAC 地址、幀類型、校驗碼信息,就完成了數(shù)據(jù)的封裝工作,使原始數(shù)據(jù)包成為一個完整的以太網(wǎng)幀。
智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)的TCP/IP 數(shù)據(jù)解析過程是將應(yīng)用數(shù)據(jù)按照TCP/IP 協(xié)議的規(guī)定進行打包,使之成為可以在以太網(wǎng)中傳輸?shù)臄?shù)據(jù)幀的過程稱為數(shù)據(jù)封裝,數(shù)據(jù)包的解析過程與數(shù)據(jù)封裝過程相反,是處理器將收到的數(shù)據(jù)幀按照TCP/IP 協(xié)議的規(guī)定去掉各層協(xié)議首部,確定數(shù)據(jù)包中具體信息的過程。
在TCP/IP 協(xié)議的實現(xiàn)過程中,最主要的兩項工作就是數(shù)據(jù)包的封裝和解析。系統(tǒng)中,32 位ARM處理器采用查詢的方式,查詢以太網(wǎng)控制器DM9161A 的狀態(tài),如果以太網(wǎng)控制器接收到新的以太網(wǎng)數(shù)據(jù)幀,就將該數(shù)據(jù)幀讀入。一個正確的以太網(wǎng)數(shù)據(jù)幀,可以是ARP 數(shù)據(jù)包、RARP 數(shù)據(jù)包和IP數(shù)據(jù)包3 類數(shù)據(jù)包中的一種。
在智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)中不使用RARP 協(xié)議,僅對ARP 數(shù)據(jù)包和IP 數(shù)據(jù)包進行解析。ARP 協(xié)議可以實現(xiàn)主機IP 地址與物理地址的動態(tài)綁定;而IP數(shù)據(jù)包可以解析為TCP 數(shù)據(jù)包、UDP 數(shù)據(jù)包和ICMP 數(shù)據(jù)包,是實際通信中應(yīng)用最多的數(shù)據(jù)包。
智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)TCP/IP 協(xié)議采用嵌入式系統(tǒng)開發(fā)用的TCP/IP 協(xié)議棧,選用廣州周立功單片機發(fā)展有限公司的產(chǎn)品[6]。ZLG/IP 產(chǎn)品具有結(jié)構(gòu)層次清楚、可移植性好等特點。由于和μC/OS-II 實時操作系統(tǒng)銜接緊密,開發(fā)人員可以在操作系統(tǒng)上自行編寫TCP/IP 協(xié)議棧和其他網(wǎng)絡(luò)通信協(xié)議,并根據(jù)需要對TCP/IP 協(xié)議進行裁剪,使代碼量大大降低,可以有效的節(jié)省系統(tǒng)資源。ZLG/IP 產(chǎn)品的結(jié)構(gòu)如圖4 所示。
ZLG/IP 支持UDP、IP、ICMP、ARP 和以太網(wǎng)協(xié)議等多種協(xié)議。通過自帶的接口函數(shù)Socket API 來建立應(yīng)用層協(xié)議:首先,通過Socket API 函數(shù)在μC/OS-II 操作系統(tǒng)上可以很方便地創(chuàng)建通信鏈接;其次,客戶端的應(yīng)用程序通過Socket API 函數(shù),也可以實現(xiàn)對TCP/IP 協(xié)議棧的操作,完成網(wǎng)絡(luò)傳輸功能。Socket API 函數(shù)的功能參數(shù)如表1 所示。
表1 Socket API 函數(shù)表Tab .1 List table of Socket API function
更為重要的是,客戶端和Web 服務(wù)器之間也可以通過Socket API 函數(shù)實現(xiàn)Internet 通信,從而實現(xiàn)監(jiān)控系統(tǒng)和遠程客戶端的數(shù)據(jù)傳輸和控制。主要的創(chuàng)建步驟如下。
第一,服務(wù)器端和客戶端通過TCP 通信SOCKET() 創(chuàng)建套接字,從而綁定本地端口;
第二,服務(wù)器端和客戶端通過bind() 本地IP 和端口與套接字進行連接;
第三,通過函數(shù)listen() 設(shè)置服務(wù)器監(jiān)聽連接數(shù)的連接數(shù);
第四,客戶端通過connect() 函數(shù)與遠程服務(wù)器連接,連接成功后連接序號并傳遞給服務(wù)器端,并由Recv() 和Send() 函數(shù)根據(jù)連接序號進行讀寫操作。服務(wù)器端Accept() 函數(shù)返回的連接序號,由Recv() 和Send() 函數(shù)根據(jù)客戶端傳遞的連接序號進行讀寫操作;
第五,服務(wù)器端和客戶端完成讀寫操作后,關(guān)閉連接并刪除套接字,結(jié)束通信服務(wù)。
通過對食用菌智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)所涉及的計算機軟硬件開發(fā)技術(shù)、網(wǎng)絡(luò)通訊協(xié)議的實現(xiàn)等進行了研究,從技術(shù)角度探討了物聯(lián)網(wǎng)科技如何更好地服務(wù)于食用菌電子商務(wù)的問題,解決了傳統(tǒng)食用菌電子商務(wù)信息采集成本高、數(shù)據(jù)傳輸實時性差等問題,監(jiān)控系統(tǒng)還可以通過Internet 網(wǎng)絡(luò)實現(xiàn)和遠程客戶端的信息交互。后續(xù)系統(tǒng)的智能化升級還需要做進一步的研究。