<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線(xiàn)通信 > 設(shè)計(jì)應(yīng)用 > 基于ZigBee-WSN的溫濕度監(jiān)測(cè)系統(tǒng)

          基于ZigBee-WSN的溫濕度監(jiān)測(cè)系統(tǒng)

          作者: 時(shí)間:2018-09-07 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:針對(duì)環(huán)境監(jiān)布線(xiàn)復(fù)雜、數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性低等問(wèn)題,提出了一種基于ZigBee技術(shù)的分布式傳感器網(wǎng)絡(luò)平臺(tái)。選用SHT75傳感器實(shí)現(xiàn)對(duì)監(jiān)測(cè)點(diǎn)溫濕度信息的精準(zhǔn)采集,并通過(guò)由CC2530芯片和CC2591射頻前端組建的ZigBee網(wǎng)絡(luò)完成數(shù)據(jù)的遠(yuǎn)距離傳輸和匯聚。數(shù)據(jù)經(jīng)過(guò)閾值比較,可以進(jìn)行聲光報(bào)警或GSM短信報(bào)警。同時(shí),采集的溫濕度信息將通過(guò)Z-ScnsorMonitor軟件在PC端實(shí)時(shí)顯示和存儲(chǔ)。本系統(tǒng)提高了數(shù)據(jù)的實(shí)時(shí)性和可靠性,降低了環(huán)境監(jiān)測(cè)成本。
          關(guān)鍵詞:無(wú)線(xiàn)傳感器網(wǎng)絡(luò);ZigBee;溫濕度;CC2530

          引言
          無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)作為物聯(lián)網(wǎng)的一種未梢網(wǎng)絡(luò)和感知延伸層,已經(jīng)廣泛應(yīng)用于汽車(chē)電子、工業(yè)控制、家庭自動(dòng)化和環(huán)境監(jiān)測(cè)等領(lǐng)域。然而,現(xiàn)有的環(huán)境監(jiān)往往存在通信距離短、覆蓋面小、數(shù)據(jù)準(zhǔn)確性低、設(shè)備體積龐大等缺陷。同時(shí),由于監(jiān)測(cè)點(diǎn)大部在野外、機(jī)房、企業(yè)排污點(diǎn)等無(wú)人值守的地方,需要工作人員定期到現(xiàn)場(chǎng)檢查設(shè)備的運(yùn)行狀態(tài)并維護(hù),因此數(shù)據(jù)的實(shí)時(shí)性和故障排除的及時(shí)性得不到保證。鑒于此,本文設(shè)計(jì)了一種基于ZigBee技術(shù)的分布式傳感器網(wǎng)絡(luò)(DSN)平臺(tái),采用分布式采集,集中式管理策略,并以采集環(huán)境溫濕度信息為例,實(shí)現(xiàn)了遠(yuǎn)距離的實(shí)時(shí)溫濕度精準(zhǔn)采集。

          1 系統(tǒng)總體結(jié)構(gòu)和功能
          系統(tǒng)采用模塊化設(shè)計(jì)思想,根據(jù)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的系統(tǒng)架構(gòu)定義了傳感器節(jié)點(diǎn)、匯聚節(jié)點(diǎn)(協(xié)調(diào)器和路由器)和管理節(jié)點(diǎn)等三類(lèi)功能單元,系統(tǒng)總體結(jié)構(gòu)如圖1所示。傳感器節(jié)點(diǎn)根據(jù)監(jiān)測(cè)需要分布在不同地點(diǎn),具有小巧、可移動(dòng)和自適應(yīng)等特性。無(wú)線(xiàn)傳輸網(wǎng)絡(luò)負(fù)責(zé)對(duì)采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸、路由中繼和匯聚等,包括ZigBee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)和GSM移動(dòng)通信網(wǎng)絡(luò)。管理節(jié)點(diǎn)可以采用手機(jī)、PDA、嵌入式處理器或PC機(jī)等,這里采用PC機(jī)接收監(jiān)測(cè)點(diǎn)信息,并提供人機(jī)交互操作接口,實(shí)現(xiàn)環(huán)境數(shù)據(jù)的實(shí)時(shí)顯示和存儲(chǔ);采用手機(jī)終端實(shí)現(xiàn)異地監(jiān)控和報(bào)警。

          本文引用地址:http://www.ex-cimer.com/article/201809/388721.htm



          2 系統(tǒng)硬件電路設(shè)計(jì)
          2.1 無(wú)線(xiàn)傳輸單元
          無(wú)線(xiàn)傳輸單元是系統(tǒng)設(shè)計(jì)的核心,采用CC2530芯片作為系統(tǒng)的MCU,它是TI公司針對(duì)2.4GHz ISM頻段推出的第二代支持ZigBee/IEEE 802.15.4協(xié)議的片上系統(tǒng)集成芯片。CC2530內(nèi)部集成了增強(qiáng)型的8051內(nèi)核,8路輸入的12位ADC以及看門(mén)狗定時(shí)器等,故只需很少的外圍電路即可構(gòu)建一個(gè)簡(jiǎn)單的ZigBee節(jié)點(diǎn)。其中,必備的外圍電路包括晶振電路、電源電路、復(fù)位電路、無(wú)線(xiàn)收發(fā)電路等。由于技術(shù)相對(duì)成熟,這里不再贅述,可參看參考文獻(xiàn)。
          為保證網(wǎng)絡(luò)的傳輸質(zhì)量,擴(kuò)大網(wǎng)絡(luò)的覆蓋面積,選用TI公司的高性?xún)r(jià)比、高集成度的2.4 GHz射頻前端CC2591。它適合于低功耗、低電壓的無(wú)線(xiàn)傳輸系統(tǒng)。CC2591內(nèi)部集成的功率放大器(PA)輸出功率可達(dá)+22dBm,保證了信號(hào)的大功率輸出;同時(shí),還集成了接收靈敏度為6 dB的低噪聲放大器(LNA)。基于以上特性,采用CC2591射頻前端的ZigBee節(jié)點(diǎn)在無(wú)障礙情況下的傳輸距離可達(dá)500~800m,是原來(lái)距離的10倍以上,網(wǎng)絡(luò)覆蓋面積大大增強(qiáng)。CC2530芯片與CC2591射頻前端的硬件連接圖如圖2所示。


          使用CC2591的4個(gè)數(shù)字引腳PAEN、EN、HGM、RXTX控制芯片的狀態(tài)。接收信號(hào)時(shí),當(dāng)HGM=1采用高增益模式,增益為11dB;HGM=0采用低增益模式,增益為1 dB;發(fā)射信號(hào)時(shí),無(wú)論HGM為1或0或懸空,信號(hào)均放大。另外,CC2591的RF_P、RF_N引腳須與CC2530的RF_P、RF_N對(duì)應(yīng)連接,保證RF_P、RF_N在發(fā)送期間能從功率放大器輸出正/負(fù)向射頻信號(hào),在接收期間能輸入正/負(fù)向射頻信號(hào)到低噪聲放大器。
          2.2 數(shù)據(jù)采集單元
          傳統(tǒng)溫濕度采集往往采用溫度傳感器DS18B20和濕度傳感器HS1101相結(jié)合的方式,存在數(shù)據(jù)融合算法復(fù)雜、準(zhǔn)確性低等缺點(diǎn)。采用基于CMOSens技術(shù)的新型數(shù)字式溫濕度傳感器SHT75不僅提高了數(shù)據(jù)采集的精度,而且保證了系統(tǒng)的長(zhǎng)期穩(wěn)定性。其相對(duì)測(cè)濕精度為±1.8%RH,而在25℃時(shí)的測(cè)溫精度可以達(dá)到±0.3℃,因此特別適合于特殊環(huán)境下溫濕度的精準(zhǔn)采集。


          SHT75采用4引腳單排直插式封裝,供電范圍為2.4~5.5 V,溫濕度采集電路電路如圖3所示。DATA引腳為雙向的串行數(shù)據(jù)收發(fā)引腳,可以接CC2530的任意GPIO實(shí)現(xiàn)數(shù)據(jù)通信,這里連接引腳P0_3。另外,為避免信號(hào)沖突,CC2530應(yīng)采用低電平驅(qū)動(dòng)DATA引腳,故連接了一個(gè)10 kΩ的上拉電阻,當(dāng)CC2530輸出低電平時(shí),將信號(hào)拉至高電平驅(qū)動(dòng)DATA引腳。SCK為串行時(shí)鐘輸入引腳,連接至CC2530的P0_2引腳實(shí)現(xiàn)同步通信,控制讀出溫濕度數(shù)據(jù)。
          鑒于CC2530最小系統(tǒng)的可拓展件,每個(gè)傳感器節(jié)點(diǎn)可以連接1~3個(gè)傳感器。同時(shí),為了便于CC2530和GPIO的數(shù)據(jù)傳輸,所有ZigBee節(jié)點(diǎn)的應(yīng)用程序必須保證多個(gè)數(shù)據(jù)鏈路,而兩個(gè)對(duì)等ZigBee節(jié)點(diǎn)間則使用同一無(wú)線(xiàn)信道來(lái)和多個(gè)接口創(chuàng)建虛擬鏈路,以降低系統(tǒng)的成本。
          2.3 報(bào)警單元
          系統(tǒng)的報(bào)警單元采用聲光報(bào)警和遠(yuǎn)程短信報(bào)警相結(jié)合的方式,確保報(bào)警的及時(shí)準(zhǔn)確,無(wú)漏警。
          對(duì)于聲報(bào)警電路,鑒于無(wú)源蜂鳴器的頻率可調(diào),系統(tǒng)采用無(wú)源蜂鳴器實(shí)現(xiàn)溫濕度的區(qū)別報(bào)警。由于CC2530的I/O引腳電流最大只有20 mA,驅(qū)動(dòng)能力有限,故采用一個(gè)PNP型三極管8550放大電流來(lái)驅(qū)動(dòng)蜂嗚器。當(dāng)溫濕度超過(guò)安全閾值時(shí),通過(guò)特定程序?qū)ν廨敵霾煌l率的驅(qū)動(dòng)方波,發(fā)出不同報(bào)警信號(hào)。光報(bào)警電路采用普通發(fā)光二極管即可實(shí)現(xiàn),其正極通過(guò)限流電阻接3.3 V電源,確保灌電流不超過(guò)MCU的允許值,負(fù)極可直接接到CC2530的GPIO。聲光報(bào)警電路如圖4所示,兩者相互配合,可以更好地實(shí)現(xiàn)溫濕度的區(qū)別報(bào)警。


          另外,為實(shí)現(xiàn)系統(tǒng)的遠(yuǎn)程異地監(jiān)控和報(bào)警,在協(xié)調(diào)器節(jié)點(diǎn)增加GSM短信報(bào)警單元。選用德國(guó)西門(mén)子公司的TC35i模塊,它能夠支持中文短信,工作在GSM 900MHz和GSM 1800 MHz雙頻段;模塊主要由GSM基帶處理器、GSM射頻模塊、供電模塊、閃存、ZIF連接器、天線(xiàn)接口六部分組成。它的數(shù)據(jù)輸入/輸出接口實(shí)際上是一個(gè)串行異步收發(fā)器,其18引腳RXD、19引腳TXD均為T(mén)TL電平的串口通信引腳,分別連接到CC2530的GPIO即可實(shí)現(xiàn)串口數(shù)據(jù)的收發(fā)。使用時(shí)只需通過(guò)CC2530發(fā)送AT指令即可控制TC35i進(jìn)行短信報(bào)警。

          3 系統(tǒng)軟件設(shè)計(jì)
          3.1 數(shù)據(jù)采集程序
          SHT75的內(nèi)部前端集成有I2C總線(xiàn),故數(shù)據(jù)采集程序需完全按照I2C總線(xiàn)的通信協(xié)議進(jìn)行即CC2530的采集指令和接收指令均應(yīng)遵照SHT75的時(shí)序編寫(xiě)。CC2530向SHT75發(fā)送的測(cè)溫命令為00000011、測(cè)濕命令為00000101,所有數(shù)據(jù)均從MSB開(kāi)始。在測(cè)量和通信結(jié)束后,SHT75自動(dòng)轉(zhuǎn)入休眠模式。
          傳感器采集的溫濕度數(shù)據(jù)可以通過(guò)串口調(diào)試助手SComAssistant在PC端顯示,圖5為SHT75采集數(shù)據(jù)。可以看出,當(dāng)前環(huán)境的相對(duì)濕度范圍為49.5~50.1%RH,溫度為25.4~25.7℃,數(shù)據(jù)穩(wěn)定可靠,誤差可控,可以完成對(duì)溫濕度信息的精準(zhǔn)采集。


          3.2 軟件設(shè)計(jì)
          ZigBee網(wǎng)絡(luò)的建立和運(yùn)行是整個(gè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)系統(tǒng)的關(guān)鍵,關(guān)系到數(shù)據(jù)的可靠性和系統(tǒng)的穩(wěn)定性。整個(gè)系統(tǒng)的工作流程如圖6所示。
          系統(tǒng)上電后,首先進(jìn)行硬件初始化和網(wǎng)絡(luò)初始化。CC2530采用ZigBee2007協(xié)議棧,該協(xié)議棧的初始化可由TI公司提供的Z-Stack完成,Z-Stack是一種輪轉(zhuǎn)查詢(xún)式操作系統(tǒng),能夠完成硬件初始化、網(wǎng)絡(luò)初始化等絕大部分功能。ZigBee網(wǎng)絡(luò)的建立實(shí)際上是通過(guò)協(xié)調(diào)器與其子節(jié)點(diǎn)的“綁定”實(shí)現(xiàn)的,首先由協(xié)調(diào)器通過(guò)網(wǎng)絡(luò)層函數(shù)NLME_NetworkFormationRequest()建立網(wǎng)絡(luò),并通過(guò)zb_AllowBind()函數(shù)進(jìn)入允許綁定模式。子節(jié)點(diǎn)發(fā)出綁定請(qǐng)求zb_BindDevice()后,協(xié)調(diào)器建立綁定表并響應(yīng)綁定請(qǐng)求,綁定成功即意味著通信建立。當(dāng)其他節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí)執(zhí)行相同步驟,并不斷更新綁定表。綁定表中包含了節(jié)點(diǎn)的16位網(wǎng)絡(luò)地址、64位IEEE地址和端口號(hào)。網(wǎng)絡(luò)地址用于路由機(jī)制和數(shù)據(jù)傳輸,而IEEE地址才是節(jié)點(diǎn)的唯一標(biāo)識(shí)。ZigBee網(wǎng)絡(luò)建立過(guò)程如圖7所示。
          系統(tǒng)初始化完畢后,前置節(jié)點(diǎn)便開(kāi)始采集數(shù)據(jù)。數(shù)據(jù)經(jīng)無(wú)線(xiàn)網(wǎng)絡(luò)傳輸和匯聚將在PC端實(shí)時(shí)顯示,閾值比較后可以進(jìn)行聲光報(bào)警和短信報(bào)警。
          3.3 管理節(jié)點(diǎn)軟件
          管理節(jié)點(diǎn)選擇TI公司配套的Z-SensorMonitor軟件,它可以形象地顯示網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和各節(jié)點(diǎn)的狀態(tài)信息。另外,Z-SensorMonitor提供了數(shù)據(jù)存儲(chǔ)和恢復(fù)功能,能將十六進(jìn)制數(shù)據(jù)輸出到后綴為.log的文本中,并加入時(shí)間戳,便于今后對(duì)系統(tǒng)狀態(tài)的調(diào)閱和再現(xiàn)。故采用Z-SensorMonitor能實(shí)時(shí)地顯示各監(jiān)測(cè)點(diǎn)的溫濕度情況以及整個(gè)網(wǎng)絡(luò)的運(yùn)行狀況,圖8為實(shí)驗(yàn)過(guò)程中采集到的實(shí)時(shí)網(wǎng)絡(luò)狀態(tài)信息。



          結(jié)語(yǔ)
          通過(guò)對(duì)該無(wú)線(xiàn)傳感器網(wǎng)絡(luò)系統(tǒng)進(jìn)行功能測(cè)試發(fā)現(xiàn),SHT75傳感器節(jié)點(diǎn)能準(zhǔn)確地采集到監(jiān)測(cè)點(diǎn)的溫濕度信息,數(shù)據(jù)符合監(jiān)測(cè)點(diǎn)的實(shí)際情況。經(jīng)過(guò)ZigBee無(wú)線(xiàn)傳感器網(wǎng)絡(luò)和GSM移動(dòng)通信網(wǎng)絡(luò)傳輸后,數(shù)據(jù)穩(wěn)定可靠,達(dá)到了遠(yuǎn)距離、大范圍的實(shí)時(shí)溫濕度精準(zhǔn)采集要求。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();