基于ZigBee無線傳感器網(wǎng)絡(luò)的智能倉儲(chǔ)節(jié)點(diǎn)設(shè)計(jì)
主要任務(wù)有八個(gè),其中macEventloop負(fù)責(zé)MAC層事件處理;nwk event loop負(fù)責(zé)網(wǎng)絡(luò)層路由處理;Hal ProcessEvent完成硬件管理的任務(wù);MT ProcessEvent模塊主要用于網(wǎng)絡(luò)調(diào)試工具;應(yīng)用支持子層處理函數(shù)APS event loop一般用戶不要修改;ZDApp event loop為應(yīng)用層處理函數(shù),可根據(jù)需要修改;SennorApp ProcessEvent和SerialApp ProcessEvent為用戶應(yīng)用層處理函數(shù),前者主要用于終端和路由設(shè)備的溫度、濕度等數(shù)據(jù)采集及發(fā)送模塊,后者主要用于協(xié)調(diào)器與主機(jī)間串口通信模塊。
3.1 協(xié)調(diào)器節(jié)點(diǎn)軟件設(shè)計(jì)
網(wǎng)絡(luò)協(xié)調(diào)器需要在應(yīng)用層添加SerialApp ProcessEven處理函數(shù),協(xié)調(diào)器工作的主程序如圖2所示,協(xié)調(diào)器上電后,由啟動(dòng)代碼來初始化硬件系統(tǒng)和軟件架構(gòu)需要的各個(gè)模塊,然后協(xié)調(diào)器會(huì)在默認(rèn)的信道上建立一個(gè)網(wǎng)絡(luò),并指定網(wǎng)絡(luò)標(biāo)號(hào)PANID,協(xié)調(diào)器建網(wǎng)成功后進(jìn)入監(jiān)控模式,當(dāng)有路由或者終端節(jié)點(diǎn)申請(qǐng)加入時(shí),對(duì)其分配16位短地址;當(dāng)有數(shù)據(jù)請(qǐng)求時(shí)協(xié)調(diào)器會(huì)接收數(shù)據(jù)并將數(shù)據(jù)發(fā)送給PC機(jī)。本文引用地址:http://m.butianyuan.cn/article/155067.htm
本文中協(xié)調(diào)器采用的ZStack 2.4.0版本協(xié)議,協(xié)調(diào)器組網(wǎng)要進(jìn)行如下步驟:1)首先從NV中讀出設(shè)備的邏輯類型并將設(shè)備邏輯類型改寫為ZG_DEVICETYPE_COORDINATOR,設(shè)置設(shè)備的啟動(dòng)方式為ZCD_STARTOPT_AUTO_START;2)設(shè)備、任務(wù)初始化后,進(jìn)入事件處理函數(shù)處理ZB_ENT RY_EVENT事件,執(zhí)行zb_StartRequest(),該函數(shù)的功能是啟動(dòng)ZigBee協(xié)議棧,建立網(wǎng)絡(luò);3)設(shè)備啟動(dòng)完成后進(jìn)去回調(diào)函數(shù)zb_StartConfir m,如果設(shè)備成功啟動(dòng),修改設(shè)備狀態(tài)為APP START,如果設(shè)備啟動(dòng)失敗,設(shè)置定時(shí)器,重新執(zhí)行zb_StartRequest()。在與PC機(jī)通信時(shí)為了數(shù)據(jù)能夠及時(shí)收發(fā),降低能耗,需要在程序中增加采用中斷方式的UARTO處理函數(shù),再通過串口寫函數(shù)HaUARTWrite()在上位機(jī)上顯示接收到的信息。
3.2 終端節(jié)點(diǎn)軟件設(shè)計(jì)
終端節(jié)點(diǎn)需要在應(yīng)用層添加SennorApp ProcessEvent處理函數(shù),使節(jié)點(diǎn)具有數(shù)據(jù)采集和無線數(shù)據(jù)傳輸?shù)墓δ埽?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/傳感器">傳感器節(jié)點(diǎn)工作流程如圖3所示。終端節(jié)點(diǎn)需上電后立即搜尋并請(qǐng)求加入網(wǎng)絡(luò),直接在ZB_ENTRY_EVENT事件的處理中執(zhí)行zb_StartRequest(),新插入的節(jié)點(diǎn)必須通過已存在網(wǎng)絡(luò)中的全功能設(shè)備(包括路由器和協(xié)調(diào)器)才能成功進(jìn)入網(wǎng)絡(luò),在通信范圍內(nèi)的全功能設(shè)備會(huì)響應(yīng)請(qǐng)求加入網(wǎng)絡(luò)的數(shù)據(jù)包,然后為該節(jié)點(diǎn)分配一個(gè)唯一的網(wǎng)絡(luò)地址。然后進(jìn)入“睡眠-喚醒采集數(shù)據(jù)-睡眠”低功耗工作模式,其中通過編寫void myApp_Measure()函數(shù)來采集并發(fā)送數(shù)據(jù)。
4 節(jié)點(diǎn)的能耗分析
能耗是無線傳感器網(wǎng)絡(luò)的重要指標(biāo),決定網(wǎng)絡(luò)的使用壽命。為了降低整個(gè)網(wǎng)絡(luò)的綜合能耗,本設(shè)計(jì)中終端設(shè)備節(jié)點(diǎn)采用“睡眠-喚醒采集數(shù)據(jù)-睡眠”低功耗工作模式。
下面對(duì)網(wǎng)絡(luò)節(jié)點(diǎn)的電池壽命進(jìn)行了評(píng)估。測試中節(jié)點(diǎn)使用兩節(jié)1.5V的南孚電池供電。如果使節(jié)點(diǎn)每15min進(jìn)行一次數(shù)據(jù)采集的話,那么一次工作循環(huán)的能耗應(yīng)為節(jié)點(diǎn)采集一次數(shù)據(jù)發(fā)送的能量(35.58mAh)加上睡眠時(shí)的能耗(360 μAh),試驗(yàn)中3V電池電壓下工作,電量大約是2200mAh,經(jīng)實(shí)際測試節(jié)點(diǎn)上CC2530模塊最低電壓供電量為2.0V,傳感器模塊中濕度傳感器的最低工作電壓為2.4V,因此節(jié)點(diǎn)的最低供電電壓應(yīng)為2.4V。根據(jù)文獻(xiàn)中介紹的能耗估算方法可知:電池能提供約為440mAh的電量使得節(jié)點(diǎn)有效工作,經(jīng)計(jì)算得一個(gè)傳感器節(jié)點(diǎn)可以有效工作44519次,工作時(shí)間約為1.27年。
5 結(jié)論
基于CC2530的ZigBee技術(shù)的智能倉儲(chǔ)系統(tǒng)可以對(duì)目標(biāo)區(qū)域內(nèi)溫度、濕度等環(huán)境參數(shù)進(jìn)行無線遠(yuǎn)程采集與管理,開發(fā)成本低,能量消耗低,并且安裝維護(hù)比較簡單,只需一次安裝就可以長期使用,具備了傳統(tǒng)倉儲(chǔ)管理無法比擬的優(yōu)勢,較好地解決了傳統(tǒng)倉儲(chǔ)管理中設(shè)備復(fù)雜、效率低下等問題。
評(píng)論