王 發(fā),艾 紅
(北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京100192)
隨著全球氣候的變化以及水資源的日益匱乏,旱災(zāi)已成為世界范圍內(nèi)影響十分嚴(yán)重的自然災(zāi)害,對(duì)農(nóng)業(yè)生產(chǎn)造成很大影響。加強(qiáng)農(nóng)田土壤旱情監(jiān)測(cè)和預(yù)報(bào)對(duì)于我國(guó)農(nóng)業(yè)信息化發(fā)展意義重大。目前農(nóng)田信息采集重點(diǎn)都在信息采集設(shè)備的開發(fā)和數(shù)據(jù)的傳輸,對(duì)數(shù)據(jù)的處理關(guān)注較少。本文引入BP神經(jīng)網(wǎng)絡(luò)算法結(jié)合嵌入式系統(tǒng)、ZigBee和GPRS技術(shù)設(shè)計(jì)了旱災(zāi)監(jiān)控預(yù)警系統(tǒng),將信息采集和數(shù)據(jù)處理有機(jī)結(jié)合,實(shí)現(xiàn)對(duì)土壤信息的監(jiān)控與預(yù)測(cè)[1]。
系統(tǒng)包括主控平臺(tái)、信息采集終端、信息傳輸網(wǎng)絡(luò)、管理中心4部分。主控平臺(tái)以S3C6410處理器為核心,負(fù)責(zé)數(shù)據(jù)處理和發(fā)送。信息采集終端由ZigBee節(jié)點(diǎn)搭載溫濕度和光照強(qiáng)度傳感器采集土壤溫濕度和光照強(qiáng)度數(shù)據(jù)。信息傳輸網(wǎng)絡(luò)包括ZigBee無(wú)線傳感器網(wǎng)絡(luò)和GPRS網(wǎng)絡(luò)2部分。采集到的數(shù)據(jù)經(jīng)ZigBee終端節(jié)點(diǎn)發(fā)送給ZigBee協(xié)調(diào)器節(jié)點(diǎn)后通過(guò)S3C6410處理后經(jīng)GPRS模塊將信息上傳管理中心。管理中心對(duì)接收到的數(shù)據(jù)進(jìn)行處理,運(yùn)用BP神經(jīng)網(wǎng)絡(luò)算法對(duì)旱情進(jìn)行預(yù)測(cè)。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)Fig.1 Structure diagram of system
主控平臺(tái)的硬件分為2部分,其中S3C6410處理器與SDRAM、NandFlash、時(shí)鐘和復(fù)位電路等構(gòu)成核心板;電源、UART以及其他接口電路構(gòu)成底板。S3C6410是基于ARM1176JZF-S的16/32位RSIC微處理器,具有低成本、低功耗、高性能特點(diǎn)的應(yīng)用處理器。SDRAM為操作系統(tǒng)和應(yīng)用程序的運(yùn)行提供存儲(chǔ)空間。NandFlash一部分空間保存啟動(dòng)代碼和操作系統(tǒng),其它空間則用來(lái)存儲(chǔ)數(shù)據(jù)。核心板與底板的連接是通過(guò)插針接口相連。
通信模塊包括ZigBee無(wú)線通信模塊和GPRS通信模塊。ZigBee無(wú)線通信模塊采用基于IEEE802.15.4協(xié)議的CC2530芯片,配以雙晶振和單級(jí)天線等外圍電路構(gòu)成。由一個(gè)協(xié)調(diào)器節(jié)點(diǎn)和多個(gè)終端節(jié)點(diǎn)實(shí)現(xiàn)星型無(wú)線傳感器網(wǎng)絡(luò),協(xié)調(diào)器與主控平臺(tái)通過(guò)串口UART0通信。終端節(jié)點(diǎn)搭載溫濕度和光照強(qiáng)度傳感器組成監(jiān)控點(diǎn),對(duì)土壤的各項(xiàng)指標(biāo)進(jìn)行數(shù)據(jù)采集。溫濕度傳感器采用SLHT5土壤溫濕度傳感器,將SLHT5時(shí)鐘線SCL和數(shù)據(jù)線SDA分別連接到CC2530的P0_0和P0_1接口,通過(guò)I/O口模擬I2C時(shí)序?qū)鞲衅鬟M(jìn)行控制。光照強(qiáng)度傳感器采用DZD-T4光照強(qiáng)度傳感器,將DZD-T4的串口發(fā)送引腳TXD連接到CC2530的P0_2引腳,將串口接收引腳連接到CC2530的P0_3引腳。GPRS通信模塊選用SIM900模塊實(shí)現(xiàn)。SIM900擁有GPRS/GSM雙頻模塊,具有性能穩(wěn)定功耗低的優(yōu)點(diǎn)。SIM900模塊通過(guò)串口UATR1與主控平臺(tái)進(jìn)行通信,通信速率設(shè)定為115200 b/s。主控平臺(tái)通過(guò)AT指令對(duì)SIM900進(jìn)行控制,完成相應(yīng)的功能。
ZigBee數(shù)據(jù)采集、主控平臺(tái)數(shù)據(jù)處理和GPRS數(shù)據(jù)發(fā)送幾乎都是并行執(zhí)行的,另外系統(tǒng)還要實(shí)現(xiàn)ZigBee模塊和GPRS模塊等外設(shè)驅(qū)動(dòng),這些用單片機(jī)很難實(shí)現(xiàn),因此引入Linux系統(tǒng)。分別為這3個(gè)并行執(zhí)行的程序開辟一個(gè)線程,由Linux系統(tǒng)完成對(duì)系統(tǒng)資源的分配與調(diào)度。另外Linux最大特點(diǎn)就是對(duì)系統(tǒng)進(jìn)行定制,外接設(shè)備的驅(qū)動(dòng)可編譯到內(nèi)核中。要在S3C6410平臺(tái)上使用Linux系統(tǒng),需對(duì)其進(jìn)行移植。移植首先需建立交叉編譯環(huán)境,然后引導(dǎo)Bootloader,編譯Linux內(nèi)核,最后制作根文件系統(tǒng)。交叉編譯是在一個(gè)平臺(tái)上生成可在另一個(gè)平臺(tái)上執(zhí)行的代碼,從而實(shí)現(xiàn)宿主機(jī)上開發(fā)并編譯可在目標(biāo)板上運(yùn)行的代碼。Bootloader是操作系統(tǒng)內(nèi)核和應(yīng)用程序運(yùn)行之前運(yùn)行的一段程序,完成硬件設(shè)備初始化,為運(yùn)行Linux內(nèi)核做準(zhǔn)備。Linux系統(tǒng)的移植主要是對(duì)Linux內(nèi)核源碼中與硬件相關(guān)的代碼進(jìn)行修改,比如MTD分區(qū)、Nand Flash驅(qū)動(dòng)等使之可在目標(biāo)板上運(yùn)行。文件系統(tǒng)是一個(gè)物理設(shè)備上的任何文件組織和目錄,是操作系統(tǒng)中與管理文件有關(guān)的軟件和數(shù)據(jù),在Linux下,所有文件和外部設(shè)備都以文件的形式掛接在這個(gè)文件系統(tǒng)上,系統(tǒng)宿主機(jī)采用的操作系統(tǒng)是Fedroa14 Linux,使用的交叉編譯器為 arm-linux-gcc-4.3.2,Bootloader選用的是U-boot-2013.04,內(nèi)核版本為L(zhǎng)inux3.8.3。
ZigBee無(wú)線通信模塊使用Z-Stack協(xié)議棧實(shí)現(xiàn)ZigBee無(wú)線組網(wǎng),采集到的數(shù)據(jù)由終端節(jié)點(diǎn)通過(guò)ZigBee無(wú)線網(wǎng)絡(luò)發(fā)送到協(xié)調(diào)器節(jié)點(diǎn)。Z-Stack協(xié)議棧內(nèi)嵌 OSAL(operating system abstraction layer)輪轉(zhuǎn)查詢式多任務(wù)操作系統(tǒng)[2],OSAL通過(guò)osal_add_task()函數(shù)向任務(wù)表數(shù)組中添加任務(wù),形成一個(gè)任務(wù)鏈表,通過(guò)tasksEvents指針訪問(wèn)任務(wù)表中的每一項(xiàng),按照優(yōu)先級(jí)的高低查詢是否有事件發(fā)生,如果有事件發(fā)生,就會(huì)執(zhí)行相應(yīng)的事件處理函數(shù),處理完后,繼續(xù)訪問(wèn)任務(wù)鏈表,查看是否有事件發(fā)生。
系統(tǒng)通過(guò)S3C6410對(duì)SIM900進(jìn)行控制,與管理中心建立GPRS連接,將采集終端采集的數(shù)據(jù)傳輸?shù)焦芾碇行?。GPRS模塊工作流程如圖2所示。
圖2 GPRS模塊工作流程Fig.2 GPRS module workflow
GPRS模塊通過(guò)UART1與主控平臺(tái)進(jìn)行通信,通信協(xié)議采用AT指令集,該協(xié)議的格式是“AT+數(shù)據(jù)+回車”,每一條指令都有應(yīng)答指令。系統(tǒng)首先對(duì)GPRS進(jìn)行初始化,以TCP連接的方式連接到管理中心并定義好相應(yīng)的發(fā)送函數(shù)解析AT命令,實(shí)現(xiàn)數(shù)據(jù)發(fā)送。如果到達(dá)系統(tǒng)設(shè)定的時(shí)間時(shí)串口中沒(méi)有數(shù)據(jù)要發(fā)送,模塊就會(huì)向管理中心端發(fā)送一個(gè)心跳包,心跳包就是在客戶端和服務(wù)器間定時(shí)通知對(duì)方自己狀態(tài)的一個(gè)自定義的數(shù)據(jù),管理中心端可以對(duì)心跳包數(shù)據(jù)做丟棄處理[3]。
管理中心與主控平臺(tái)采用基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信方式,主控平臺(tái)作為客戶端通過(guò)GPRS模塊發(fā)送傳感器采集的數(shù)據(jù),管理中心作為服務(wù)器接收GPRS模塊發(fā)送來(lái)的數(shù)據(jù)。C++builder中網(wǎng)絡(luò)組件 TServerSocket和 TClientSocket封裝 Win Socket編程的各種基本功能,可實(shí)現(xiàn)客戶端與服務(wù)器編程。數(shù)據(jù)采集界面和數(shù)據(jù)變化曲線如圖3~圖6所示。
圖3 數(shù)據(jù)采集界面Fig.3 Data acquisition interface
圖4 土壤溫度變化曲線Fig.4 Soil temperature change curve
圖5 土壤濕度變化曲線Fig.5 Soil moisture change curve
圖6 光照強(qiáng)度變化曲線Fig.6 Light intensity change curve
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),拓?fù)浣Y(jié)構(gòu)包括輸入層、隱含層和輸出層,按減小輸出值與期望值誤差,使網(wǎng)絡(luò)的誤差平方和最小的原則,從輸出層經(jīng)隱含層再回到輸入層,逐層修正連接權(quán)值,隨訓(xùn)練的不斷進(jìn)行,網(wǎng)絡(luò)對(duì)輸入模式匹配的正確率也將逐漸提高[4-5]。系統(tǒng)設(shè)計(jì)3層BP網(wǎng)絡(luò),輸入層由土壤溫度、土壤濕度、光照強(qiáng)度組成,輸出層為土壤濕度,因此輸入層的神經(jīng)元個(gè)數(shù)為3;隱含層節(jié)點(diǎn)數(shù)個(gè)數(shù)使用經(jīng)驗(yàn)公式和試湊法確定為5個(gè),輸出層神經(jīng)元個(gè)數(shù)為1個(gè)。BP神經(jīng)網(wǎng)絡(luò)的算法可表示如下,Δwki是輸出層權(quán)值的修正量,Δak是輸出層閾值的修正量,Δwij是隱含層權(quán)值的修正量,是隱含層閾值的修正量。根據(jù)以上4個(gè)修正量不斷修正網(wǎng)絡(luò)中的閾值和權(quán)值,從而得到最佳的權(quán)值和閾值,是BP神經(jīng)網(wǎng)絡(luò)可以根據(jù)輸入值準(zhǔn)確進(jìn)行預(yù)測(cè)。
選取系統(tǒng)中一個(gè)監(jiān)控點(diǎn)的監(jiān)測(cè)數(shù)據(jù)與精密儀器測(cè)量值進(jìn)行比較,來(lái)測(cè)試系統(tǒng)數(shù)據(jù)采集的準(zhǔn)確性,用歷史數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),通過(guò)輸入監(jiān)測(cè)數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)5 d的土壤濕度,并與精密儀器測(cè)量值進(jìn)行比較,來(lái)測(cè)試BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的準(zhǔn)確性。
選取一號(hào)監(jiān)控點(diǎn)2014-04-20至2014-04-24采集的土壤溫濕度值和光照強(qiáng)度值分析,系統(tǒng)測(cè)量值與精密儀器測(cè)量的真實(shí)值關(guān)系如表1所示。
表1 測(cè)量值與真實(shí)值對(duì)比Tab.1 Comparison of measured value and the true value
從表中測(cè)量值與真實(shí)值的對(duì)比和誤差可看出,土壤溫度測(cè)量值與真實(shí)值誤差范圍為[-0.5,0.5],土壤濕度測(cè)量值與真實(shí)值誤差范圍為[-0.3,0.3],光照強(qiáng)度測(cè)量值與真實(shí)值誤差范圍為[-4,4],說(shuō)明系統(tǒng)采集到的數(shù)據(jù)準(zhǔn)確可靠。
系統(tǒng)采用BP神經(jīng)網(wǎng)絡(luò)的方法對(duì)采集到的土壤濕度進(jìn)行預(yù)測(cè),可預(yù)測(cè)未來(lái)5 d內(nèi)土壤濕度。將多組樣本數(shù)據(jù)輸入到網(wǎng)絡(luò)中,可以得到預(yù)測(cè)值,其中2014-06-04至2014-06-08的數(shù)據(jù)預(yù)測(cè)值和精密儀器實(shí)測(cè)值如表2所示。
表2 預(yù)測(cè)值與實(shí)測(cè)值對(duì)比Tab.2 Comparison of measured value and the true value
從表中實(shí)測(cè)值與預(yù)測(cè)值的對(duì)比和誤差可看出,預(yù)測(cè)值與實(shí)測(cè)值誤差范圍為[-0.9,0.9],說(shuō)明系統(tǒng)可得到較理想的預(yù)測(cè)結(jié)果,預(yù)測(cè)精度高。
本方案引入BP神經(jīng)網(wǎng)絡(luò)建立旱災(zāi)預(yù)測(cè)模型,成功地將BP神經(jīng)網(wǎng)絡(luò)結(jié)合嵌入式技術(shù),物聯(lián)網(wǎng)技術(shù)應(yīng)用于農(nóng)田旱災(zāi)的監(jiān)測(cè),并對(duì)旱情進(jìn)行預(yù)測(cè),強(qiáng)化了整個(gè)系統(tǒng)的功能。將比較多的新技術(shù)運(yùn)用于農(nóng)業(yè)中,較傳統(tǒng)農(nóng)業(yè)信息監(jiān)測(cè)方式有了較大的改進(jìn),具有廣闊的應(yīng)用前景。
[1]姜立明,莊衛(wèi)東.ZigBee/GPRS技術(shù)在精準(zhǔn)農(nóng)業(yè)中的應(yīng)用研究[J].農(nóng)機(jī)化研究,2014,36(4):185-188.
[2]郭家,馬新明,郭偉,等.基于ZigBee網(wǎng)絡(luò)的農(nóng)田信息采集系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2013,32(11):65-70.
[3]楊鑫,申長(zhǎng)軍,王克武,等.基于SIM900的苗情圖像無(wú)線傳輸系統(tǒng)設(shè)計(jì)[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2013,34(4):252-255.
[4]尹健康,陳昌華,邢小軍,等.基于BP神經(jīng)網(wǎng)絡(luò)的煙田土壤水分預(yù)測(cè)[J].電子科技大學(xué)學(xué)報(bào),2010,39(6):891-895.
[5]Liu Yan fang,Jiao Li min.The application of BP networks to land suitability evaluation[J].Geo-spatial Information Science,2002,5(1):55-61.