胡志明+魏振鋼+張小龍+柏長財



摘要:隨著近年來國家對青少年體質健康測試重視程度的不斷提升,傳統體質測試暴露出越來越多弊端,諸如數據混亂、誤差過大、容易丟失等。為改善傳統體質測試的弊端,設計了一套基于ZigBee無線網絡技術的學生體質健康測試系統。該系統包括ZigBee無線傳感網絡、Android中央控制器、路由器終端3部分,可實現學生體質測試的自動化,通過Android端可以實時顯示學生體質測試成績。經測試,該系統運行流暢,達到了預期目的。
關鍵詞關鍵詞:體質測試;ZigBee網絡;Android移動端
DOIDOI:10.11907/rjdk.171560
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2017)011005404
0引言
青少年體質是關系到國家興旺和民族振興的百年大計[1]。但是近年來青少年學生體質不斷下降,因此加強學生體質鍛煉、完善學生體質測試體系顯得尤為重要。傳統的體質健康測試往往形式單一、內容單調,測試的公開、公正性難以保證。而且測試結果沒有給學生及時反饋,讓學生了解自己的體質健康狀態,從而對薄弱項目進行針對性訓練。由于工作量大、學生人數眾多,加上很多學校為了各種利益關系,對現場測試進行干預,嚴重影響了體質健康測試的真實性與準確性[2]。同時,學生體質健康測試項目大多由人工進行統計,其中主觀因素太多,容易導致測試數據不準確甚至丟失。
基于以上情況,本文設計了一種基于ZigBee無線網絡技術的學生體質測試系統。該系統采用常見的Android系統作為設備控制端,以新興的低功耗、低成本、低速率、近距離、短時延、高容量的ZigBee無線網絡技術作為傳輸中介[3],不僅能夠自動測試出學生百米跑、折返跑、仰臥起坐等項目成績,還可以將測試成績實時顯示在平板終端上。與傳統體質測試相比,保證了測試的公平公正性,減少了體育教師工作量,有效解決了傳統體質測試中存在的弊端。
1系統工作原理
學生體質健康測試系統是集無線傳感技術與計算機軟硬件技術于一體的智能化系統。該系統的主要工作原理如下:Android平臺通過USB轉串口向協調器發送指令,協調器再通過ZigBee無線網絡廣播給路由器終端,路由器終端接收到指令解析后,啟動終端上的光電感應器并發出光聲信號作為提示;用戶收到光聲信號后迅速遮擋終端上的光電感應器,遮擋后感應器關閉,并記錄下感應器啟動和關閉的時間差,同時通過無線網絡將時間數據及終端編號返回給中央控制器;中央控制器解析出返回的數據,以此作為依據進行下一步操作。通過Android中央控制器控制感應器的啟停,從而得出時間差值,進而測出學生體測成績。體質健康測試系統由ZigBee無線傳感網絡、Android中央控制器、路由器終端3部分組成,如圖1所示。
2系統硬件模塊
2.1終端感應模塊
終端節點主要包含紅外收發傳感器和數據處理與無線通信模塊,主要負責傳感器數據的采集與上傳、協調器命令的接收與解析。
紅外收發器由發送端和接收端兩部分組成,發送端采用控制電路將待發送的信號編碼轉換為脈沖信號,通過發射管經透鏡發射紅外信號。當紅外線被物體遮擋時,會產生反射和散射。紅外接收端采用性能可靠的一體化紅外接收頭接收信號,同時將接收的信號放大、檢波并整形,最終得到TTL電平的編碼信號,再發送給控制電路解碼并進行相關操作。
數據處理和無線通信模塊采用CC2530作為主控芯片,它是一款由德州儀器公司研制,主要應用于IEEE802.15.4、ZigBee和RF4CE上的芯片。當無線通信模塊收到中央控制器發來的指令后,由CC2530核心模塊進行數據處理分析,并對其它電路和元器件發出指令。當無線收發器需要向協調器發送數據時,先將紅外收發器的模擬信號轉換為數字信號,然后由CC2530核心模塊對數據進行處理,將數據信號轉換為模擬信號后發送出去。
2.2中央控制器
作為系統的控制中心,負責整個系統運行、網絡組建、感應器控制、指令接收和發送以及訓練數據的實時接收、展示及維護。
中央控制器由Android平板和Zigbee協調器組成,平板的USB轉串口(UART)連接ZigBee協調器。Android平板端將命令通過USB串口發送給ZigBee協調器,協調器再通過無線傳輸方式發送給終端節點;同樣協調器接收到終端發來的消息之后傳送給串口,Android端讀取串口信息后進行數據分析與處理。
3無線通信
無線通信模塊主要是實現中央控制器和多個移動終端感應器之間的數據交互。鑒于該系統是近距離的感應設備,且要求傳輸安全、可靠、功耗小,因此本系統通訊采用ZigBee技術實現。ZigBee技術通常用于短距離無線通信,是一種低功耗、低速率、低成本、自組網、高可靠、高安全、近距離無線連接的無線網絡技術[4]。
WiFi是日常生活中常見的無線網絡,它與ZigBee存在很多相似之處。兩者都工作在2.4GHz的ISM頻段上,采用的擴頻方式都是DSSS方式。Zigbee有16個信道,WiFi有11個信道,WiFi在國內使用1、6、11三個信道,也即是說二者信道選擇會有重疊部分,因此會造成很大干擾[5]。WiFi信道1、6、11,分別與ZigBee的11~14、16~19、21~24信道重疊,與15、20、25、26信道不重疊[6]。為了減少ZigBee信號與WiFi信號之間的干擾,應從15、20、25、26這4個信道中選取一個ZigBee的通信信道。
4軟件設計
4.1通信協議設計
由于系統需要控制終端進行多項操作,如開關里外圈指示燈、感應器、燈光顏色等,同時終端感應器還需要返回電量、短地址等信息,所以需要對數據通信協議進行設計。通信數據主要以字節為單位。表1是協調器發送指令格式。endprint
由于要控制終端進行多種操作,因此需要大量的指令組合,所以將利用功能碼中每個Byte中的比特進行組合。表2是功能碼的詳細描述。
4.2Android端程序設計
Android客戶端程序可以分為3個模塊:一是數據收發模塊,這是軟件的核心模塊,主要負責指令的發送與接收;二是設備檢測模塊,主要負責查看終端設備的連接狀態,獲取終端設備的電量和短地址;三是體質健康測試模塊,主要包括3個項目:折返跑、百米跑和仰臥起坐。
4.2.1數據收發模塊
數據收發前必須先初始化串口,確保USB接口正確連接上了協調器模塊。指令發送是直接將數據寫入串口,協調器檢測并分析數據,再發送出去。下面是發送的核心代碼:
private synchronized void sendMessage(String data){
Timer.sleep(20);
if (ftDev.isOpen() == false){
Log.e("j2xx", "SendMessage: device not open");
return;}
ftDev.setLatencyTimer((byte) 128);
byte[] OutData = data.getBytes();
ftDev.write(OutData, data.length());
}
協調器收到終端發送的數據后,會將數據寫入串口。數據接收就是當項目測試開始后,單獨開啟一個接收線程,每隔15ms讀取一次串口。讀取到數據后,根據通信協議對數據進行解析。
表2功能碼描述
占位數和功能功能組合
第一個Byte3bit(2-4)指示燈亮顏色000:無效001:藍色010:紅色100:品紅2bit(5-6)控制蜂鳴器00:無效01:短響10:連響一秒11:連響兩秒2bit(7-8)控制指示燈閃爍00:無效01:慢閃10:快閃
第二個Byte3bit(2-4)控制指示燈亮滅000:無效001:開外圈燈010:開里圈燈011:開全部燈100:關燈3bit(5-7)控制感應器000:無效001:開紅外感應器010:開觸碰感應器011:開兩種感應器100:關閉感應器
4.2.2設備檢測模塊
進入主界面后,當activity的onstart方法執行時,開啟檢測設備的線程。設備檢測線程每隔10s執行一次,連接終端的電量信息,實時更新電量,在onPause方法中結束該線程。核心代碼如下:
private class AutoCheckPower extends Thread{
private boolean powerFlag = true;
@Override
public void run(){
while (powerFlag){
//發送并獲取全部設備信息指令
device.sendGetDeviceInfo();
//開啟接收電量的線程
new ReceiveThread(handler, device.ftDev,
ReceiveThread.POWER_RECEIVE_THREAD, POWER_RECEIVE).start();
Timer.sleep(10000);}
}
}
4.2.3體質健康測試模塊
(1)百米跑。在每個跑道終點放置一個終端感應器,當開始命令發出后點擊“開始”按鈕,調用device.sendOrder方法發送開指示燈和紅外感應器命令,同時開啟Timer計時線程。學生到達終點時會遮擋紅外感應器觸發終端,指示燈熄滅同時返回數據。平板接收到數據后記錄下時間,該時間即是該跑道對應學生的成績。
(2)折返跑。每兩個終端設備分為一組,可以多組同時進行,起點和終點位置各放一個。學生從起點出發,到達終點后揮滅終點處的感應器,再回到起點揮滅起點處的感應器,記為一次折返跑。每個感應器撲滅5s后會自動開啟。如果學生偷懶沒有跑到終點即返回,起點的感應器會連續撲滅兩次,系統會將這次判定為犯規無效,可防止學生作弊。次數達到預設值時會記下該組所用的總時間。
(3)仰臥起坐。兩個設備一組,多組同時進行。學生平躺時一個感應器側放在頭部位置,一個側放在大腿位置,兩個感應器都用支架架起。學生起來時手肘部會遮擋大腿位置的紅外感應器,指示燈滅,同時頭部的感應器和指示燈亮起;當學生躺下后,觸發頭部位置的感應器,指示燈熄滅的同時,腿部的感應器打開,記為一次俯臥撐。
5系統功能測試
5.1終端感應器連接測試
首先測試無線終端是否能夠自動連接協調器。打開APP進入主頁,稍等一會屏幕左側自動顯示出連接到當前協調器的終端列表,同時顯示每個終端的電量信息。設備終端列表信息如圖3所示。
5.2百米跑測試
終端感應器連接成功之后,便可以進行體質健康項目測試。百米跑項目首先要選擇分組,分組即設置幾人同時進行,然后再設置需要的感應模式和燈光顏色等屬性,準備好后點擊開始按鈕。如圖4所示為100m測試成績。
5.3折返跑測試
折返跑需要先選定往返跑的次數即訓練強度,然后選擇同時測試的人數以及感應器屬性,最后點擊開始。測試結束后可以得出每組學生折返跑所用的時間。
5.4仰臥起坐測試
仰臥起坐測試需要先設定訓練時間,即多長時間后訓練結束。其次再設定同時測試的人數,最后點擊開始按鈕。測試結束后會顯示每組學生完成的仰臥起坐個數。如圖5所示為學生1分鐘仰臥起坐的成績。
6結語
本系統成功實現了將互聯網技術與學生體質測試相結合,它能夠快速、便捷地獲取學生體質測試成績,并且實時在平板終端上顯示出來,測試結束后可實現數據的本地保存。后期還將進行數據與云平臺的對接,實現數據的自動同步上傳,使學生能夠自行在網絡平臺上查看自己的體質測試成績,了解自己的身體健康狀態。隨著互聯網技術和無線傳感網絡的發展,本系統將致力于更多應用,如運動員體能訓練和專項訓練等。
參考文獻參考文獻:
[1]李琛.武漢高校學生體質現狀的調查與研究[D].武漢:武漢體育學院,2006.
[2]李沖.學生體質健康測試中弊端及后續管理服務研究[J].當代體育科技,2015(12):251,253.
[3]劉敏,譚守標,陳軍寧.基于Android平臺和Zigbee技術新型智能家居系統[J].計算機系統應用,2012(12):133136,157.
[4]CHEN LINGJYH,SUN TONY, LIANG NIACHIANG.An evaluation study of mobility support in ZigBee networks[J].Journal of Signal Processing Systems,2010,59(1):111122.
[5]張毅,吳錦,羅元,等.新型ZigBeeWiFi無線網關的設計及其抗干擾技術的研究[J].計算機應用與軟件,2014(5):122124,187.
[6]岑榮瀅,姜琴,扈健瑋,等.面向智能家居應用的ZigBeeWiFi網關[J].計算機系統應用,2017(1):232235.
責任編輯(責任編輯:黃健)endprint