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

  摘  要: 針對(duì)農(nóng)業(yè)生產(chǎn)的自動(dòng)化管理需求,介紹了ARMZigBee技術(shù)相結(jié)合設(shè)計(jì)農(nóng)田環(huán)境監(jiān)測(cè)系統(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平臺(tái)結(jié)合Z-Stack協(xié)議棧構(gòu)建ZigBee無線監(jiān)測(cè)網(wǎng)絡(luò),,用于采集并傳輸影響農(nóng)作物生長的現(xiàn)場(chǎng)環(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)測(cè)系統(tǒng),。經(jīng)測(cè)試,網(wǎng)關(guān)節(jié)點(diǎn)能實(shí)時(shí)接收傳感器節(jié)點(diǎn)的數(shù)據(jù),,并通過串口成功上傳到上位機(jī)監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè),、動(dòng)態(tài)分析,、歷史查詢和異常報(bào)警功能,系統(tǒng)具有較好的穩(wěn)定性和實(shí)用性,。

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

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ā)展等方面的要求,,迫切需求社會(huì)效益,、經(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í)時(shí)監(jiān)測(cè)農(nóng)田環(huán)境多元信息,,及時(shí)進(jìn)行科學(xué)分析與預(yù)測(cè),根據(jù)農(nóng)田環(huán)境信息變化來確定最合適的管理決策,,幫助農(nóng)民科學(xué)種植,。

  目前,,關(guān)于基于嵌入式技術(shù)農(nóng)業(yè)應(yīng)用監(jiān)測(cè)系統(tǒng)的研究還較少,大多采用單片機(jī)和便攜式設(shè)備實(shí)現(xiàn)環(huán)境信息采集[1-2],。針對(duì)現(xiàn)代農(nóng)業(yè)自動(dòng)化管理的需求,,本文采用S3C2440處理器結(jié)合ZigBee技術(shù)設(shè)計(jì)了一個(gè)農(nóng)田環(huán)境監(jiān)測(cè)系統(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)測(cè)軟件,采用串口通信技術(shù)連接協(xié)調(diào)器網(wǎng)關(guān),,構(gòu)成分布式信息采集系統(tǒng),。該系統(tǒng)實(shí)現(xiàn)了對(duì)空氣溫度、空氣濕度,、光照強(qiáng)度,、土壤水分等環(huán)境信息的實(shí)時(shí)數(shù)據(jù)采集、傳輸,、存儲(chǔ),、查詢及分析處理,并且具有異常預(yù)警功能,,有利于降低農(nóng)業(yè)作業(yè)的成本,,提高效率,同時(shí)也為農(nóng)業(yè)工作者科學(xué)種植,、防治病蟲災(zāi)害提供可靠,、充分的科學(xué)依據(jù)。

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

  農(nóng)田環(huán)境監(jiān)測(cè)系統(tǒng),,主要包括數(shù)據(jù)采集終端,、數(shù)據(jù)通信鏈路和數(shù)據(jù)監(jiān)測(cè)中心三部分。其中數(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)測(cè)中心包括安裝了單機(jī)版監(jiān)測(cè)軟件的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ù)器中存儲(chǔ)[5-6],。系統(tǒng)可對(duì)影響農(nóng)作物生長的環(huán)境信息進(jìn)行實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè)、動(dòng)態(tài)分析和歷史查詢,,并且對(duì)超出標(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)測(cè)區(qū)域內(nèi)的環(huán)境信息,;無線通信模塊用于控制傳感器節(jié)點(diǎn)的數(shù)據(jù)采集、存儲(chǔ),、轉(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是一個(gè)低成本、低功耗的無線微控制器,,芯片上集成了CC2591射頻前端放大芯片、增強(qiáng)型8051內(nèi)核,、Flash存儲(chǔ)器,、8 KB RAM和許多其他增大功能。CC2530+CC2591(PA)模塊具有以下功能特點(diǎn):

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

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

 ?。?)具有16個(gè)通信信道,,可根據(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,;

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

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

  (4)具有2路SPI口,,3路URAT口,;

  (5)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é)啟動(dòng)和配置網(wǎng)絡(luò),同時(shí)可以與網(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

  (1)初始化硬件,、網(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ù),。

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

  (3)在有傳感器節(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)同時(shí)負(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ù)來啟動(dòng)設(shè)備進(jìn)行初始化,,接著會(huì)讀取非易失性存儲(chǔ)器中的一系列配置參數(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ū)動(dòng)程序,,使CC2530可以驅(qū)動(dòng)DHT11傳感器。包括配置傳感器IO口方向,、接收緩存定義、延時(shí),、溫濕度寫入,、傳感啟動(dòng)、設(shè)置采集周期等,。

 ?。?)將DHT11的裸機(jī)程序文件復(fù)制到協(xié)議棧Source文件夾下,在協(xié)議棧的APP目錄下點(diǎn)擊右鍵——Add——添加復(fù)制文件,,這樣DHT11的裸機(jī)驅(qū)動(dòng)程序被添加到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ū)動(dòng)程序設(shè)計(jì)

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

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

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

 ?。?)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è)備。

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

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

4 系統(tǒng)測(cè)試

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

006.jpg

5 結(jié)論

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

  參考文獻(xiàn)

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

  [2] 薛文英,傅平,,張馨,,等.基于組態(tài)平臺(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].電子測(cè)試,,2010,5(5):73-76.

  [6] FORTA B. MySQL必知必會(huì)[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ū)動(dòng)設(shè)計(jì)[J].儀表技術(shù),,2008(2):35-37.


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