鄭群
目前國內(nèi)基于ZigBee的實驗開發(fā)裝置及其配套的實驗資料基本上都是單個傳感器加入ZigBee網(wǎng)的功能驗證實驗,讓中職學(xué)生自行編寫多個傳感的程序代碼是不現(xiàn)實的。筆者針對中職學(xué)校的培養(yǎng)目標和中職學(xué)生的特點,進行了技術(shù)的改進和處理,對項目工程里用到的多個傳感器部分的代碼采用了模塊化編寫和數(shù)據(jù)處理,成功應(yīng)用于實訓(xùn)教學(xué),大大簡便了學(xué)生組建無線智能監(jiān)控系統(tǒng)的過程,激發(fā)了學(xué)生的學(xué)習(xí)興趣和成就感,并大大提升了無線傳感器的組網(wǎng)效率。
一、基于ZigBee的實驗開發(fā)裝置應(yīng)用背景
1.ZigBee技術(shù)簡介
ZigBee技術(shù)的設(shè)計目標是保證在低電耗的前提下,開發(fā)一種易部署、低復(fù)雜度、低成本、短距離、低速率的自組織無線網(wǎng)絡(luò),在工業(yè)控制、家庭智能化、無線傳感器網(wǎng)絡(luò)等領(lǐng)域有廣泛的應(yīng)用前景。簡而言之,ZigBee是一種便宜的低功耗的近距離無線組網(wǎng)技術(shù)。
2.ZigBee實驗開發(fā)裝置及開發(fā)環(huán)境
ZigBee無線傳感器網(wǎng)絡(luò)的開發(fā)環(huán)境需要有三要素:一是要有支持ZigBee協(xié)議棧的硬件;二是要有支持ZigBee協(xié)議的軟件協(xié)議棧;三是要有下載器將程序下載到相應(yīng)的硬件。
我校實訓(xùn)教學(xué)設(shè)備采用飛比科技公司的實驗開發(fā)裝置,包括FB2530EB板搭載CC2530射頻核心模塊、液晶顯示屏做協(xié)調(diào)器;FB2530BB板搭載CC2530射頻核心模塊、傳感模塊做終端節(jié)點;以及20多種各式傳感模塊。整個實驗開發(fā)裝置組成的工作系統(tǒng)如下圖所示,軟件部分采用的是IAR EW開發(fā)軟件,通過CC Debugger下載器進行調(diào)試和編程,并可在PC機上用飛比瀏覽器進行系統(tǒng)監(jiān)控。
3.ZigBee無線網(wǎng)絡(luò)組網(wǎng)過程
ZigBee無線網(wǎng)絡(luò)組網(wǎng)過程包括兩個步驟:網(wǎng)絡(luò)初始化和節(jié)點加入網(wǎng)絡(luò)。
網(wǎng)絡(luò)初始化的過程包括:確定網(wǎng)絡(luò)協(xié)調(diào)器、進行信道掃描、設(shè)置網(wǎng)絡(luò)ID,成功初始化了ZigBee無線網(wǎng)絡(luò),之后就等待其他節(jié)點的加入。
節(jié)點通過協(xié)調(diào)器加入網(wǎng)絡(luò)的過程包括:查找網(wǎng)絡(luò)協(xié)調(diào)器、發(fā)送關(guān)聯(lián)請求命令、等待協(xié)調(diào)器處理、發(fā)送數(shù)據(jù)請求命令、確認回復(fù)。
4.實驗開發(fā)裝置的應(yīng)用現(xiàn)狀
筆者在ZigBee行業(yè)里面做了一些咨詢和調(diào)查,目前國內(nèi)可用于教學(xué)的ZigBee實驗開發(fā)裝置品牌為數(shù)不多,其中做得比較好的有飛比科技公司、佳杰科技公司等。其實驗開發(fā)裝置大部分應(yīng)用于高校物聯(lián)網(wǎng)專業(yè),以培養(yǎng)學(xué)生程序開發(fā)為主要目標,配套的實驗資料基本上都是單個傳感器加入ZigBee網(wǎng)的功能驗證實驗。對于高校或高職院校來說,學(xué)生在掌握了功能驗證實驗的原理后可自行編寫程序開發(fā)新的應(yīng)用,可以說目前的實驗開發(fā)裝置及其配套資源是能夠適合高校教學(xué)的需求的。
二、中職實訓(xùn)教學(xué)的技術(shù)現(xiàn)狀
中職教學(xué)現(xiàn)狀:《無線數(shù)據(jù)傳輸》課程是我校物聯(lián)網(wǎng)通信應(yīng)用專業(yè)的核心課程,中職學(xué)校教學(xué)的培養(yǎng)目標主要是讓學(xué)生具備ZigBee無線傳感網(wǎng)絡(luò)的搭建、使用和維護的職業(yè)能力,重點是對技術(shù)的了解和模塊的應(yīng)用上,而不是程序的開發(fā)能力。該課程的實訓(xùn)教學(xué)時間為一周。
學(xué)生狀況:學(xué)生在課程前期對ZigBee技術(shù)有了一定的了解,學(xué)會了使用CC2530實驗開發(fā)裝置進行無線網(wǎng)絡(luò)的組網(wǎng),初步懂得了單個無線傳感器的數(shù)據(jù)發(fā)送和接收流程,并能在電腦終端的瀏覽器上實現(xiàn)遠程監(jiān)控。
存在問題:由于實驗開發(fā)裝置現(xiàn)有配套的實驗都是單個傳感模塊的功能驗證,每換一個傳感模塊就需要換一個新的程序進行燒寫和調(diào)試,只能同一時間實現(xiàn)單個傳感網(wǎng)絡(luò)的功能;而我們實訓(xùn)教學(xué)是要求在某一個具體的生活或工作情境中去實現(xiàn)整個無線智能監(jiān)控系統(tǒng)的搭建,這需要多個傳感模塊同時加入網(wǎng)絡(luò)并協(xié)調(diào)工作,中職學(xué)生無法直接動手搭建并調(diào)試系統(tǒng),因此,目前國內(nèi)現(xiàn)有的實驗技術(shù)與配套資源不能滿足中等職業(yè)學(xué)校教學(xué)的需求,急需教師在實訓(xùn)教學(xué)前做好技術(shù)上的改進和處理。
三、技術(shù)的改進思路和方法
思路一是在原來單個傳感模塊的程序上增加編寫與新傳感器相關(guān)的代碼,重新編譯調(diào)試。
思路二是采用模塊化編程思維,事先把每個傳感器相關(guān)的代碼編寫成獨立的程序模塊,全部放在同一個項目工程里面,需要的時候直接調(diào)用。
以上兩種思路都可以實現(xiàn)多個傳感模塊同時加入ZigBee網(wǎng)絡(luò)并協(xié)調(diào)工作,但是第一種思路需要學(xué)生對ZigBee技術(shù)有深入的了解,并且有較高的編程技巧,中職學(xué)生普遍缺乏編程思維,編寫新代碼對他們來說難度相當(dāng)?shù)母撸也环现新殞W(xué)校教學(xué)的培養(yǎng)目標;而第二種思路可以讓中職學(xué)生在需要用到某個傳感器的時候,簡便地選擇和調(diào)用相關(guān)的程序代碼,從而快速地搭建系統(tǒng)實現(xiàn)功能,因此筆者決定采用第二種思路。
筆者在實訓(xùn)之前先做好了技術(shù)上的改進和處理,對項目工程里用到的與傳感器相關(guān)的代碼采用了模塊化編寫,并做好相關(guān)的數(shù)據(jù)處理。編寫和處理的方法如下:
(1)為每個傳感器模塊單獨編寫驅(qū)動文件;
(2)在發(fā)送端進行傳感數(shù)據(jù)的匯集和區(qū)分;
(3)在接收端進行傳感數(shù)據(jù)的讀取和識別。
四、具體的技術(shù)處理過程
下面以在原有的基礎(chǔ)上添加溫濕度傳感模塊、3D加速度傳感模塊、RFID讀卡器傳感模塊為例,詳細介紹技術(shù)處理的過程。
ZigBee實驗開發(fā)裝置在中職實訓(xùn)教學(xué)中的技術(shù)處理
1.編寫驅(qū)動文件以備使用
①在hal_sensor.h中定義傳感器模塊驅(qū)動接口,每次只允許選擇一個傳感模塊,如下:
溫濕度傳感模塊: #define SENSOR_SHT1X
3D加速度傳感模塊: #define SENSOR_ADXL3D
RFID讀卡器傳感模塊:#define SENSOR_RC632
……
② 每個傳感器模塊單獨編寫驅(qū)動文件,并配備相應(yīng)的頭文件以供調(diào)用,如下:
halSHT1X.c——halSHT1X.h
halADXL3D.c——halADXL3D.h
hal RC632.c——hal RC632.h
……
2.發(fā)送端數(shù)據(jù)的匯集和區(qū)分
在hal_sensor.c中編寫sendReportRB函數(shù)代碼,進行傳感數(shù)據(jù)的匯集和區(qū)分,比如溫度的數(shù)據(jù)用0x56區(qū)分、濕度的數(shù)據(jù)用0x17區(qū)分、3D加速度的數(shù)據(jù)用0x1a區(qū)分、RFID的數(shù)據(jù)用0x31區(qū)分,其具體代碼如下:
//溫濕度傳感模塊
#ifdefSENSORSHT1X
pData[(*index)++]=SNRDATATYPE2BSIGND|SENSORUSERINDEXTEMP; //0x56
……
pData[(*index)++]=SNRDATATYPE1BUNSIGN|SENSORUSERINDEXHUMI; //0x17
……
#endif
//3D加速度傳感模塊
#ifdefSENSORADXL3D
halUpdateADXL3D();
pData[(*index)++]=SNRDATATYPE1BUNSIGN|SENSORUSERINDEX3DY;
//0x1a;
……
#endif
//RFID讀卡器傳感模塊
#ifdefSENSORRC632
pData[(*index)++]=SNRDATATYPE2BUNSIGN|1;//0x31
osalmemcpy(pData+(*index),RFID_IEEEAddr,2); //RFID
……
#endif
3.接收端數(shù)據(jù)的讀取和識別
在DemoCollector.c中編寫ShowSensorData函數(shù)代碼,對接收到的數(shù)據(jù)進行讀取和識別,具體代碼如下:(為節(jié)省篇幅,讀取識別后的數(shù)據(jù)處理和顯示部分的代碼用省略號……代替)
else if(pData[addr]==0x56){
//溫濕度傳感模塊
……
}
else if(pData[addr]==0x1a){
//3D加速度傳感模塊
……
}
else if(pData[addr]==0x31){
//RFID讀卡器傳感模塊
……
}
五、實訓(xùn)教學(xué)中的技術(shù)實現(xiàn)
下面以圖書館無線智能監(jiān)控系統(tǒng)為例,介紹在實訓(xùn)教學(xué)中添加溫濕度傳感模塊、3D加速度傳感模塊、RFID讀卡器等傳感模塊的操作步驟。
1.搭建傳感器的硬件連接
采用一個FB2530BB板,按電路要求連接溫濕度傳感模塊。
2.添加傳感器的程序并燒寫
①選擇溫濕度傳感器模塊宏定義;
②添加溫濕度傳感驅(qū)動文件hal_SHT1X.c;
③修改溫濕度傳感器的userID的值為01;
④燒寫程序進FB2530BB板;
⑤與FB2530EB板聯(lián)網(wǎng)并調(diào)試數(shù)據(jù)的發(fā)送和接收。
3.修改瀏覽器的節(jié)點配置
FB2530EB板通過串口連接電腦,在電腦上打開飛比瀏覽器,能夠成功連接,并出現(xiàn)新節(jié)點,此時通過修改節(jié)點的配置,就能夠成功在圖書館的場景圖上實現(xiàn)該節(jié)點的遠程監(jiān)控。
4.重復(fù)以上步驟添加3D加速度傳感模塊、RFID讀卡器等其他傳感模塊
六、技術(shù)處理后的實訓(xùn)教學(xué)效果
筆者在2016學(xué)年的《無線數(shù)據(jù)傳輸》課程實訓(xùn)中采用了上述的技術(shù)處理方法,并在實訓(xùn)過程中指導(dǎo)學(xué)生應(yīng)用的步驟,學(xué)生們按上述方法步驟,在實訓(xùn)中調(diào)試成功的圖書館無線智能監(jiān)控系統(tǒng)如下圖所示,該系統(tǒng)已成功匯集了溫濕度傳感模塊、3D加速度傳感模塊、RFID讀卡器傳感模塊、人體紅外傳感模塊、車位傳感模塊、火焰?zhèn)鞲心K等多種傳感模塊,其各自傳感器的數(shù)據(jù)發(fā)送和接收互不影響,并最終在系統(tǒng)中整體協(xié)調(diào)工作。
以下三方面體現(xiàn)了該技術(shù)處理的優(yōu)勢:
1.簡便直觀地進行傳感器的搭建和調(diào)試
當(dāng)需要添加一種新的傳感器進入系統(tǒng)的時候,學(xué)生只需要按操作指引選擇傳感器的宏定義、選擇添加傳感器的驅(qū)動文件、修改傳感器userID等幾個步驟,就能夠做好新傳感器的程序編譯和燒寫工作,問卷調(diào)查結(jié)果顯示:88%的學(xué)生都覺得非常簡便直觀。
2.激發(fā)對高新技術(shù)的學(xué)習(xí)興趣
高新技術(shù)往往意味著學(xué)習(xí)難度大,需要具備的知識技能要深厚,大多數(shù)中職學(xué)生由于畏難情緒,對高新技術(shù)的相關(guān)知識點學(xué)習(xí)興趣不大。現(xiàn)在采用了技術(shù)處理之后,學(xué)生把重點放在傳感器的搭建、調(diào)試和控制上,而不用太關(guān)注代碼的編寫方法,當(dāng)多個傳感器組網(wǎng)成功并協(xié)調(diào)工作的時候,學(xué)生的成就感便由此得到大幅提升。問卷調(diào)查結(jié)果顯示:實訓(xùn)前大部分學(xué)生的學(xué)習(xí)興趣一般,而實訓(xùn)后學(xué)生的學(xué)習(xí)興趣大增。具體數(shù)據(jù)如下:
學(xué)習(xí)興趣非常大比較大一般幾乎無
實訓(xùn)前6%26%48%20%
實訓(xùn)后34%56%10%0
3.快速高效地實現(xiàn)不同情境下的系統(tǒng)組網(wǎng)
不同情境下的無線傳感系統(tǒng)需要連接多種不同的傳感器,據(jù)15屆畢業(yè)考入高職院校的學(xué)生黃某反饋,高職院校采用自行修改程序代碼的方法,搭建和調(diào)試8種以上傳感器的組網(wǎng),學(xué)生通常要花三、四周的時間才能完成,且成功率不高。而我校學(xué)生在采用了技術(shù)處理之后,不管何種應(yīng)用情境,不論需要多少種傳感器組網(wǎng),都能快速地選擇和搭建,花費的時間和成功率具體數(shù)據(jù)如下:
組網(wǎng)時間
班別情景1∶4種
傳感器系統(tǒng)情景2∶8種
傳感器系統(tǒng)成功率
14級2班平均10個課時平均17個課時96%
14級3班平均12個課時平均20個課時93%
綜上所述,筆者針對中職學(xué)校的培養(yǎng)目標和中職學(xué)生的特點,進行了基于CC2530的實驗開發(fā)裝置編程技術(shù)的改進和處理,對項目工程里用到的多個傳感器部分的代碼采用了模塊化編寫,并成功應(yīng)用于實訓(xùn)教學(xué),大大簡便了學(xué)生組建無線智能監(jiān)控系統(tǒng)的過程,激發(fā)了學(xué)生的學(xué)習(xí)興趣和成就感,并大大提升了無線傳感器的組網(wǎng)效率。
責(zé)任編輯何麗華