《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 農(nóng)田環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
農(nóng)田環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2015年微型機(jī)與應(yīng)用第8期
鄒艷華,文小玲,尤 洋,伍昌煦
(武漢工程大學(xué) 電氣信息學(xué)院,湖北 武漢 430205)
摘要: 針對農(nóng)業(yè)生產(chǎn)的自動化管理需求,介紹了ARM與ZigBee技術(shù)相結(jié)合設(shè)計(jì)農(nóng)田環(huán)境監(jiān)測系統(tǒng)的方法。硬件部分采用ZigBee外接傳感器設(shè)計(jì)環(huán)境數(shù)據(jù)采集節(jié)點(diǎn),采用S3C2440處理器和CC2530設(shè)計(jì)協(xié)調(diào)器網(wǎng)關(guān),其中CC2530與ARM之間采用SPI口進(jìn)行數(shù)據(jù)通信。軟件部分基于IAR平臺結(jié)合Z-Stack協(xié)議棧構(gòu)建ZigBee無線監(jiān)測網(wǎng)絡(luò),用于采集并傳輸影響農(nóng)作物生長的現(xiàn)場環(huán)境信息,數(shù)據(jù)在基于ARM與ZigBee技術(shù)相結(jié)合而開發(fā)的網(wǎng)關(guān)節(jié)點(diǎn)處實(shí)現(xiàn)匯聚,最終通過串口發(fā)送到基于VC++6.0與數(shù)據(jù)庫技術(shù)開發(fā)的上位機(jī)監(jiān)測系統(tǒng)。經(jīng)測試,網(wǎng)關(guān)節(jié)點(diǎn)能實(shí)時接收傳感器節(jié)點(diǎn)的數(shù)據(jù),并通過串口成功上傳到上位機(jī)監(jiān)測系統(tǒng),實(shí)現(xiàn)實(shí)時數(shù)據(jù)監(jiān)測、動態(tài)分析、歷史查詢和異常報(bào)警功能,系統(tǒng)具有較好的穩(wěn)定性和實(shí)用性。
Abstract:
Key words :

  摘  要: 針對農(nóng)業(yè)生產(chǎn)的自動化管理需求,介紹了ARMZigBee技術(shù)相結(jié)合設(shè)計(jì)農(nóng)田環(huán)境監(jiān)測系統(tǒng)的方法。硬件部分采用ZigBee外接傳感器設(shè)計(jì)環(huán)境數(shù)據(jù)采集節(jié)點(diǎn),采用S3C2440處理器和CC2530設(shè)計(jì)協(xié)調(diào)器網(wǎng)關(guān),其中CC2530與ARM之間采用SPI口進(jìn)行數(shù)據(jù)通信。軟件部分基于IAR平臺結(jié)合Z-Stack協(xié)議棧構(gòu)建ZigBee無線監(jiān)測網(wǎng)絡(luò),用于采集并傳輸影響農(nóng)作物生長的現(xiàn)場環(huán)境信息,數(shù)據(jù)在基于ARM與ZigBee技術(shù)相結(jié)合而開發(fā)的網(wǎng)關(guān)節(jié)點(diǎn)處實(shí)現(xiàn)匯聚,最終通過串口發(fā)送到基于VC++6.0與數(shù)據(jù)庫技術(shù)開發(fā)的上位機(jī)監(jiān)測系統(tǒng)。經(jīng)測試,網(wǎng)關(guān)節(jié)點(diǎn)能實(shí)時接收傳感器節(jié)點(diǎn)的數(shù)據(jù),并通過串口成功上傳到上位機(jī)監(jiān)測系統(tǒng),實(shí)現(xiàn)實(shí)時數(shù)據(jù)監(jiān)測、動態(tài)分析、歷史查詢和異常報(bào)警功能,系統(tǒng)具有較好的穩(wěn)定性和實(shí)用性。

  關(guān)鍵詞: ZigBee;ARM;SPI通信;串口通信;遠(yuǎn)程監(jiān)測

