無線傳感器網絡技術在人體參數采集中的應用
在配件SensorNet_C中,通過連接配件CC2430ActiveMessageC使用模塊組件CC2430ActiveMessageP中提供的射頻功能。CC2430ActiveMessageP是射頻堆棧中的頂層組件,提供單跳通信實現方法。通過連接配件McuSleepC使用模塊組件McuSleepP中的MCU電源管理功能,實現MCU睡眠、定時和啟動等功能,以降低節點功耗。需要在使用McuSleepP組件的上層組件SensorNet_M中實現事件McuSleepControl.beforeSleep()和McuSleepControl.afterWakeup(),以保護和恢復睡眠前后的狀態。
溫濕度傳感器SHT10具有兩線制串行接口,輸出已校準數字信號。這里定義SHT10的接口SHT如下,需要在模塊組件SHT10_M中實現接口所定義的命令。
interface SHT{
command error_t read(); /*在傳感器模塊組件STH10_M中實現*/
event void readDone(error_t result,uint16_t temperature,uint16_t humidity); /*在頂層模塊組件SensorNodeSHT_M中實現*/
}
中心節點實現射頻數據接收,然后通過串口將數據送給PC機。其頂層配置文件如下:
configuration CenterNode_C{
}
implementation{
components CenterNode_M; /*頂層模塊組件*/
components MainC;
components CC2430ActiveMessageC as ActiveMessageC;
components ABSC; /*串口通信控制組件*/
CenterNode_M.Boot->MainC.Boot;
CenterNode_M.RFControl->ActiveMessageC;
CenterNode_M.AMPacket->ActiveMessageC;
CenterNode_M.Packet->ActiveMessageC;
CenterNode_M.Receive->ActiveMessageC.Receive;
CenterNode_M.ABS->ABSC;
}
2 傳感器節點功耗計算
對人體生理參數進行采集,尤其在室外應用中,低功耗對于電池供電的傳感器節點來說非常重要。以下應用參考文獻[6]中的方法對本設計中的傳感器節點的功耗進行計算。采用3.3 V直流電源供電,將一個1%精度的10 Ω電阻與CC2430EM串聯,通過測量電阻兩端的電壓降來計算一個采樣周期中各個時間段的電流。設采樣周期T=10 s,CC2430射頻輸出功率設置為100%,圖3為使用示波器TPS2024在傳感器節點發送數據時獲取的電阻兩端電壓變化波形圖,水平方向2.50 ms/div,垂直方向100 mV/div.表1為活動期間的電流消耗。
一個采樣周期T內低功耗模式時間(A段、G段,CC2430在PM2模式下):
TPM2=T-Ton=10000 ms-20.45 ms=10 451.65 ms
低功耗模式下(CC2430在PM2模式下)電流消耗:
0.000 5 mA×10 451.65 ms=5.225 8 mA·ms
一個采樣周期T內總電流消耗:
472.1 mA·ms+5.225 8 mA·ms)/(3 600 000 ms/h)=1.326×10-4 mAh/10 s
每小時消耗電流:1.326×10-4×360=0.047 74 mA
假設使用60 mAh的紐扣電池,則可以使用時間為:60 mAh/0.047 74 mA=1 256 h≈52 天
本文采用nesC語言設計了基于TinyOS的中心節點和傳感器節點程序,實現了使用CSMA/CA協議的星型無線傳感器網絡,并以溫濕度數據采集為例,設計了采用溫濕度數字傳感器SHT10的傳感器節點。當采樣周期為10 s、使用60 mAh電池供電時,傳感器節點可持續工作52天。本設計能夠滿足無線、便攜、低功耗地采集人體生理參數的需要。使用模塊化編程語言nesC,提高了開發效率,便于擴展。本文介紹的研究和設計方法可在相關應用中使用。
評論