基于無線傳感器網(wǎng)絡(luò)的大棚環(huán)境參數(shù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了實(shí)現(xiàn)溫室大棚內(nèi)的溫度、濕度和CO2濃度的數(shù)據(jù)采集,設(shè)計(jì)了一種超低功耗的無線傳感器網(wǎng)絡(luò)系統(tǒng),解決了傳統(tǒng)監(jiān)測(cè)系統(tǒng)布線復(fù)雜、維護(hù)困難等問題。分析了無線測(cè)量節(jié)點(diǎn)所采用微控制器、傳感器和無線收發(fā)器的工作特點(diǎn)以及功耗,描述了無線節(jié)點(diǎn)的結(jié)構(gòu)原理,給出了系統(tǒng)軟件的設(shè)計(jì)方案和通信方法。實(shí)測(cè)結(jié)果表明,所設(shè)計(jì)的系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)單可靠,功耗較小,通信距離較遠(yuǎn),達(dá)到了大棚環(huán)境參數(shù)測(cè)量的設(shè)計(jì)要求。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);超低功耗;溫室大棚;溫濕度;CO2濃度
隨著人們對(duì)新鮮蔬菜需求的不斷提高以及土地資源的日漸緊缺,生產(chǎn)效率較高的溫室農(nóng)業(yè)得到了迅速發(fā)展。溫室大棚內(nèi)溫濕度等因素對(duì)農(nóng)作物的生長(zhǎng)有著直接影響,對(duì)溫室大棚內(nèi)的溫度、濕度及二氧化碳等參數(shù)的檢測(cè)和控制至關(guān)重要。傳統(tǒng)的溫室數(shù)據(jù)采集工作大多是采用人工抄表或預(yù)先布線的有線采集方式。人工方式的缺點(diǎn)是工作量大、費(fèi)用高、難以保障數(shù)據(jù)的實(shí)時(shí)性和有效性,而有線數(shù)據(jù)采集存在著布線
費(fèi)用高、測(cè)量節(jié)點(diǎn)位置變化時(shí)需要改變線路走向及長(zhǎng)度等諸多不利因素。
文中采用無線傳感器網(wǎng)絡(luò)技術(shù)設(shè)計(jì)了一種溫室大棚溫度、濕度及二氧化碳參數(shù)測(cè)量系統(tǒng),具有超低功耗、不需布線、測(cè)量節(jié)點(diǎn)移動(dòng)方便等優(yōu)點(diǎn),克服了人工抄表和有線數(shù)據(jù)采集系統(tǒng)的諸多缺點(diǎn)。
1 硬件設(shè)計(jì)
無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的電路原理圖如圖1所示。它主要由MCU控制單元、射頻收發(fā)單元、溫濕度傳感器、二氧化碳濃度傳感器構(gòu)成。所有單元均采用低功耗器件,MCU采用中穎電子的具有休眠功能的SH79F64單片機(jī),溫度和濕度測(cè)量單元采用SENSIRON公司的具有休眠功能的SHT75溫濕度傳感器,CO2濃度測(cè)量采用GSS公司的功率僅為3.5 mW的COZIR傳感器,射頻收發(fā)單元采用SILICON LABS公司的具有休眠功能的SI4432無線收發(fā)器。所有器件均采用3.3 V供電,便于電池集中供電。
上位機(jī)無線模塊硬件設(shè)計(jì)可采用類似結(jié)構(gòu),取消傳感器部分,增加SILICON LABS公司的CP2102單芯片USB與UART橋接單元,通過USB口連接PC機(jī)。PC通過USB接口給無線模塊供電。
1.1 MCU單元
MCU采用中穎電子生產(chǎn)的SH79F64低功耗單片機(jī),SH79F64是一顆低功耗高性能8位芯片,SH79F64內(nèi)嵌加強(qiáng)8051核,具有高速高效率特性。在同樣振蕩頻率下,較之傳統(tǒng)的8051芯片它具有運(yùn)行更快速的優(yōu)越特性。它保留了標(biāo)準(zhǔn)8051芯片的大部分特性。這些特性包括內(nèi)置256字節(jié)RAM和3個(gè)16位定時(shí)器/計(jì)數(shù)器,2個(gè)EUART,外部中斷INT0和INT1。此外,SH79F64還集成了外部2776字節(jié)RAM(不包括LCD RAM),1路8位PWM輸出,外部中斷INT2和INT3,可兼容8052芯片的16位定時(shí)器/計(jì)數(shù)器(Timer3)和適合存儲(chǔ)程序和數(shù)據(jù)的64k字節(jié)flash以及1 k字節(jié)類EEPROM存儲(chǔ)器。
除具有普通單片機(jī)的功能,SH79F64還具有其他特點(diǎn):
1)強(qiáng)大的處理能力 SH79F64雖然是8位單片機(jī),但是機(jī)器周期為1個(gè)振蕩器周期,而傳統(tǒng)型51內(nèi)核機(jī)器周期為12個(gè)振蕩器周期。其指令執(zhí)行效率約為同頻率的傳統(tǒng)8051的8~10倍。另外還提供增強(qiáng)型的乘/除法指令,支持16 bitx8bit和16 bit÷8 bit運(yùn)算,提供雙DPTR指針,用戶在使用查表,數(shù)據(jù)搬移等操作時(shí)會(huì)更方便。
2)豐富的數(shù)據(jù)存儲(chǔ)區(qū)域 SH79F64提供64 k字節(jié)FLASH ROM,每1 k字節(jié)為1個(gè)扇區(qū)(SECTOR),每個(gè)扇區(qū)可分別進(jìn)行加密。如果沒有加密,每個(gè)扇區(qū)可分別單獨(dú)進(jìn)行編程和擦除。整體擦除(MASS ERASE)可以擦除所有扇區(qū)。SH79F64的全部64 k BYTE都可用于存儲(chǔ)程序和數(shù)據(jù),存放在FLASH ROM中的程序可以對(duì)不在同一扇區(qū)的FLASHROM編程(SSP模式),因此可以當(dāng)作EEROM來使用。另外提供1 k字節(jié)的客戶信息區(qū)/類EEPRO M塊區(qū)用于存放用戶數(shù)據(jù),每個(gè)扇區(qū)(SECTOR)為256字節(jié)。
3)高性能模擬技術(shù)及豐富的片上外圍模塊 SH79F64內(nèi)部集成的有:3個(gè)16位定時(shí)/計(jì)數(shù)器T0、T1和T2,1個(gè)16位定時(shí)器T3,看門狗定時(shí)器,1路8位PWM定時(shí)器,4/5x40/39段LCD驅(qū)動(dòng)器,EUART、IR、TWI和SPI等標(biāo)準(zhǔn)通信模塊,8通道10位AD轉(zhuǎn)換器,蜂鳴器輸出等。
4)超低功耗 其供電電壓為2.4~3.6 V,內(nèi)建低電壓復(fù)位功能和低電壓檢測(cè)功能。系統(tǒng)可采用雙時(shí)鐘方式,支持兩種省電模式:IDLE模式和掉電模式。當(dāng)系統(tǒng)時(shí)鐘采用高速時(shí)鐘,外圍模塊采用32 768 Hz時(shí)鐘時(shí),掉電模式將停止CPU時(shí)鐘信號(hào),用于定時(shí)器3的時(shí)鐘可以開啟,此時(shí)的工作電流不超過20μA。
MCU是無線測(cè)量節(jié)點(diǎn)的核心,在無事件發(fā)生時(shí)工作于掉電模式,當(dāng)無線模塊收到數(shù)據(jù)時(shí)會(huì)通過IO口喚醒SH79F64進(jìn)人活動(dòng)工作狀態(tài)。SH79 F64功能豐富,編程方式靈活,完全可以滿足無線測(cè)量節(jié)點(diǎn)的設(shè)計(jì)需求。
1.2 無線收發(fā)單元
Si4432芯片是Silicon Labs公司推出的一款高集成度、低功耗、多頻段的EZRadioPRO系列無線收發(fā)芯片,早期生產(chǎn)的V2版本不太穩(wěn)定,改進(jìn)后的B1版本性能比較穩(wěn)定。其工作電壓為1.8~3.6 V,20引腳QFN封裝(4 mmx4 mm),可工作在240~930 MHz的頻段;內(nèi)部集成分集式天線、功率放大器、喚醒定時(shí)器、數(shù)字調(diào)制解調(diào)器、64字節(jié)的發(fā)送和接收數(shù)據(jù)FIFO,以及可配置的GPIO等。Si4432在使用時(shí)所需的外部元件很少,1個(gè)30 MHz的晶振、幾個(gè)電容和電感就可組成一個(gè)高可靠性的收發(fā)系統(tǒng),設(shè)計(jì)簡(jiǎn)單,且成本低。
Si4432的接收靈敏度達(dá)到-121 dB,可提供極佳的鏈路質(zhì)量,在擴(kuò)大傳輸范圍的同時(shí)將功耗降至最低;最小濾波帶寬達(dá)2.6 kHz,具有極佳的頻道選擇性;在240~930 MHz頻段內(nèi),不加外部功率放大器時(shí)的最大輸出功率就可達(dá)+20 dBm,設(shè)計(jì)良好時(shí)收發(fā)距離最遠(yuǎn)可達(dá)2km。Si443 2可適用于無線數(shù)據(jù)通信、無線遙控系統(tǒng)、小型無線網(wǎng)絡(luò)、小型無線數(shù)據(jù)終端、無線抄表、門禁系統(tǒng)、無線遙感監(jiān)測(cè)、水文氣象監(jiān)控、機(jī)器人控制等諸多領(lǐng)域。
Si4432有多種工作模式,本設(shè)計(jì)用到其中的3種模式:發(fā)射模式,接收模式,睡眠模式。當(dāng)芯片工作在睡眠模式時(shí),外部晶振關(guān)閉,喚醒定時(shí)器采用內(nèi)部的32.768 kHz晶振作為時(shí)鐘源,它每周期在nIRQ腳上產(chǎn)生一個(gè)低電平,這個(gè)信號(hào)可以通過外部中斷喚醒SH79F64,SH79F64通過SPI口讀取相關(guān)寄存器狀態(tài)就可發(fā)現(xiàn)Si4432是否收到前導(dǎo)碼或同步碼,從而決定是否讓Si4432進(jìn)入接收狀態(tài)。Si4432在睡眠狀態(tài)時(shí),電流僅為1μA。
為了防止射頻干擾,無線收發(fā)單元采用射頻板材單獨(dú)制版,并用金屬罩對(duì)其進(jìn)行屏蔽。本文的設(shè)計(jì)方案中,GP1接單片機(jī)的INT0口,GP2接P5.1口,GP3接P0.6口,GP4接P0.6.GP5接P5.0。
1.3 低功耗傳感器單元
溫度和濕度測(cè)量單元采用SENSIRON公司的具有休眠功能的SHT75溫濕度傳感器,傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D轉(zhuǎn)換器以及串行接口電路在同一芯片上實(shí)現(xiàn)無縫連接。SHT75采用串行接口,它的分辨率可以根據(jù)現(xiàn)場(chǎng)的采集速率進(jìn)行調(diào)整,一般情況下默認(rèn)的測(cè)量分辨率分別為14 bit(溫度)、12bit(濕度),如果在高速采集中就可分別降至12 bit和8 bit,溫度的量程范圍:-40~123.8℃,濕度的量程范圍:0~100%RH。它操作比較簡(jiǎn)單,只需用一組“啟動(dòng)傳輸”時(shí)序,就能實(shí)現(xiàn)傳感器數(shù)據(jù)傳輸?shù)某跏蓟?,同時(shí),在測(cè)量和通訊結(jié)束后,SHT75會(huì)自動(dòng)轉(zhuǎn)入休眠模式,這大大減少了功耗。
文中對(duì)SHT75采用3.3 V供電,SHT75的SCK腳接單片機(jī)的SCL口,DATA腳接單片機(jī)的SDA口。
CO2濃度測(cè)量采用GSS公司的COZIR-W-100型傳感器,其功耗僅3.5 mW,可溫度補(bǔ)償,濕度補(bǔ)償,以及感知白天黑夜的環(huán)境狀態(tài)。預(yù)熱時(shí)間僅10 s,量程100%。性能:1)功耗3.5 mW;2)峰值電流33 mA;3)平均電流小于1.1 mA;4)電源3.3 V;5)T90小于4 s;6)標(biāo)準(zhǔn)型號(hào)溫度范圍0~50℃(可擴(kuò)展-25~55℃);7)濕度適用范圍0~95%RH;8)存儲(chǔ)溫度-30~+70℃;9)尺寸:傳感器18 mmx20 mm。
COZIR連接簡(jiǎn)單,除了3.3 V電源和地線外,還有RX和TX引腳可直接連接單片機(jī)的UART口。所有的通信均使用ASCII碼,命令格式按照文獻(xiàn)的規(guī)定執(zhí)行。傳感器有3種工作模式:命令模式(Command Mode),流模式(Streaming Mode)和查詢模式(Polling Mode)。
命令模式適用于從傳感器提取大批量數(shù)據(jù)時(shí)使用,此時(shí)傳感器處于停止測(cè)量狀態(tài),其功耗小于3.5 mW。流模式是工廠默認(rèn)模式,此時(shí)傳感器每秒產(chǎn)生2個(gè)測(cè)量數(shù)據(jù),除了正處于測(cè)量的過程中以外,傳感器會(huì)及時(shí)處理收到的命令,所以傳感器在處理命令時(shí)可能會(huì)出現(xiàn)100 ms的延遲,這種工作模式的功耗為3.5 mW。查詢模式時(shí)傳感器并不產(chǎn)生數(shù)據(jù),但是周期性的測(cè)量在后臺(tái)繼續(xù),當(dāng)傳感器收到讀取命令時(shí),會(huì)將最近的測(cè)量值轉(zhuǎn)換成數(shù)據(jù)送出。查詢模式的功耗與查詢頻率有關(guān),但是幾乎接近3.5mW。
文中將COZIR的通訊口接到單片機(jī)的EUART0口,COZIR工作在查詢模式(Polling Mode)。
2 軟件設(shè)計(jì)
軟件的開發(fā)環(huán)境為Keil uVision3,使用C51語言。系統(tǒng)的無線通信部分采用標(biāo)準(zhǔn)MODBUS協(xié)議,為點(diǎn)對(duì)多點(diǎn)的通信方式。主機(jī)采用同樣的電路,去除傳感器部分,增加USB與UART橋接芯片CP2102,通過USB口連接PC機(jī)。PC機(jī)在安裝Silicon Labs公司提供的免費(fèi)驅(qū)動(dòng)程序后,通過USB接口虛擬出一個(gè)COM口。從機(jī)為無線測(cè)量節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)都擁有一個(gè)唯一的地址,工作方式為主站輪詢,從站監(jiān)聽的方式。節(jié)點(diǎn)軟件的主要流程如圖3所示。
2.1 程序流程
系統(tǒng)初始化時(shí),MCU進(jìn)入掉電模式,Timer3選擇32768 kHz晶振作時(shí)鐘源,定時(shí)1 min中斷。Si4432進(jìn)入睡眠模式,開啟Si4432的Wake-up Timer,定時(shí)31s。有兩個(gè)事件會(huì)將MCU喚醒:Timer3定時(shí)和Si4432的nIRO引起的外部中斷。
在Timer3的中斷服務(wù)子程序中做兩件工作:1)軟時(shí)鐘計(jì)時(shí)。由于系統(tǒng)對(duì)實(shí)時(shí)性要求不高,時(shí)鐘可以分鐘為最低計(jì)時(shí)單位。并且上位機(jī)可定期通過寫指令對(duì)時(shí)鐘進(jìn)行校準(zhǔn);2)采集數(shù)據(jù)。從溫濕度傳感器和CO2濃度傳感器讀取數(shù)據(jù)并按規(guī)定格式存放在規(guī)定緩沖區(qū),等待上位機(jī)讀取。
MCU的INT0設(shè)置為低電平觸發(fā),連接Si4432的nIRQ腳,每31秒Si4432的Wake-up Timer使得nIRQ腳產(chǎn)生低電平,從而引發(fā)MCU外部中斷。在中斷服務(wù)子程序中MCU通過SPI口讀取Si4432的iswdet和ipreaval位,以判斷是否接收到前導(dǎo)碼或同步碼。若有,則命Si4432進(jìn)入RX狀態(tài),繼續(xù)接收數(shù)據(jù)并處理,否則回到休眠狀態(tài)。上位機(jī)要喚醒無線節(jié)點(diǎn),需連續(xù)發(fā)40 s(大于31 s)喚醒信號(hào),這對(duì)于供電充分的上位機(jī)來說不是問題。
2.2 通信協(xié)議
通信協(xié)議采用MODBUS協(xié)議的RTU傳輸模式。MODBUS協(xié)議是免費(fèi)的用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議。在我國(guó),MODBUS已經(jīng)成為國(guó)家標(biāo)準(zhǔn)GB/T195 82-2008??梢灾С侄喾N電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無線等。
在本系統(tǒng)中,主機(jī)(PC)直接面對(duì)的是虛擬COM口,因此可方便地采用MODBUS協(xié)議,主機(jī)界面可采用簡(jiǎn)單的串口調(diào)試工具,如SSCOM等,也可以由用戶自行開發(fā)。通過USB口連接主機(jī)的無線節(jié)點(diǎn)與從機(jī)之間采用透明傳輸,由上向下傳輸數(shù)據(jù)前需增加喚醒過程。從機(jī)(無線測(cè)量節(jié)點(diǎn))向上發(fā)送數(shù)據(jù)時(shí),則按照MODBUS幀格式組建數(shù)據(jù)包連續(xù)發(fā)送。
MODBUS通信使用主——從技術(shù),即僅一個(gè)設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其他設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一個(gè)消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。
在本系統(tǒng)中,通信地址的分配情況如下:
*電子標(biāo)簽區(qū) 0x0000~0x00BF
*工作參數(shù)區(qū) 0x2000~0x2022
*實(shí)時(shí)數(shù)據(jù)區(qū) 0x3000~0x307A
其中電子標(biāo)簽和工作參數(shù)位于MCU的類EEPROM區(qū)域,斷電情況下不會(huì)丟失。電子標(biāo)簽用于存放無線節(jié)點(diǎn)的產(chǎn)品代碼等信息,工作參數(shù)用于存放無線節(jié)點(diǎn)的數(shù)據(jù)傳輸速率、頻段、無線發(fā)送功率等參數(shù)。實(shí)時(shí)數(shù)據(jù)區(qū)位于RAM區(qū),在MCU掉電模式下能夠得到保存。實(shí)時(shí)數(shù)據(jù)的存放格式如表1所示。每次讀取的采樣數(shù)據(jù)和時(shí)間存放在兩個(gè)位置,一是地址0x3003-0x3008,二是沿地址0x3009-0x307A順序循環(huán)存放。
3 結(jié)束語
文中設(shè)計(jì)的超低功耗大棚無線傳感器網(wǎng)絡(luò)系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)單,成本低,技術(shù)開發(fā)成熟,所采用的器件均為超低功耗器件,使得整個(gè)系統(tǒng)的功耗很低。由于大棚參數(shù)測(cè)量對(duì)實(shí)時(shí)性要求不高,無線節(jié)點(diǎn)的元器件大部分時(shí)間處于低功耗狀態(tài),大大降低了系統(tǒng)的功耗。所采用的Si443 2無線收發(fā)器,在不增加外部功放電路的情況下,將其輸出功率設(shè)置為+20 dBm,在434 MHz頻段工作時(shí),實(shí)測(cè)有效傳輸距離達(dá)600 m,誤包率低于1%,特別適用于分布面積較廣的大棚環(huán)境。該系統(tǒng)無線傳輸距離遠(yuǎn)、無線測(cè)量節(jié)點(diǎn)功耗低,同樣適用于對(duì)實(shí)時(shí)性要求不高的倉庫環(huán)境監(jiān)測(cè)等應(yīng)用場(chǎng)合,具有較大的推廣價(jià)值和廣闊的市場(chǎng)前景。