0 引言

  隨著傳統(tǒng)農(nóng)業(yè)向現(xiàn)代化農(nóng)業(yè)的轉(zhuǎn)變,農(nóng)業(yè)生產(chǎn)中降低成本、提高質(zhì)量和產(chǎn)量、發(fā)展優(yōu)質(zhì)高效農(nóng)業(yè)的要求以及資源高效利用、農(nóng)業(yè)可持續(xù)發(fā)展等方面的要求,迫切需求社會效益、經(jīng)濟(jì)效益、環(huán)境保護(hù)和科學(xué)技術(shù)相結(jié)合的新型農(nóng)業(yè)的出現(xiàn)?,F(xiàn)代化農(nóng)業(yè)基于精細(xì)農(nóng)業(yè)理念,20世紀(jì)80年代美國提出精細(xì)農(nóng)業(yè)構(gòu)想,采用精細(xì)農(nóng)業(yè)可以在保護(hù)環(huán)境、降低成本的前提下實(shí)時監(jiān)測農(nóng)田環(huán)境多元信息,及時進(jìn)行科學(xué)分析與預(yù)測,根據(jù)農(nóng)田環(huán)境信息變化來確定最合適的管理決策,幫助農(nóng)民科學(xué)種植。

  目前,關(guān)于基于嵌入式技術(shù)農(nóng)業(yè)應(yīng)用監(jiān)測系統(tǒng)的研究還較少,大多采用單片機(jī)和便攜式設(shè)備實(shí)現(xiàn)環(huán)境信息采集[1-2]。針對現(xiàn)代農(nóng)業(yè)自動化管理的需求,本文采用S3C2440處理器結(jié)合ZigBee技術(shù)設(shè)計(jì)了一個農(nóng)田環(huán)境監(jiān)測系統(tǒng)[3]。ZigBee這種低功耗、低成本、近距離、低復(fù)雜度的雙向無線傳感網(wǎng)絡(luò)技術(shù)是進(jìn)行大面積農(nóng)田環(huán)境信息采集與傳輸?shù)淖罴堰x擇。以PC為上位機(jī),采用VC++開發(fā)工具與數(shù)據(jù)庫技術(shù)[4]開發(fā)上位機(jī)監(jiān)測軟件,采用串口通信技術(shù)連接協(xié)調(diào)器網(wǎng)關(guān),構(gòu)成分布式信息采集系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了對空氣溫度、空氣濕度、光照強(qiáng)度、土壤水分等環(huán)境信息的實(shí)時數(shù)據(jù)采集、傳輸、存儲、查詢及分析處理,并且具有異常預(yù)警功能,有利于降低農(nóng)業(yè)作業(yè)的成本,提高效率,同時也為農(nóng)業(yè)工作者科學(xué)種植、防治病蟲災(zāi)害提供可靠、充分的科學(xué)依據(jù)。

1 系統(tǒng)總體設(shè)計(jì)

  農(nóng)田環(huán)境監(jiān)測系統(tǒng),主要包括數(shù)據(jù)采集終端、數(shù)據(jù)通信鏈路和數(shù)據(jù)監(jiān)測中心三部分。其中數(shù)據(jù)采集終端包括采集農(nóng)作物生長環(huán)境的各種傳感器,如空氣溫濕度傳感器、光照強(qiáng)度傳感器、土壤水分傳感器;數(shù)據(jù)通信鏈路包括ZigBee近距離無線通信網(wǎng)絡(luò)、ZigBee與ARM間的SPI數(shù)據(jù)通信和ARM與PC間的串口通信;數(shù)據(jù)監(jiān)測中心包括安裝了單機(jī)版監(jiān)測軟件的PC及PC內(nèi)部運(yùn)行的MySQL數(shù)據(jù)庫。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

001.jpg

  ZigBee終端節(jié)點(diǎn)傳感器能夠采集空氣溫度、空氣濕度、光照強(qiáng)度、土壤水分等環(huán)境因素,然后經(jīng)過ZigBee無線網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到ZigBee協(xié)調(diào)器節(jié)點(diǎn),協(xié)調(diào)器節(jié)點(diǎn)數(shù)據(jù)由SPI總線傳輸?shù)紸RM處理器,數(shù)據(jù)在ARM處理器中經(jīng)過分析處理之后通過串口最終發(fā)送到PC數(shù)據(jù)庫服務(wù)器中存儲[5-6]。系統(tǒng)可對影響農(nóng)作物生長的環(huán)境信息進(jìn)行實(shí)時遠(yuǎn)程監(jiān)測、動態(tài)分析和歷史查詢,并且對超出標(biāo)準(zhǔn)值的環(huán)境參數(shù)提供報(bào)警功能。

2 系統(tǒng)硬件設(shè)計(jì)

  2.1 傳感器節(jié)點(diǎn)

