葉琪琳,盧愛(ài)紅,馮蓉珍
(蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院,蘇州215009)
傳統(tǒng)農(nóng)業(yè)的信息采集儀器和儀表需要專(zhuān)業(yè)技術(shù)人員操作,設(shè)備購(gòu)置、安裝、使用、維護(hù)和管理成本高,信息處理數(shù)理統(tǒng)計(jì)方法復(fù)雜,效率低,自動(dòng)控制措施匱乏或應(yīng)用成本高?,F(xiàn)代農(nóng)業(yè)大力發(fā)展智慧農(nóng)業(yè),以農(nóng)業(yè)物聯(lián)網(wǎng)為載體,依托部署在農(nóng)業(yè)生產(chǎn)現(xiàn)場(chǎng)的各種傳感節(jié)點(diǎn)感知數(shù)據(jù),利用無(wú)線(xiàn)通信網(wǎng)絡(luò)感知農(nóng)業(yè)生產(chǎn)環(huán)境的現(xiàn)場(chǎng)數(shù)據(jù),在主控制器端根據(jù)采集的實(shí)時(shí)數(shù)據(jù)自動(dòng)進(jìn)行預(yù)警、分析和決策,為農(nóng)業(yè)生產(chǎn)提供精準(zhǔn)化種植、可視化管理、智能化決策。智慧農(nóng)業(yè)的典型應(yīng)用是智慧農(nóng)田管理系統(tǒng),系統(tǒng)需要對(duì)動(dòng)植物生命體本質(zhì)感知,對(duì)農(nóng)業(yè)生產(chǎn)環(huán)境(空氣、土壤、水質(zhì)等)在線(xiàn)監(jiān)測(cè),對(duì)突發(fā)事件的自動(dòng)處理能力,和對(duì)基于農(nóng)業(yè)生產(chǎn)環(huán)境信息的農(nóng)業(yè)裝備的調(diào)度能力等。智慧農(nóng)田管理系統(tǒng)的傳感節(jié)點(diǎn)數(shù)量龐大,人工成本太大,可利用ZigBee傳感網(wǎng)絡(luò)的優(yōu)勢(shì),在系統(tǒng)前端采集數(shù)據(jù),再通過(guò)ARM主控制器收集各個(gè)傳感節(jié)點(diǎn)的數(shù)據(jù),并做出統(tǒng)計(jì)分析和處理。ZigBee無(wú)線(xiàn)傳感網(wǎng)絡(luò)因其自組網(wǎng)的穩(wěn)定性、功耗低、數(shù)據(jù)速率低等特點(diǎn),適用于流量要求不高的傳感網(wǎng)絡(luò),在智慧農(nóng)田管理系統(tǒng)的前端采集部分取得了較大的市場(chǎng)應(yīng)用。ARM主控制器的CPU處理能力強(qiáng),芯片接口豐富,能夠適應(yīng)各種形式接口傳入的傳感網(wǎng)絡(luò)數(shù)據(jù),并能夠進(jìn)行復(fù)雜的存儲(chǔ)、分析、判斷、決策的功能。選用ARM主控制器和ZigBee網(wǎng)絡(luò)能夠搭建功能完善的智慧農(nóng)田管理系統(tǒng)。智慧農(nóng)業(yè)的發(fā)展,使得每個(gè)農(nóng)場(chǎng)都會(huì)像使用肥料和水一樣使用實(shí)時(shí)傳感數(shù)據(jù)來(lái)提高農(nóng)場(chǎng)的經(jīng)濟(jì)效益,保證農(nóng)業(yè)生產(chǎn)的可持續(xù)發(fā)展。
智能農(nóng)田管理系統(tǒng)由ARM主控制器和ZigBee無(wú)線(xiàn)傳感網(wǎng)兩部分組成。ARM主控制器選用Cortex-M3芯片,從串口接收Z(yǔ)igBee協(xié)調(diào)器發(fā)送過(guò)來(lái)的傳感器網(wǎng)絡(luò)的數(shù)據(jù),數(shù)據(jù)傳輸依據(jù)自定義的ZigBee應(yīng)用層數(shù)據(jù)傳輸協(xié)議,采集的數(shù)據(jù)在LCD顯示屏上實(shí)時(shí)顯示和更新。通過(guò)在Cortex-M3芯片上移植uCOS-II實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)多任務(wù)的調(diào)度管理和任務(wù)之間的通信管理,以實(shí)現(xiàn)復(fù)雜的分析、存儲(chǔ)、判斷和做出實(shí)時(shí)決策以及上報(bào)的多任務(wù)功能。ZigBee無(wú)線(xiàn)傳感網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)選用TI公司推出的CC2530芯片,CC2530芯片集成射頻收發(fā)模塊,能夠完成ZigBee無(wú)線(xiàn)電波的收發(fā)工作,CC2530芯片同時(shí)集成51單片機(jī),能夠提供比較簡(jiǎn)單的I/O和串口等外設(shè)接口,方便接入各種類(lèi)型的傳感器。在CC2530芯片上加載Z-Stack協(xié)議棧,利用Zig-Bee協(xié)議棧的自組網(wǎng)的功能,實(shí)現(xiàn)穩(wěn)定的短距離無(wú)線(xiàn)通信傳感網(wǎng)絡(luò)。
系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1系統(tǒng)框圖
系統(tǒng)的硬件由兩部分組成,一部分是ARM主控制器的設(shè)計(jì),另一部分是ZigBee傳感網(wǎng)絡(luò)的設(shè)計(jì)。ARM主控制器選用基于Cortex-M3核的STM32F103芯片,芯片的UART0用于程序的下載和調(diào)試,UART5與Zig-Bee網(wǎng)絡(luò)的協(xié)調(diào)器開(kāi)發(fā)板的串口相連。LCD液晶顯示屏采用SPI接口與ARM芯片相連,LCD顯示屏是2.2寸的液晶模塊,分辨率為176×220,模塊可接收3.3V電源輸入。LCD液晶模塊的11pin的硬件連接方法是液晶模塊能夠正常驅(qū)動(dòng)的關(guān)鍵,具體定義為:CLK是串行SPI時(shí)鐘信號(hào),SDI是串行SPI數(shù)據(jù)輸入信號(hào),RS是命令(RS=0)/參數(shù)(RS=1)選擇,RST 是液晶復(fù)位信號(hào),CS是液晶片選信號(hào)。ZigBee傳感網(wǎng)絡(luò)中協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)的部署,可以根據(jù)實(shí)際的需求來(lái)調(diào)整,Zig-Bee網(wǎng)絡(luò)中協(xié)調(diào)器只有一個(gè),且與ARM直接連接,Zig-Bee協(xié)調(diào)器節(jié)點(diǎn)作為ZigBee網(wǎng)絡(luò)的核心,能夠收集ZigBee網(wǎng)絡(luò)中各個(gè)路由器和終端節(jié)點(diǎn)的網(wǎng)絡(luò)數(shù)據(jù)和傳感器數(shù)據(jù),并能夠?qū)RM開(kāi)發(fā)板下達(dá)的控制指令發(fā)送到指定的節(jié)點(diǎn)。路由器和終端節(jié)點(diǎn)組網(wǎng)時(shí)的區(qū)別是由ZigBee協(xié)議棧的軟件配置的控制的。ZigBee傳感網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的傳感器接入的設(shè)計(jì),與智慧農(nóng)田的需求緊密相關(guān)。智慧農(nóng)田的系統(tǒng)接入農(nóng)田的四種監(jiān)測(cè)值傳感器:土壤墑情監(jiān)測(cè)包括土壤溫度、土壤濕度、光照度和土壤PH值;蟲(chóng)情監(jiān)測(cè)包括田間蟲(chóng)情和無(wú)公害誘捕殺蟲(chóng);孢子監(jiān)測(cè)包括病菌孢子連續(xù)動(dòng)態(tài)監(jiān)測(cè);氣象環(huán)境監(jiān)測(cè)包括空氣溫度、空氣濕度、紫外線(xiàn)強(qiáng)度、太陽(yáng)總輻射、風(fēng)速、風(fēng)向、風(fēng)力、降雨等。智慧農(nóng)田的聯(lián)動(dòng)控制系統(tǒng)主要有灌溉、風(fēng)機(jī)、卷簾、增溫和水閥等控制設(shè)備。智慧農(nóng)田系統(tǒng)基于精準(zhǔn)的農(nóng)業(yè)傳感器進(jìn)行實(shí)時(shí)監(jiān)測(cè),利用ARM主控制器進(jìn)行多層次分析,做出決策控制聯(lián)動(dòng)系統(tǒng),提升農(nóng)業(yè)化生產(chǎn)的智能化水平。
智能農(nóng)田系統(tǒng)的傳感器節(jié)點(diǎn)繁多,每個(gè)傳感節(jié)點(diǎn)都是基于Z-Stack協(xié)議棧的OSAL操作系統(tǒng)設(shè)計(jì)的,通過(guò)定義ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)通信協(xié)議,來(lái)管理多個(gè)傳感器與ZigBee協(xié)調(diào)器和ARM開(kāi)發(fā)板的通信方式。ZigBee無(wú)線(xiàn)網(wǎng)絡(luò)通信協(xié)議管理了三種命令格式:①周期消息:每個(gè)傳感節(jié)點(diǎn)都會(huì)周期性的發(fā)送數(shù)據(jù)到協(xié)調(diào)器,協(xié)調(diào)器對(duì)收到的周期性的信息加以處理,無(wú)需回復(fù),只需要確認(rèn)連接正常。②測(cè)量類(lèi)消息:傳感器節(jié)點(diǎn)發(fā)送測(cè)量消息到協(xié)調(diào)器。③控制類(lèi)消息:協(xié)調(diào)器發(fā)送控制類(lèi)消息到傳感器節(jié)點(diǎn),需要在指定時(shí)間內(nèi)收到相應(yīng)節(jié)點(diǎn)的回復(fù),超時(shí)沒(méi)有回復(fù),協(xié)調(diào)器需要重發(fā)控制類(lèi)消息。ZigBee應(yīng)用層用戶(hù)自定義的通信協(xié)議的數(shù)據(jù)包格式,包括測(cè)量類(lèi)消息和控制類(lèi)消息,分別如表1、表2所示。
表1測(cè)量類(lèi)消息數(shù)據(jù)包格式
表2控制類(lèi)消息數(shù)據(jù)包格式
ARM開(kāi)發(fā)板作為智慧農(nóng)田管理系統(tǒng)的網(wǎng)關(guān),在接收到協(xié)調(diào)器發(fā)送的周期性消息之后,網(wǎng)關(guān)通過(guò)接收的消息可以確定當(dāng)前系統(tǒng)中有哪些傳感器節(jié)點(diǎn),在LCD顯示屏上灰化顯示相應(yīng)各個(gè)節(jié)點(diǎn)的圖標(biāo),以表明各個(gè)傳感器節(jié)點(diǎn)還未被激活。當(dāng)網(wǎng)關(guān)進(jìn)一步收到傳感器節(jié)點(diǎn)的周期消息或者測(cè)量消息之后,節(jié)點(diǎn)圖標(biāo)會(huì)用彩色高亮顯示,表明“傳感器模塊開(kāi)啟”。傳感器模塊啟動(dòng)后,如果在周期時(shí)間內(nèi)沒(méi)有再進(jìn)一步收到該節(jié)點(diǎn)的周期消息,網(wǎng)關(guān)上的相應(yīng)圖標(biāo)繼續(xù)變?yōu)榛疑?,表明傳感器模塊的心跳已停止,需要等待進(jìn)一步的激活。
ARM開(kāi)發(fā)板的軟件設(shè)計(jì)以u(píng)COS-II實(shí)時(shí)操作系統(tǒng)的移植為基礎(chǔ),uCOS-II實(shí)時(shí)操作系統(tǒng)是一個(gè)占先式的多任務(wù)操作系統(tǒng)。將uCOS-II的操作系統(tǒng)的核心代碼加入到系統(tǒng)工程之后,修改與體系架構(gòu)Cortex-M3相關(guān)的,以及與單板配置相關(guān)的源碼,再根據(jù)實(shí)際需求編寫(xiě)應(yīng)用層的多任務(wù)源碼。在完成uCOS-II內(nèi)核初始化、LCD初始化、BSP初始化、開(kāi)啟系統(tǒng)時(shí)鐘的基礎(chǔ)上,開(kāi)始創(chuàng)建多任務(wù),任務(wù)設(shè)計(jì)完成后,啟動(dòng)uCOS-II操作系統(tǒng)。操作系統(tǒng)開(kāi)啟多任務(wù)工作模式,根據(jù)ZigBee自定義的應(yīng)用層協(xié)議將傳感網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的數(shù)據(jù)接收之后,在A(yíng)RM開(kāi)發(fā)板本地的SD卡保存下來(lái),同時(shí)更新到LCD顯示屏上實(shí)時(shí)顯示。
選用8個(gè)ZigBee節(jié)點(diǎn),8個(gè)傳感器,1個(gè)ZigBee節(jié)點(diǎn)作為協(xié)調(diào)器和1個(gè)ARM開(kāi)發(fā)板作為本系統(tǒng)的實(shí)驗(yàn)設(shè)備,ZigBee協(xié)調(diào)器與STM32開(kāi)發(fā)板通過(guò)串口直接相連,ZigBee的路由器和終端節(jié)點(diǎn)分別燒錄不同的傳感器節(jié)點(diǎn)代碼。ARM開(kāi)發(fā)板燒錄uCOS-II操作系統(tǒng)可執(zhí)行文件,操作系統(tǒng)的應(yīng)用層設(shè)計(jì)了界面程序。
系統(tǒng)上電時(shí),首先啟動(dòng)ZigBee協(xié)調(diào)器,以便創(chuàng)建一個(gè)空的ZigBee網(wǎng)絡(luò),再啟動(dòng)ZigBee路由器和終端節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)自動(dòng)加入?yún)f(xié)調(diào)器創(chuàng)建的網(wǎng)絡(luò)號(hào)一致的ZigBee網(wǎng)絡(luò),形成樹(shù)狀結(jié)構(gòu)。對(duì)ARM開(kāi)發(fā)板上電,uCOS-II操作系統(tǒng)和界面程序正常啟動(dòng),操作系統(tǒng)接收Z(yǔ)igBee協(xié)調(diào)器發(fā)送過(guò)來(lái)的周期消息,解析出當(dāng)前Zig-Bee網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的拓?fù)浣Y(jié)構(gòu)圖,在顯示屏上用圖標(biāo)實(shí)時(shí)顯示出來(lái)。ARM開(kāi)發(fā)板利用操作系統(tǒng)中的MySQL數(shù)據(jù)庫(kù)存儲(chǔ)傳感器的數(shù)據(jù),方便操作系統(tǒng)的各個(gè)任務(wù)隨時(shí)讀取傳感器的最新數(shù)據(jù)。ARM開(kāi)發(fā)板的界面程序中設(shè)置定時(shí)更新功能,定時(shí)獲取數(shù)據(jù)庫(kù)中各個(gè)節(jié)點(diǎn)的最新傳感器數(shù)據(jù)來(lái)實(shí)時(shí)顯示,ARM開(kāi)發(fā)板的串口在后臺(tái)接收到協(xié)調(diào)器發(fā)送過(guò)來(lái)的消息之后,實(shí)時(shí)保存到MySQL數(shù)據(jù)庫(kù)。ARM開(kāi)發(fā)板的應(yīng)用程序可根據(jù)各節(jié)點(diǎn)的傳感器數(shù)據(jù),進(jìn)行統(tǒng)計(jì)分析,若發(fā)現(xiàn)不在正常工作范圍的傳感器節(jié)點(diǎn),可以及時(shí)發(fā)出警告,并自動(dòng)啟動(dòng)聯(lián)動(dòng)控制程序,通過(guò)控制類(lèi)消息自動(dòng)控制ZigBee網(wǎng)絡(luò)中的聯(lián)動(dòng)控制節(jié)點(diǎn)。
為了適應(yīng)現(xiàn)代農(nóng)業(yè)的智能化、精細(xì)化管理的要求,本系統(tǒng)提供了智慧農(nóng)田管理系統(tǒng)的設(shè)計(jì)方案,選用近距離通信的ZigBee傳感器網(wǎng)絡(luò)和STM32開(kāi)發(fā)板組合設(shè)計(jì)了完整的系統(tǒng)。ZigBee網(wǎng)絡(luò)的低速率和穩(wěn)定性能很好地適應(yīng)農(nóng)業(yè)現(xiàn)場(chǎng)采集數(shù)據(jù)的特點(diǎn),ARM主控制器的數(shù)據(jù)處理能力足夠滿(mǎn)足當(dāng)前系統(tǒng)的采集、統(tǒng)計(jì)和分析的需求,芯片豐富的接口也能為系統(tǒng)的嵌入式開(kāi)發(fā)提供較大的靈活性。系統(tǒng)的軟件設(shè)計(jì)重點(diǎn)解決了Zig-Bee網(wǎng)絡(luò)應(yīng)用層自定義的通信協(xié)議的設(shè)計(jì),ARM開(kāi)發(fā)板的uCOS-II操作系統(tǒng)多任務(wù)的設(shè)計(jì),以及可視化界面程序的設(shè)計(jì)。系統(tǒng)調(diào)試的結(jié)果顯示,功能穩(wěn)定。本系統(tǒng)為智慧農(nóng)業(yè)的智能化發(fā)展的解決方案提供了參考。