摘 要: 針對農(nóng)業(yè)生產(chǎn)的自動化管理需求,介紹了ARM與ZigBee技術相結合設計農(nóng)田環(huán)境監(jiān)測系統(tǒng)的方法。硬件部分采用ZigBee外接傳感器設計環(huán)境數(shù)據(jù)采集節(jié)點,采用S3C2440處理器和CC2530設計協(xié)調器網(wǎng)關,其中CC2530與ARM之間采用SPI口進行數(shù)據(jù)通信。軟件部分基于IAR平臺結合Z-Stack協(xié)議棧構建ZigBee無線監(jiān)測網(wǎng)絡,用于采集并傳輸影響農(nóng)作物生長的現(xiàn)場環(huán)境信息,數(shù)據(jù)在基于ARM與ZigBee技術相結合而開發(fā)的網(wǎng)關節(jié)點處實現(xiàn)匯聚,最終通過串口發(fā)送到基于VC++6.0與數(shù)據(jù)庫技術開發(fā)的上位機監(jiān)測系統(tǒng)。經(jīng)測試,網(wǎng)關節(jié)點能實時接收傳感器節(jié)點的數(shù)據(jù),并通過串口成功上傳到上位機監(jiān)測系統(tǒng),實現(xiàn)實時數(shù)據(jù)監(jiān)測、動態(tài)分析、歷史查詢和異常報警功能,系統(tǒng)具有較好的穩(wěn)定性和實用性。
關鍵詞: ZigBee;ARM;SPI通信;串口通信;遠程監(jiān)測
0 引言
隨著傳統(tǒng)農(nóng)業(yè)向現(xiàn)代化農(nóng)業(yè)的轉變,農(nóng)業(yè)生產(chǎn)中降低成本、提高質量和產(chǎn)量、發(fā)展優(yōu)質高效農(nóng)業(yè)的要求以及資源高效利用、農(nóng)業(yè)可持續(xù)發(fā)展等方面的要求,迫切需求社會效益、經(jīng)濟效益、環(huán)境保護和科學技術相結合的新型農(nóng)業(yè)的出現(xiàn)?,F(xiàn)代化農(nóng)業(yè)基于精細農(nóng)業(yè)理念,20世紀80年代美國提出精細農(nóng)業(yè)構想,采用精細農(nóng)業(yè)可以在保護環(huán)境、降低成本的前提下實時監(jiān)測農(nóng)田環(huán)境多元信息,及時進行科學分析與預測,根據(jù)農(nóng)田環(huán)境信息變化來確定最合適的管理決策,幫助農(nóng)民科學種植。
目前,關于基于嵌入式技術農(nóng)業(yè)應用監(jiān)測系統(tǒng)的研究還較少,大多采用單片機和便攜式設備實現(xiàn)環(huán)境信息采集[1-2]。針對現(xiàn)代農(nóng)業(yè)自動化管理的需求,本文采用S3C2440處理器結合ZigBee技術設計了一個農(nóng)田環(huán)境監(jiān)測系統(tǒng)[3]。ZigBee這種低功耗、低成本、近距離、低復雜度的雙向無線傳感網(wǎng)絡技術是進行大面積農(nóng)田環(huán)境信息采集與傳輸?shù)淖罴堰x擇。以PC為上位機,采用VC++開發(fā)工具與數(shù)據(jù)庫技術[4]開發(fā)上位機監(jiān)測軟件,采用串口通信技術連接協(xié)調器網(wǎng)關,構成分布式信息采集系統(tǒng)。該系統(tǒng)實現(xiàn)了對空氣溫度、空氣濕度、光照強度、土壤水分等環(huán)境信息的實時數(shù)據(jù)采集、傳輸、存儲、查詢及分析處理,并且具有異常預警功能,有利于降低農(nóng)業(yè)作業(yè)的成本,提高效率,同時也為農(nóng)業(yè)工作者科學種植、防治病蟲災害提供可靠、充分的科學依據(jù)。
1 系統(tǒng)總體設計
農(nóng)田環(huán)境監(jiān)測系統(tǒng),主要包括數(shù)據(jù)采集終端、數(shù)據(jù)通信鏈路和數(shù)據(jù)監(jiān)測中心三部分。其中數(shù)據(jù)采集終端包括采集農(nóng)作物生長環(huán)境的各種傳感器,如空氣溫濕度傳感器、光照強度傳感器、土壤水分傳感器;數(shù)據(jù)通信鏈路包括ZigBee近距離無線通信網(wǎng)絡、ZigBee與ARM間的SPI數(shù)據(jù)通信和ARM與PC間的串口通信;數(shù)據(jù)監(jiān)測中心包括安裝了單機版監(jiān)測軟件的PC及PC內(nèi)部運行的MySQL數(shù)據(jù)庫。系統(tǒng)結構框圖如圖1所示。
ZigBee終端節(jié)點傳感器能夠采集空氣溫度、空氣濕度、光照強度、土壤水分等環(huán)境因素,然后經(jīng)過ZigBee無線網(wǎng)絡將數(shù)據(jù)發(fā)送到ZigBee協(xié)調器節(jié)點,協(xié)調器節(jié)點數(shù)據(jù)由SPI總線傳輸?shù)紸RM處理器,數(shù)據(jù)在ARM處理器中經(jīng)過分析處理之后通過串口最終發(fā)送到PC數(shù)據(jù)庫服務器中存儲[5-6]。系統(tǒng)可對影響農(nóng)作物生長的環(huán)境信息進行實時遠程監(jiān)測、動態(tài)分析和歷史查詢,并且對超出標準值的環(huán)境參數(shù)提供報警功能。
2 系統(tǒng)硬件設計
2.1 傳感器節(jié)點
傳感器節(jié)點由ZigBee無線通信模塊(包括8051處理器)、傳感器模塊和電源模塊組成。傳感器模塊采集和轉換監(jiān)測區(qū)域內(nèi)的環(huán)境信息;無線通信模塊用于控制傳感器節(jié)點的數(shù)據(jù)采集、存儲、轉換和處理、收發(fā)數(shù)據(jù)及與其他傳感器節(jié)點間交換信息等;電源模塊負責為傳感器節(jié)點運行提供所需的能量。傳感器節(jié)點結構框圖如圖2所示。傳感器模塊包括空氣溫濕度傳感器DHT11、光照強度傳感器MAX44009和土壤水分傳感器TDR-3。ZigBee無線通信模塊節(jié)點選用WeBee的CC2530+CC2591(PA)模塊。CC2530是一個低成本、低功耗的無線微控制器,芯片上集成了CC2591射頻前端放大芯片、增強型8051內(nèi)核、Flash存儲器、8 KB RAM和許多其他增大功能。CC2530+CC2591(PA)模塊具有以下功能特點:
(1)可靠傳輸距離400 m,自動重連距離高達360 m;
?。?)工作在2.4 GHz頻段,無線速率達250 kb/s;
?。?)具有16個通信信道,可根據(jù)環(huán)境切換可靠通信信道。
2.2 協(xié)調器網(wǎng)關
考慮到協(xié)調器節(jié)點需要處理傳感器節(jié)點上傳的大量數(shù)據(jù),并能夠將數(shù)據(jù)通過串口有序地上傳到上位機,要求協(xié)調器節(jié)點具有較快運行速度和較強的數(shù)據(jù)處理能力,為此選用S3C2440A開發(fā)板和ZigBee CC2530無線收發(fā)模塊設計協(xié)調器網(wǎng)關節(jié)點。ZigBee模塊數(shù)據(jù)處理程序工作在協(xié)調器模式下,與處理器S3C2440之間通過SPI口進行數(shù)據(jù)通信。協(xié)調器網(wǎng)關硬件框圖如圖3所示?;贏RM920T內(nèi)核的S3C2440A具有MMU單元和豐富的外部接口,主要片上功能特點如下:
(1)主頻(FCLK):400 MHz;
(2)存儲器:2 MB NOR Flash,256 MB NAND Flash,64 MB SDRAM;
?。?)外部存儲控制器:可擴展8組128 MB的存儲空間,總容量達1 GB;
?。?)具有2路SPI口,3路URAT口;
?。?)CMOS攝像頭接口。
3 系統(tǒng)軟件設計
3.1 協(xié)調器節(jié)點程序
采用IAR Embedded Workbench(7.60A)編程環(huán)境和TI的ZStack-CC2430-2.3.0-1.4.0(ZigBee 2007)協(xié)議棧設計ZigBee CC2530無線傳感網(wǎng)絡程序[7-9]。協(xié)調器節(jié)點負責啟動和配置網(wǎng)絡,同時可以與網(wǎng)絡以外的設備進行通信,起到網(wǎng)關的作用。根據(jù)設計目標,調用ZigBee協(xié)議棧中的API接口函數(shù)來實現(xiàn)無線傳感網(wǎng)絡程序設計。協(xié)調器的程序設計流程圖如圖4所示。程序設計方法如下:
?。?)初始化硬件、網(wǎng)絡層、任務、堆棧等。編寫init_spi()函數(shù)用來初始化SPI口,協(xié)調器組網(wǎng)程序初始化通過調用協(xié)議棧中的初始化函數(shù)來實現(xiàn),其中osal_init_system()函數(shù)用來初始化操作系統(tǒng),osalInitTasks()函數(shù)用來初始化任務。
(2)信道掃描,根據(jù)掃描結果選擇一個編號在11~26間合適的信道,并設置網(wǎng)絡PAN ID(0x0000-0x3FFF),協(xié)調器采用的網(wǎng)絡PAN ID默認為0x0000。接著啟動協(xié)調器,等待其他設備加入網(wǎng)絡。
(3)在有傳感器節(jié)點加入網(wǎng)絡之后,調用接收函數(shù)。當協(xié)調器收到從傳感器節(jié)點傳來的數(shù)據(jù)后,將數(shù)據(jù)發(fā)送到S3C2440處理器。
3.2 傳感器節(jié)點程序
傳感器節(jié)點負責采集環(huán)境參數(shù),并將其傳送到協(xié)調節(jié)點。傳感器節(jié)點分為終端節(jié)點和路由節(jié)點兩種,終端節(jié)點僅用于采集傳感器數(shù)據(jù)并發(fā)送給附近的路由器或協(xié)調器;路由器節(jié)點同時負責數(shù)據(jù)采集和數(shù)據(jù)信息的轉發(fā)。本文設計的路由節(jié)點程序和終端節(jié)點的程序除了有些配置參數(shù)不同,其他部分基本一致。傳感器節(jié)點在上電后,Z-Stack調用ZDO_StartDevice()函數(shù)來啟動設備進行初始化,接著會讀取非易失性存儲器中的一系列配置參數(shù),如設備類型參數(shù)ZCD_NV_LOGICAL_TYPE,默認的掃描信道參數(shù)ZCD_NV_CHANLIST等。其中設備的類型參數(shù)值決定著此設備的邏輯類型。本文傳感器節(jié)點程序中終端設備的類型參數(shù)值為ZG_DEVICETYPE_ENDDEVICE,路由器的類型參數(shù)值為ZG_DEVICETYPE_ROUTER。
傳感器節(jié)點的程序設計流程圖如圖5所示。以DHT11數(shù)字溫濕度傳感器為例,傳感器節(jié)點程序設計主要步驟如下:
?。?)設計DHT11的裸機驅動程序,使CC2530可以驅動DHT11傳感器。包括配置傳感器IO口方向、接收緩存定義、延時、溫濕度寫入、傳感啟動、設置采集周期等。
(2)將DHT11的裸機程序文件復制到協(xié)議棧Source文件夾下,在協(xié)議棧的APP目錄下點擊右鍵——Add——添加復制文件,這樣DHT11的裸機驅動程序被添加到Z-stack協(xié)議棧代碼中。在協(xié)議棧代碼中初始化傳感器引腳P0.6,通過周期性廣播函數(shù)每2 s讀取溫度傳感器1次。
?。?)調用API函數(shù)初始化硬件、網(wǎng)絡層、堆棧等,在發(fā)送函數(shù)中將數(shù)據(jù)打包并按指定方式發(fā)送給指定設備。
3.3 ARM與ZigBee間SPI驅動程序設計
在ARM上移植Linux操作系統(tǒng),要在Linux系統(tǒng)用戶空間使用SPI設備,首先應在內(nèi)核空間移植相應的設備驅動程序,接著在用戶空間編寫ARM端數(shù)據(jù)收發(fā)程序。在Linux環(huán)境下,設備被當做文件進行處理,對設備的操作都是通過操作文件系統(tǒng)來實現(xiàn)的[10]。ARM與CC2530間的SPI通信程序主要組成部分如下:
(1)在內(nèi)核中注冊SPI設備,初始化驅動設備,使相關寄存器映射到虛擬內(nèi)存地址。設備注冊、建立設備文件、映射GPIO與SPI寄存器、注冊中斷均由spi_init()函數(shù)實現(xiàn)。
(2)修改file_operations文件結構。file_operations文件結構用來對系統(tǒng)內(nèi)部I/O設備存取入口點向系統(tǒng)進行說明。這樣應用程序中通過read、write等關鍵字即可調用驅動程序相應的函數(shù)。
?。?)SPI調用spi_open()打開設備,調用spi2440_write()發(fā)送數(shù)據(jù),調用spi2440_read()接收數(shù)據(jù),調用spi_close()函數(shù)關閉設備。
?。?)設備IO控制。spi_ioctl()函數(shù)負責接收應用程序參數(shù),并對CC2530片選或復位操作。
(5)interrup_irq()中斷函數(shù)實現(xiàn)。
4 系統(tǒng)測試
在實驗室使用4個CC2530開發(fā)板,1個作為協(xié)調器,1個作為路由器,2個作為終端節(jié)點對系統(tǒng)可行性及穩(wěn)定性進行了測試。分別選擇CoordinatroEB-Pro、RouterEB-Pro、EndDeviceEB-Pro模式下載程序到這三類節(jié)點開發(fā)板。系統(tǒng)ZigBee終端和路由節(jié)點安裝了DHT11數(shù)字型空氣溫濕度傳感器,設置采集時間間隔為20 min,上位機監(jiān)測系統(tǒng)實時環(huán)境數(shù)據(jù)測試如圖6所示。設置動態(tài)分析時間間隔為10 min,通過上位機監(jiān)測系統(tǒng)可查看各傳感器上傳的環(huán)境信息動態(tài)分析圖如圖7所示。
5 結論
本文分析了農(nóng)業(yè)環(huán)境發(fā)展現(xiàn)狀與應用需求,針對當前農(nóng)田環(huán)境監(jiān)測存在的不足,采用ARM結合ZigBee無線傳感技術設計了農(nóng)田環(huán)境監(jiān)測系統(tǒng)。該系統(tǒng)同時具備了ZigBee技術的成本低、功耗小、網(wǎng)絡結構簡單、自組織傳輸和ARM嵌入式技術對海量數(shù)據(jù)信息的高速處理的特點。系統(tǒng)可實現(xiàn)對農(nóng)田環(huán)境信息有效采集、融合、傳輸、存儲、查詢與分析處理的一體化管理。
參考文獻
[1] 張帆,劉剛.基于.NET的農(nóng)業(yè)生產(chǎn)環(huán)境信息監(jiān)測系統(tǒng)[J].計算機工程與設計,2013,34(2):696-701.
[2] 薛文英,傅平,張馨,等.基于組態(tài)平臺的日光溫室群監(jiān)控系統(tǒng)軟件設計與應用[J].北方園藝,2011(9):53-56.
[3] 于海業(yè),羅瀚,任順,等.ZigBee技術在精準農(nóng)業(yè)上的應用進展與展望[J].農(nóng)機化研究,2012,8(8):66-68.
[4] 張永梅.MySQL數(shù)據(jù)庫技術在公民健康信息管理系統(tǒng)中的應用[D].西安:西安電子科技大學,2010.
[5] 王正強.VC中應用MSComm控件實現(xiàn)串口通信[J].電子測試,2010,5(5):73-76.
[6] FORTA B. MySQL必知必會[M].劉曉霞,鐘鳴,譯.北京:人民郵電出版社,2009.
[7] ZigBee Alliance. ZigBee Specification Version 1.0[M]. ZigBee Standards Organization, 2004.
[8] Zhang Jie, Li Aicheng, Li Jianlong, et al. Research of real-time image acquisition system based on ARM 7 for agricultural environmental monitoring[J]. IEEE Transactions on PE, 2011:6216-6220.
[9] Yang Shuhui, Dai Fei, CARDEI M, et al. On connected multiple point coverage in wireless sensor networks[J]. International Journal of Wireless Information Networks, 2006,13(4):289-301.
[10] 王舒憬,黃河,黨彥博,等.基于ARM的無線ZigBee收發(fā)器驅動設計[J].儀表技術,2008(2):35-37.