002.jpg

  傳感器節(jié)點(diǎn)由ZigBee無線通信模塊(包括8051處理器)、傳感器模塊和電源模塊組成。傳感器模塊采集和轉(zhuǎn)換監(jiān)測區(qū)域內(nèi)的環(huán)境信息;無線通信模塊用于控制傳感器節(jié)點(diǎn)的數(shù)據(jù)采集、存儲、轉(zhuǎn)換和處理、收發(fā)數(shù)據(jù)及與其他傳感器節(jié)點(diǎn)間交換信息等;電源模塊負(fù)責(zé)為傳感器節(jié)點(diǎn)運(yùn)行提供所需的能量。傳感器節(jié)點(diǎn)結(jié)構(gòu)框圖如圖2所示。傳感器模塊包括空氣溫濕度傳感器DHT11、光照強(qiáng)度傳感器MAX44009和土壤水分傳感器TDR-3。ZigBee無線通信模塊節(jié)點(diǎn)選用WeBee的CC2530+CC2591(PA)模塊。CC2530是一個低成本、低功耗的無線微控制器,芯片上集成了CC2591射頻前端放大芯片、增強(qiáng)型8051內(nèi)核、Flash存儲器、8 KB RAM和許多其他增大功能。CC2530+CC2591(PA)模塊具有以下功能特點(diǎn):

 ?。?)可靠傳輸距離400 m,自動重連距離高達(dá)360 m;

 ?。?)工作在2.4 GHz頻段,無線速率達(dá)250 kb/s;

 ?。?)具有16個通信信道,可根據(jù)環(huán)境切換可靠通信信道。

  2.2 協(xié)調(diào)器網(wǎng)關(guān)

  考慮到協(xié)調(diào)器節(jié)點(diǎn)需要處理傳感器節(jié)點(diǎn)上傳的大量數(shù)據(jù),并能夠?qū)?shù)據(jù)通過串口有序地上傳到上位機(jī),要求協(xié)調(diào)器節(jié)點(diǎn)具有較快運(yùn)行速度和較強(qiáng)的數(shù)據(jù)處理能力,為此選用S3C2440A開發(fā)板和ZigBee CC2530無線收發(fā)模塊設(shè)計(jì)協(xié)調(diào)器網(wǎng)關(guān)節(jié)點(diǎn)。ZigBee模塊數(shù)據(jù)處理程序工作在協(xié)調(diào)器模式下,與處理器S3C2440之間通過SPI口進(jìn)行數(shù)據(jù)通信。協(xié)調(diào)器網(wǎng)關(guān)硬件框圖如圖3所示?;贏RM920T內(nèi)核的S3C2440A具有MMU單元和豐富的外部接口,主要片上功能特點(diǎn)如下:

003.jpg

  (1)主頻(FCLK):400 MHz;

  (2)存儲器:2 MB NOR Flash,256 MB NAND Flash,64 MB SDRAM;

 ?。?)外部存儲控制器:可擴(kuò)展8組128 MB的存儲空間,總?cè)萘窟_(dá)1 GB;

 ?。?)具有2路SPI口,3路URAT口;

 ?。?)CMOS攝像頭接口。

  3 系統(tǒng)軟件設(shè)計(jì)

  3.1 協(xié)調(diào)器節(jié)點(diǎn)程序

  采用IAR Embedded Workbench(7.60A)編程環(huán)境和TI的ZStack-CC2430-2.3.0-1.4.0(ZigBee 2007)協(xié)議棧設(shè)計(jì)ZigBee CC2530無線傳感網(wǎng)絡(luò)程序[7-9]。協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)啟動和配置網(wǎng)絡(luò),同時可以與網(wǎng)絡(luò)以外的設(shè)備進(jìn)行通信,起到網(wǎng)關(guān)的作用。根據(jù)設(shè)計(jì)目標(biāo),調(diào)用ZigBee協(xié)議棧中的API接口函數(shù)來實(shí)現(xiàn)無線傳感網(wǎng)絡(luò)程序設(shè)計(jì)。協(xié)調(diào)器的程序設(shè)計(jì)流程圖如圖4所示。程序設(shè)計(jì)方法如下:

