大棚溫濕度無(wú)線實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)
引言
隨著農(nóng)業(yè)的發(fā)展,溫室大棚的數(shù)量不斷增多,規(guī)模不斷增大,而對(duì)溫濕度的控制是溫室大棚的重要控制環(huán)節(jié)。溫濕度的變化會(huì)影響到作物的生長(zhǎng),因此,需要將溫濕度控制在適合作物生長(zhǎng)的范圍內(nèi)。對(duì)于大棚內(nèi)溫濕度的采集,傳統(tǒng)的有線傳輸布線比較麻煩,成本高,可拓展性差。因此,本文提出了一種基于ZigBee無(wú)線通信技術(shù)的低成本、低功耗、擴(kuò)展性好、安全性和可靠性高的無(wú)線大棚溫濕度采集系統(tǒng)。
1系統(tǒng)總體設(shè)計(jì)
為了實(shí)現(xiàn)對(duì)溫室大棚的溫濕度采集和空間定位,本系統(tǒng)采用基于Z-STACK協(xié)議棧組建的樹形網(wǎng)。系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。該無(wú)線網(wǎng)絡(luò)由一個(gè)雙核協(xié)調(diào)器、路由器以及終端設(shè)備組成。其中,協(xié)調(diào)器負(fù)責(zé)建立、維護(hù)和管理無(wú)線網(wǎng)絡(luò),并收集所有終端設(shè)備采集的數(shù)據(jù),通過(guò)以太網(wǎng)與監(jiān)護(hù)終端進(jìn)行雙向通信。路由器負(fù)責(zé)最佳路由路徑的搜尋以及數(shù)據(jù)的轉(zhuǎn)發(fā),并作為定位系統(tǒng)中的參考節(jié)點(diǎn)。系統(tǒng)中的終端設(shè)備,作為定位系統(tǒng)中的盲節(jié)點(diǎn),負(fù)責(zé)溫濕度的采集。
2系統(tǒng)硬件設(shè)計(jì)
2.1雙核協(xié)調(diào)器的設(shè)計(jì)
協(xié)調(diào)器是整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的核心,是實(shí)現(xiàn)溫濕度采集系統(tǒng)無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)融合的關(guān)鍵設(shè)備。圖2所示為系統(tǒng)中的協(xié)調(diào)器硬件的整體框圖。該協(xié)調(diào)器采用雙MCU設(shè)計(jì),其主控核心是采用Cortex-M3內(nèi)核的STM32F107,負(fù)責(zé)協(xié)調(diào)器的數(shù)據(jù)存儲(chǔ)、處理和遠(yuǎn)程傳輸。協(xié)處理器由CC2530和CC2591組成,負(fù)責(zé)協(xié)調(diào)器的無(wú)線收發(fā)功能。主控核心與協(xié)處理器之間通過(guò)串口通信,其接口電路如圖3所示。雙核協(xié)調(diào)器通過(guò)以太網(wǎng)連接到監(jiān)控中心。STM32F107的以太網(wǎng)模塊包括一個(gè)符合802.3協(xié)議的MAC(介質(zhì)訪問(wèn)控制器)和專用DMA控制器。該模塊支持默認(rèn)的、獨(dú)立于介質(zhì)的接口(MMI)和精簡(jiǎn)的、獨(dú)立于介質(zhì)的接口(RMII)。本文通過(guò)AFIO_MAPR寄存器的選擇位來(lái)選擇RMII接口模式,電路選用集成并符合成本效益的快速以太網(wǎng)PHY控制芯片DM9161AEP。
2.2溫濕度采集電路
ZigBee無(wú)線終端對(duì)于空氣溫濕度的采集設(shè)備采用的是SHT10數(shù)字溫濕度傳感器,對(duì)于土壤溫濕度采集設(shè)備同樣采并與一個(gè)14位的A/D轉(zhuǎn)換器以及串行接口電路在同一芯片上實(shí)現(xiàn)無(wú)縫鏈接。SHT10采用I2C與CC2530處理器進(jìn)行數(shù)據(jù)通信。同時(shí),在測(cè)量和通訊結(jié)束后,SHT10會(huì)自動(dòng)轉(zhuǎn)入休眠模式。因此,該傳感器具有精度高、響應(yīng)速度快、抗干擾能力強(qiáng)、功耗低等優(yōu)點(diǎn)。SHT10與CC2530的接口電路如圖4所示。
3系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括上位機(jī)(監(jiān)控中心)和下位機(jī)(ZigBee無(wú)線傳感網(wǎng)絡(luò))設(shè)計(jì)兩部分,本文重點(diǎn)講述上位機(jī)對(duì)所采集溫濕度數(shù)據(jù)的處理算法和下位機(jī)的軟件設(shè)計(jì)方法。
3.1溫濕度監(jiān)控程序設(shè)計(jì)
終端節(jié)點(diǎn)要對(duì)大棚中的空氣溫濕度和土壤溫濕度分別進(jìn)行實(shí)時(shí)采集,然后經(jīng)每個(gè)子網(wǎng)的中心節(jié)點(diǎn)將這些溫濕度數(shù)據(jù)輸出,并由協(xié)調(diào)器接收數(shù)據(jù),再經(jīng)以太網(wǎng)傳送數(shù)據(jù)到監(jiān)控中心。系統(tǒng)將在監(jiān)控中心服務(wù)器中建立自己的數(shù)據(jù)庫(kù),負(fù)責(zé)將上傳的數(shù)據(jù)存儲(chǔ)到監(jiān)控中心預(yù)警數(shù)據(jù)庫(kù)中,然后通過(guò)上位機(jī)決策軟件自主設(shè)定符合作物生長(zhǎng)的溫濕度范圍,并對(duì)數(shù)據(jù)進(jìn)行綜合分析以產(chǎn)生相應(yīng)的預(yù)警和決策。其處理流程如圖5所示。
3.2下位機(jī)協(xié)調(diào)器軟件設(shè)計(jì)
由于協(xié)調(diào)器要完成多任務(wù)處理、多任務(wù)調(diào)度、數(shù)據(jù)存儲(chǔ)、TCP/IP通信協(xié)議以及無(wú)線通信協(xié)議等,需要實(shí)現(xiàn)的功能比較復(fù)雜,因此,本系統(tǒng)在協(xié)調(diào)器軟件設(shè)計(jì)中加入了嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-II和嵌入式TCP/IP協(xié)議棧,以提高系統(tǒng)的運(yùn)行效率和穩(wěn)定性。uC/OS-II是一種可移植、可固化、可剪裁、占先式多任務(wù)實(shí)時(shí)內(nèi)核,它具有占用空間小、執(zhí)行效率高、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn)。軟件應(yīng)用層、uC/OS-II操作系統(tǒng)、目標(biāo)處理器硬件等各個(gè)模塊之間關(guān)系如圖6所示。
因?yàn)閡C/OS-II操作系統(tǒng)不支持TCP/IP協(xié)議棧,所以,要實(shí)現(xiàn)以太網(wǎng)通信,需要移植LwIP(LightWeightIP)協(xié)議棧到STM32F107處理器上。移植版本為1.3.1的LwIP協(xié)議棧,主要是將LwIP源碼文件中的api、core、include和netif文件移植到軟件系統(tǒng)中,移植過(guò)程中需要修改的幾個(gè)重要源碼文件包括TcpTrans.c、TcpTrans.h、Netconfc、bsp.c、opt.h和Iwipopts.h。
協(xié)調(diào)器通過(guò)以太網(wǎng)與PC相連,負(fù)責(zé)接收由監(jiān)控軟件提供的各參考節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)的配置數(shù)據(jù),并發(fā)送給相應(yīng)的節(jié)點(diǎn),同時(shí),還將接收到的各節(jié)點(diǎn)所反饋的有效數(shù)據(jù)傳送給監(jiān)控軟件[2]o其協(xié)調(diào)器軟件處理流程如圖7所示。
圖7協(xié)調(diào)器軟件處理流程圖
3.3終端設(shè)備與路由器軟件設(shè)計(jì)
因?yàn)闇厥掖笈飪?nèi)的溫濕度不會(huì)產(chǎn)生驟變,所以,為了降低終端設(shè)備的功耗,我們采用休眠-喚醒模式。終端節(jié)點(diǎn)完成初始化后將主動(dòng)請(qǐng)求加入ZigBee網(wǎng)絡(luò),然后處于睡眠狀態(tài),每隔5min喚醒一次終端設(shè)備,以便采集溫濕度參數(shù)和定位信息,并將采集的數(shù)據(jù)通過(guò)ZigBee網(wǎng)絡(luò)發(fā)送給監(jiān)控中心,同時(shí)使設(shè)備進(jìn)入休眠狀態(tài),等待下一次采集事件的喚醒。其工作流程如圖8所示。
圖8終端節(jié)點(diǎn)軟件處理流程圖
路由器是一種已知坐標(biāo)的靜態(tài)參考節(jié)點(diǎn),首先應(yīng)配置其坐標(biāo)位置,這樣可以響應(yīng)終端采集設(shè)備的RSSI和坐標(biāo)請(qǐng)求報(bào)文,為終端設(shè)備提供RSSI和坐標(biāo)參考值,同時(shí),路由器還要負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā)。圖9所示是其工作流程圖。
圖9路由器軟件處理流程
3.4定位的實(shí)現(xiàn)
通過(guò)上位機(jī)決策軟件判決時(shí),如果某些終端節(jié)點(diǎn)采集的溫濕度值不在預(yù)先設(shè)置的溫濕度值范圍,則應(yīng)通過(guò)定位系統(tǒng)對(duì)該區(qū)域進(jìn)行單獨(dú)澆灌等處理,以有效地節(jié)約大棚的經(jīng)營(yíng)成本。本設(shè)計(jì)采用距離無(wú)關(guān)的定位算法,終端設(shè)備多次廣播發(fā)送計(jì)算RSSI的請(qǐng)求報(bào)文,路由節(jié)點(diǎn)收到終端設(shè)備的請(qǐng)求報(bào)文后,立即向終端設(shè)備發(fā)送包含平均RSSI和自身坐標(biāo)的報(bào)文,終端設(shè)備將平均RSSI值最好的那個(gè)路由器參考節(jié)點(diǎn)的坐標(biāo)作為終端設(shè)備的定位位置。因?yàn)槭艿秸系K物的影響,該定位算法難免會(huì)有誤差,增加路由節(jié)點(diǎn)數(shù)量會(huì)有效增加定位精度,但不利于控制成本。
4結(jié)語(yǔ)
本文設(shè)計(jì)了一種基于ZigBee技術(shù)的大棚溫濕度無(wú)線實(shí)時(shí)監(jiān)控系統(tǒng),同時(shí)介紹了該系統(tǒng)的軟硬件設(shè)計(jì)方法,提出了由雙MCU組成的高效雙核協(xié)調(diào)器設(shè)計(jì)理念。實(shí)踐證明,該系統(tǒng)對(duì)大棚內(nèi)溫濕度數(shù)據(jù)采集準(zhǔn)確,系統(tǒng)運(yùn)行穩(wěn)定,且具有組網(wǎng)靈活、可拓展性好、能實(shí)時(shí)采集溫濕度數(shù)據(jù)等優(yōu)點(diǎn),對(duì)于推動(dòng)農(nóng)業(yè)智能化發(fā)展,實(shí)現(xiàn)農(nóng)業(yè)生產(chǎn)自動(dòng)化等方面具有一定的現(xiàn)實(shí)意義。
20210918_61457997dce88__大棚溫濕度無(wú)線實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)