004.jpg

 ?。?)初始化硬件、網(wǎng)絡(luò)層、任務(wù)、堆棧等。編寫init_spi()函數(shù)用來初始化SPI口,協(xié)調(diào)器組網(wǎng)程序初始化通過調(diào)用協(xié)議棧中的初始化函數(shù)來實(shí)現(xiàn),其中osal_init_system()函數(shù)用來初始化操作系統(tǒng),osalInitTasks()函數(shù)用來初始化任務(wù)。

 ?。?)信道掃描,根據(jù)掃描結(jié)果選擇一個編號在11~26間合適的信道,并設(shè)置網(wǎng)絡(luò)PAN ID(0x0000-0x3FFF),協(xié)調(diào)器采用的網(wǎng)絡(luò)PAN ID默認(rèn)為0x0000。接著啟動協(xié)調(diào)器,等待其他設(shè)備加入網(wǎng)絡(luò)。

 ?。?)在有傳感器節(jié)點(diǎn)加入網(wǎng)絡(luò)之后,調(diào)用接收函數(shù)。當(dāng)協(xié)調(diào)器收到從傳感器節(jié)點(diǎn)傳來的數(shù)據(jù)后,將數(shù)據(jù)發(fā)送到S3C2440處理器。

  3.2 傳感器節(jié)點(diǎn)程序

  傳感器節(jié)點(diǎn)負(fù)責(zé)采集環(huán)境參數(shù),并將其傳送到協(xié)調(diào)節(jié)點(diǎn)。傳感器節(jié)點(diǎn)分為終端節(jié)點(diǎn)和路由節(jié)點(diǎn)兩種,終端節(jié)點(diǎn)僅用于采集傳感器數(shù)據(jù)并發(fā)送給附近的路由器或協(xié)調(diào)器;路由器節(jié)點(diǎn)同時負(fù)責(zé)數(shù)據(jù)采集和數(shù)據(jù)信息的轉(zhuǎn)發(fā)。本文設(shè)計(jì)的路由節(jié)點(diǎn)程序和終端節(jié)點(diǎn)的程序除了有些配置參數(shù)不同,其他部分基本一致。傳感器節(jié)點(diǎn)在上電后,Z-Stack調(diào)用ZDO_StartDevice()函數(shù)來啟動設(shè)備進(jìn)行初始化,接著會讀取非易失性存儲器中的一系列配置參數(shù),如設(shè)備類型參數(shù)ZCD_NV_LOGICAL_TYPE,默認(rèn)的掃描信道參數(shù)ZCD_NV_CHANLIST等。其中設(shè)備的類型參數(shù)值決定著此設(shè)備的邏輯類型。本文傳感器節(jié)點(diǎn)程序中終端設(shè)備的類型參數(shù)值為ZG_DEVICETYPE_ENDDEVICE,路由器的類型參數(shù)值為ZG_DEVICETYPE_ROUTER。

005.jpg

  傳感器節(jié)點(diǎn)的程序設(shè)計(jì)流程圖如圖5所示。以DHT11數(shù)字溫濕度傳感器為例,傳感器節(jié)點(diǎn)程序設(shè)計(jì)主要步驟如下:

 ?。?)設(shè)計(jì)DHT11的裸機(jī)驅(qū)動程序,使CC2530可以驅(qū)動DHT11傳感器。包括配置傳感器IO口方向、接收緩存定義、延時、溫濕度寫入、傳感啟動、設(shè)置采集周期等。

 ?。?)將DHT11的裸機(jī)程序文件復(fù)制到協(xié)議棧Source文件夾下,在協(xié)議棧的APP目錄下點(diǎn)擊右鍵——Add——添加復(fù)制文件,這樣DHT11的裸機(jī)驅(qū)動程序被添加到Z-stack協(xié)議棧代碼中。在協(xié)議棧代碼中初始化傳感器引腳P0.6,通過周期性廣播函數(shù)每2 s讀取溫度傳感器1次。

 ?。?)調(diào)用API函數(shù)初始化硬件、網(wǎng)絡(luò)層、堆棧等,在發(fā)送函數(shù)中將數(shù)據(jù)打包并按指定方式發(fā)送給指定設(shè)備。

  3.3 ARM與ZigBee間SPI驅(qū)動程序設(shè)計(jì)

  在ARM上移植Linux操作系統(tǒng),要在Linux系統(tǒng)用戶空間使用SPI設(shè)備,首先應(yīng)在內(nèi)核空間移植相應(yīng)的設(shè)備驅(qū)動程序,接著在用戶空間編寫ARM端數(shù)據(jù)收發(fā)程序。在Linux環(huán)境下,設(shè)備被當(dāng)做文件進(jìn)行處理,對設(shè)備的操作都是通過操作文件系統(tǒng)來實(shí)現(xiàn)的[10]。ARM與CC2530間的SPI通信程序主要組成部分如下:

 ?。?)在內(nèi)核中注冊SPI設(shè)備,初始化驅(qū)動設(shè)備,使相關(guān)寄存器映射到虛擬內(nèi)存地址。設(shè)備注冊、建立設(shè)備文件、映射GPIO與SPI寄存器、注冊中斷均由spi_init()函數(shù)實(shí)現(xiàn)。

 ?。?)修改file_operations文件結(jié)構(gòu)。file_operations文件結(jié)構(gòu)用來對系統(tǒng)內(nèi)部I/O設(shè)備存取入口點(diǎn)向系統(tǒng)進(jìn)行說明。這樣應(yīng)用程序中通過read、write等關(guān)鍵字即可調(diào)用驅(qū)動程序相應(yīng)的函數(shù)。

  (3)SPI調(diào)用spi_open()打開設(shè)備,調(diào)用spi2440_write()發(fā)送數(shù)據(jù),調(diào)用spi2440_read()接收數(shù)據(jù),調(diào)用spi_close()函數(shù)關(guān)閉設(shè)備。

  (4)設(shè)備IO控制。spi_ioctl()函數(shù)負(fù)責(zé)接收應(yīng)用程序參數(shù),并對CC2530片選或復(fù)位操作。

 ?。?)interrup_irq()中斷函數(shù)實(shí)現(xiàn)。

4 系統(tǒng)測試

  在實(shí)驗(yàn)室使用4個CC2530開發(fā)板,1個作為協(xié)調(diào)器,1個作為路由器,2個作為終端節(jié)點(diǎn)對系統(tǒng)可行性及穩(wěn)定性進(jìn)行了測試。分別選擇CoordinatroEB-Pro、RouterEB-Pro、EndDeviceEB-Pro模式下載程序到這三類節(jié)點(diǎn)開發(fā)板。系統(tǒng)ZigBee終端和路由節(jié)點(diǎn)安裝了DHT11數(shù)字型空氣溫濕度傳感器,設(shè)置采集時間間隔為20 min,上位機(jī)監(jiān)測系統(tǒng)實(shí)時環(huán)境數(shù)據(jù)測試如圖6所示。設(shè)置動態(tài)分析時間間隔為10 min,通過上位機(jī)監(jiān)測系統(tǒng)可查看各傳感器上傳的環(huán)境信息動態(tài)分析圖如圖7所示。

006.jpg

5 結(jié)論

  本文分析了農(nóng)業(yè)環(huán)境發(fā)展現(xiàn)狀與應(yīng)用需求,針對當(dāng)前農(nóng)田環(huán)境監(jiān)測存在的不足,采用ARM結(jié)合ZigBee無線傳感技術(shù)設(shè)計(jì)了農(nóng)田環(huán)境監(jiān)測系統(tǒng)。該系統(tǒng)同時具備了ZigBee技術(shù)的成本低、功耗小、網(wǎng)絡(luò)結(jié)構(gòu)簡單、自組織傳輸和ARM嵌入式技術(shù)對海量數(shù)據(jù)信息的高速處理的特點(diǎn)。系統(tǒng)可實(shí)現(xiàn)對農(nóng)田環(huán)境信息有效采集、融合、傳輸、存儲、查詢與分析處理的一體化管理。

  參考文獻(xiàn)

  [1] 張帆,劉剛.基于.NET的農(nóng)業(yè)生產(chǎn)環(huán)境信息監(jiān)測系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(2):696-701.

  [2] 薛文英,傅平,張馨,等.基于組態(tài)平臺的日光溫室群監(jiān)控系統(tǒng)軟件設(shè)計(jì)與應(yīng)用[J].北方園藝,2011(9):53-56.

  [3] 于海業(yè),羅瀚,任順,等.ZigBee技術(shù)在精準(zhǔn)農(nóng)業(yè)上的應(yīng)用進(jìn)展與展望[J].農(nóng)機(jī)化研究,2012,8(8):66-68.

  [4] 張永梅.MySQL數(shù)據(jù)庫技術(shù)在公民健康信息管理系統(tǒng)中的應(yīng)用[D].西安:西安電子科技大學(xué),2010.

  [5] 王正強(qiáng).VC中應(yīng)用MSComm控件實(shí)現(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ā)器驅(qū)動設(shè)計(jì)[J].儀表技術(shù),2008(2):35-37.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。