《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于ZigBee的教學(xué)應(yīng)答系統(tǒng)軟件設(shè)計(jì)
基于ZigBee的教學(xué)應(yīng)答系統(tǒng)軟件設(shè)計(jì)
陳科,蘇魯陽(yáng),楊筆鋒
(1.成都信息工程大學(xué),四川 成都 610225;2.中國(guó)氣象局大氣探測(cè)重點(diǎn)開(kāi)放實(shí)驗(yàn)室,四川 成都 610225)
摘要: 隨著我國(guó)高校教育的不斷普及,大學(xué)生數(shù)量雖然激增,但是課堂學(xué)習(xí)氛圍淡薄,甚至有逃課情況。這些現(xiàn)象嚴(yán)重影響著高校教師的教學(xué)計(jì)劃以及對(duì)學(xué)生素質(zhì)的培養(yǎng)?;赯igBee 平臺(tái),設(shè)計(jì)了一套師生課堂應(yīng)答系統(tǒng),并重點(diǎn)闡述其軟件設(shè)計(jì)。采用指紋識(shí)別替代傳統(tǒng)的簽到流程,加入副協(xié)調(diào)器以解決主協(xié)調(diào)器異常情況,利用Z-stack協(xié)議棧解決不同教室間誤組網(wǎng)問(wèn)題,并讓學(xué)生能換一種方式對(duì)教學(xué)計(jì)劃進(jìn)行反饋。學(xué)生可利用硬件模塊上的液晶屏和按鍵無(wú)線傳遞問(wèn)題答題或表決信息,這使得師生間的交互變得更加方便與靈活。
中圖分類(lèi)號(hào):TP311;TN212
文獻(xiàn)標(biāo)識(shí)碼:A
DOI: 10.19358/j.issn.2096-5133.2018.08.021
中文引用格式:陳科,蘇魯陽(yáng),楊筆鋒.基于ZigBee的教學(xué)應(yīng)答系統(tǒng)軟件設(shè)計(jì)[J].信息技術(shù)與網(wǎng)絡(luò)安全,2018,37(8):91-95.
The program design of teaching response system based on ZigBee
Chen Ke, Su Luyang,Yang Bifeng
(1.Chengdu University of Information Technology, Chengdu 610225, China; 2.The Key Open Laboratory for Atmospheric Exploration of China Meteorological Administration, Chengdu 610225, China)
Abstract: With the popularization of higher education in our country, although the number of undergraduates has surged, the atmosphere of classroom learning is weak and even students may skip classes. These phenomena seriously affect the teaching plans of college teachers and the cultivation of students’ qualities. This paper based on the platform of ZigBee, designs a set of teacher-student classroom interaction system, and emphasizes its design of software. The system uses fingerprinting to replace the traditional process of sign-in, adds a vice-coordinator to solve the abnormity of the master coordinator, uses the protocol stack of Z-stack to solve the problem of misconnecting between different classrooms, and allows students to change their way to response to the teaching plan. Students can use the LCD panel and buttons on hardware modules to wirelessly transmit their answers or voting information, which makes the interaction between teachers and students become more convenient and flexible.
Key words : ZigBee; Z-stack; teching response system; wireless communication; networking

基于ZigBee的教學(xué)應(yīng)答系統(tǒng)軟件設(shè)計(jì)


 

摘要:隨著我國(guó)高校教育的不斷普及,大學(xué)生數(shù)量雖然激增,但是課堂學(xué)習(xí)氛圍淡薄,甚至有逃課情況。這些現(xiàn)象嚴(yán)重影響著高校教師的教學(xué)計(jì)劃以及對(duì)學(xué)生素質(zhì)的培養(yǎng)?;赯igBee 平臺(tái),設(shè)計(jì)了一套師生課堂應(yīng)答系統(tǒng),并重點(diǎn)闡述其軟件設(shè)計(jì)。采用指紋識(shí)別替代傳統(tǒng)的簽到流程,加入副協(xié)調(diào)器以解決主協(xié)調(diào)器異常情況,利用Z-stack協(xié)議棧解決不同教室間誤組網(wǎng)問(wèn)題,并讓學(xué)生能換一種方式對(duì)教學(xué)計(jì)劃進(jìn)行反饋。學(xué)生可利用硬件模塊上的液晶屏和按鍵無(wú)線傳遞問(wèn)題答題或表決信息,這使得師生間的交互變得更加方便與靈活。

關(guān)鍵詞:


 


 

Abstract: 

Key words: 

 

0  引言

 

近些年,對(duì)于不少在校大學(xué)生而言,度過(guò)了高考大關(guān),似乎已經(jīng)厭倦了課堂學(xué)習(xí)和思考問(wèn)題。即使是一名優(yōu)秀的高校教師也難以徹底擺脫課堂的沉悶氣氛。如何讓更多人參與到知識(shí)探索中成為當(dāng)前高校教育面臨的一個(gè)問(wèn)題。教師的教學(xué)水平對(duì)課堂固然有一定影響,但是恰當(dāng)?shù)亩嗝襟w支持能讓課堂更具有活力。 

本文基于ZigBee以及Z-stack協(xié)議棧對(duì)協(xié)調(diào)器、終端節(jié)點(diǎn)、路由器進(jìn)行了程序設(shè)計(jì),設(shè)計(jì)了一套應(yīng)答系統(tǒng)。將整個(gè)ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器作為教師端模塊,用于建立網(wǎng)絡(luò)、引導(dǎo)其他模塊加入網(wǎng)絡(luò)以及管理學(xué)生端,并通過(guò)串口與上位機(jī)進(jìn)行交互操作;將ZigBee網(wǎng)絡(luò)的終端節(jié)點(diǎn)作為學(xué)生端,無(wú)線發(fā)送來(lái)自學(xué)生的輸入信息,無(wú)線接收來(lái)自教師端的信息;將ZigBee網(wǎng)絡(luò)的兩個(gè)路由器分別作為指紋識(shí)別模塊以及副協(xié)調(diào)器,前者傳輸指紋信息,后者接收來(lái)自主協(xié)調(diào)器的狀態(tài)信息,當(dāng)主協(xié)調(diào)器異常時(shí),副協(xié)調(diào)器將對(duì)其進(jìn)行替換,保證系統(tǒng)穩(wěn)定。上位機(jī)同步來(lái)自服務(wù)器的課程信息,對(duì)各個(gè)終端節(jié)點(diǎn)進(jìn)行組網(wǎng)配置,避免教室之間的錯(cuò)誤入網(wǎng)現(xiàn)象。

 

1  系統(tǒng)整體流程

 

系統(tǒng)整體流程如圖1所示,每間教室都有一個(gè)主協(xié)調(diào)器用于搭建網(wǎng)絡(luò)并與上位機(jī)進(jìn)行通信,備份協(xié)調(diào)器用于異常處理[1]。當(dāng)一堂課快要開(kāi)始時(shí),教師登錄上位機(jī)軟件,學(xué)生進(jìn)入教室,并通過(guò)指紋模塊進(jìn)行簽到。在學(xué)生簽到后,指紋ID信息通過(guò)無(wú)線發(fā)送給協(xié)調(diào)器。協(xié)調(diào)器接收到指紋ID后,通過(guò)串口反饋給上位機(jī)[2]。上位機(jī)軟件會(huì)顯示學(xué)生的實(shí)時(shí)簽到信息。

簽到完成后,學(xué)生用學(xué)生端模塊,在確保成功連入ZigBee網(wǎng)絡(luò)的情況下,用學(xué)號(hào)進(jìn)行登錄。上位機(jī)對(duì)登錄信息進(jìn)行識(shí)別,若發(fā)現(xiàn)輸入有誤或者這堂課上沒(méi)有該生信息,立即反饋給學(xué)生端錯(cuò)誤信息,并不予登錄;反之,學(xué)生端模塊將進(jìn)入答題界面,準(zhǔn)備答題或是表決。 

當(dāng)課程結(jié)束時(shí),上位機(jī)軟件下達(dá)下課指令,所有終端節(jié)點(diǎn)切換自身的個(gè)域網(wǎng)地址并重啟,為下一堂課做好準(zhǔn)備。

 

微信截圖_20180925170820.png


2  Z-stack協(xié)議棧流程

 

TI的Z-Stack協(xié)議棧從總體上來(lái)看主要由三部分組成:硬件抽象層(Hardware Abstraction Layer,HAL)、操作系統(tǒng)抽象層(Operating System Abstraction Layer,OSAL)和ZigBee協(xié)議各層。

在整個(gè)Z-Stack系統(tǒng)運(yùn)行時(shí),主函數(shù)主要完成兩個(gè)任務(wù)。其一,整個(gè)系統(tǒng)的初始化,其中涉及HAL中各個(gè)硬件模塊的初始化;其二,系統(tǒng)進(jìn)行網(wǎng)絡(luò)配置和任務(wù)優(yōu)先級(jí)的劃分。 

圖2所示為系統(tǒng)啟動(dòng)流程,首先屏蔽所有中斷,在經(jīng)歷底板、IO、硬件驅(qū)動(dòng)、非易失存儲(chǔ)器等硬件相關(guān)的初始化后,通過(guò)OSAL的初始化函數(shù)進(jìn)行系統(tǒng)初始化操作,這包括存儲(chǔ)器、定時(shí)器等;之后通過(guò)任務(wù)初始化函數(shù)進(jìn)行網(wǎng)絡(luò)配置和任務(wù)分級(jí),并對(duì)系統(tǒng)任務(wù)和用戶任務(wù)進(jìn)行初始化操作[3];最后通過(guò)OSAL啟動(dòng)函數(shù)進(jìn)入輪詢狀態(tài),不停地監(jiān)聽(tīng)任務(wù)事件的觸發(fā),并跳轉(zhuǎn)至任務(wù)執(zhí)行函數(shù)。所有用戶想觸發(fā)的事件必須要注冊(cè)登記,以此綁定事件與用戶任務(wù),這樣當(dāng)事件觸發(fā)時(shí),比如按鍵按下時(shí),系統(tǒng)才能從輪詢中正常跳轉(zhuǎn)至用戶的執(zhí)行函數(shù)[4]

 

微信截圖_20180925170829.png

 

3  系統(tǒng)軟件設(shè)計(jì)

 

整個(gè)系統(tǒng)的軟件部分包括上位機(jī)、協(xié)調(diào)器、路由器以及各個(gè)終端節(jié)點(diǎn)的程序設(shè)計(jì)[5]。本文主要在ZigBee2007版協(xié)議棧的基礎(chǔ)上對(duì)后三者的流程進(jìn)行講解,對(duì)其中涉及的液晶屏、按鍵、指紋傳感器等模塊只做簡(jiǎn)略介紹,并不深究其控制代碼。

 

3.1 協(xié)調(diào)器程序設(shè)計(jì)

 

為了方便管理,本系統(tǒng)對(duì)每一個(gè)設(shè)備設(shè)置了一個(gè)8位ID,協(xié)調(diào)器設(shè)置為0x00[6]。整個(gè)軟件流程如圖3所示,協(xié)調(diào)器上電后,在完成協(xié)議棧的各項(xiàng)底層初始化操作后,開(kāi)始組建網(wǎng)絡(luò)[7]。主協(xié)調(diào)器搭建起了整個(gè)網(wǎng)絡(luò),以2.4 GHz作為此方案的通信頻段,選用16號(hào)信道,引入節(jié)點(diǎn)和路由器,構(gòu)建樹(shù)型網(wǎng)絡(luò)。2.4 GHz頻段下,在一個(gè)教室內(nèi)部進(jìn)行無(wú)線通信,其通信質(zhì)量是可以得到保證的[8]。

之后,系統(tǒng)進(jìn)行所需模塊的初始化,主要有以下3點(diǎn): 

(1)完成液晶屏的初始化界面顯示。協(xié)調(diào)器現(xiàn)階段幾乎不會(huì)用液晶屏和按鍵,因此對(duì)于協(xié)調(diào)器而言,液晶屏目前僅僅為其顯示連接狀態(tài),按鍵也僅僅留出硬件接口,以便后續(xù)功能補(bǔ)充。 

(2)進(jìn)行端點(diǎn)描述、地址類(lèi)型結(jié)構(gòu)體的參數(shù)配置。對(duì)于端點(diǎn),一個(gè)設(shè)備上可以擁有多個(gè)端點(diǎn),它的作用主要是將不同的無(wú)線任務(wù)進(jìn)行分類(lèi)。當(dāng)某個(gè)設(shè)備在接收數(shù)據(jù)包時(shí),首先匹配短地址,成功后再由底層解析并分發(fā)給對(duì)應(yīng)端點(diǎn),如端點(diǎn)不匹配則直接丟棄。在本項(xiàng)目中,所有設(shè)備的端點(diǎn)號(hào)都設(shè)為8。

 

微信截圖_20180925171214.png


而地址類(lèi)型結(jié)構(gòu)體,即afAddrType_t,是對(duì)端點(diǎn)、目的地址、發(fā)送模式、個(gè)域網(wǎng)地址的一種包裝。在配置好這樣一個(gè)結(jié)構(gòu)體之后,用戶在使用無(wú)線傳輸函數(shù)進(jìn)行無(wú)線數(shù)據(jù)發(fā)送時(shí),可以很方便地調(diào)用。為了讓整個(gè)網(wǎng)絡(luò)的無(wú)線傳輸數(shù)據(jù)分類(lèi)更加清楚,本項(xiàng)目定義了三個(gè)這樣的結(jié)構(gòu)體,對(duì)應(yīng)三種傳輸情況,協(xié)調(diào)器用到了兩種:廣播(教師端向所有學(xué)生端發(fā)送信息,便于題目的下達(dá))和單播(教師端向單個(gè)學(xué)生端發(fā)消息,便于單獨(dú)抽問(wèn))。 

(3)進(jìn)行串口的初始化與注冊(cè)。對(duì)于串口,本項(xiàng)目利用協(xié)議棧中的調(diào)試層,對(duì)串口進(jìn)行簡(jiǎn)單快捷的處理。因?yàn)檎{(diào)試層中有許多調(diào)試接口能與各層進(jìn)行直接通信,利用串口,聯(lián)系上位機(jī)與用戶任務(wù)顯得更加方便。 

在完成初始化之后,系統(tǒng)將進(jìn)行輪詢狀態(tài)。但本項(xiàng)目中加入了定時(shí)觸發(fā)事件,主協(xié)調(diào)器將對(duì)副協(xié)調(diào)器定時(shí)每10 s發(fā)送一次狀態(tài)信息,當(dāng)副協(xié)調(diào)器連續(xù)3次未收到數(shù)據(jù)時(shí),系統(tǒng)將認(rèn)為主協(xié)調(diào)器工作狀態(tài)異常,副協(xié)調(diào)器將執(zhí)行切換操作。 

如果系統(tǒng)收到無(wú)線數(shù)據(jù),也將跳轉(zhuǎn)執(zhí)行函數(shù),并根據(jù)預(yù)先設(shè)置好的幀標(biāo)志位,判別接收信息的類(lèi)別,然后對(duì)信息進(jìn)行加工,并通過(guò)串口向上位機(jī)上傳;同理,如果收到來(lái)自上位機(jī)的串口信息,也將判別指令類(lèi)型,然后再控制各個(gè)學(xué)生端進(jìn)行操作[9]。 

具體而言,上位機(jī)通過(guò)云端同步更新上課信息和指令信息。如圖3所示,上位機(jī)目前有7種命令格式傳遞給協(xié)調(diào)器,協(xié)調(diào)器接收3種來(lái)自其他節(jié)點(diǎn)的信息。 

在提問(wèn)環(huán)節(jié)中,上位機(jī)目前支持的操作大致為:允許答題、禁止答題、單獨(dú)抽問(wèn)、隨機(jī)分組、開(kāi)啟答題倒計(jì)時(shí),基本滿足課堂應(yīng)答的所需。 

登錄認(rèn)證是為了對(duì)學(xué)生端的登錄信息進(jìn)行校對(duì)并及時(shí)反饋。 

下課指令不僅為了清除當(dāng)前課堂的殘留數(shù)據(jù),也更新了學(xué)生端的內(nèi)在組網(wǎng)配置,為下一次連接做準(zhǔn)備,避免設(shè)備錯(cuò)誤入網(wǎng)。

 

3.2 節(jié)點(diǎn)程序設(shè)計(jì)

 

與協(xié)調(diào)器一樣,為了方便管理,對(duì)每一個(gè)終端節(jié)點(diǎn)設(shè)置了一個(gè)8位ID,從0x01開(kāi)始命名,最大0xfd。整個(gè)節(jié)點(diǎn)軟件流程如圖4所示,節(jié)點(diǎn)上電后,在完成協(xié)議棧的各項(xiàng)底層初始化操作后,開(kāi)始根據(jù)當(dāng)前個(gè)域網(wǎng)地址值搜索網(wǎng)絡(luò)并加入,同時(shí)初始化用戶任務(wù)函數(shù)。之后,節(jié)點(diǎn)將進(jìn)行重連檢測(cè)。若在之前設(shè)備未登錄,則進(jìn)行正常的登錄操作,進(jìn)入答題界面答題并準(zhǔn)備執(zhí)行教師端所發(fā)指示;若在之前設(shè)備異常斷電,則將跳過(guò)登錄操作,并恢復(fù)一些數(shù)據(jù)。

 

微信截圖_20180925171308.png

 

節(jié)點(diǎn)上主要使用的兩個(gè)硬件模塊是液晶屏和矩陣鍵盤(pán)。液晶屏采用SPI接口接入?yún)f(xié)議棧,將一直引導(dǎo)用戶進(jìn)行相應(yīng)的操作。協(xié)議棧本身針對(duì)幾個(gè)獨(dú)立按鍵進(jìn)行了定義,本設(shè)計(jì)用到了其中兩個(gè)獨(dú)立按鍵,其中一個(gè)作為整個(gè)矩陣鍵盤(pán)的掃描啟動(dòng)開(kāi)關(guān),學(xué)生在輸入前需要先按下此鍵才能正常輸入;另外一個(gè)則作為手動(dòng)復(fù)位的按鈕,按下后,可以清除所有信息,包括Flash中保存的內(nèi)容。但根據(jù)項(xiàng)目的需求,硬件上又加入了4×4矩陣鍵盤(pán),占用P1口共8個(gè)端口,支持16種字符的輸入,包括:0~9十個(gè)數(shù)字,A~D四個(gè)字母,*和#兩個(gè)功能按鍵。

 

3.2.1 重連檢測(cè)

 

在初始化完成后,實(shí)際上因節(jié)點(diǎn)設(shè)備入網(wǎng)狀態(tài)的變化(從未組網(wǎng)變?yōu)榻K端節(jié)點(diǎn)),系統(tǒng)將退出輪詢?nèi)ヌ幚韴?zhí)行函數(shù)。系統(tǒng)判定入網(wǎng)設(shè)備的類(lèi)型,如果是終端節(jié)點(diǎn),則會(huì)進(jìn)行重連檢測(cè)。具體而言,用接口函數(shù)讀取Flash中的重連標(biāo)志位。 

如果其值為1,則表示該設(shè)備之前已入網(wǎng),需進(jìn)行界面恢復(fù)。該設(shè)備將恢復(fù)到之前答題界面,并且讀取Flash,然后將分組信息、倒計(jì)時(shí)信息也復(fù)原;如果其值為0,則表示上次是正常斷電。系統(tǒng)將進(jìn)行正常登錄操作,等待學(xué)生信息的錄入。

 

3.2.2 顯示界面

  

主要設(shè)計(jì)的界面是登錄界面和答題界面,當(dāng)然還有一些其他反饋界面。 

在登錄界面,本項(xiàng)目需要學(xué)生首先按下矩陣鍵盤(pán)的啟動(dòng)按鍵,再通過(guò)矩陣鍵盤(pán)輸入自己10位學(xué)號(hào)信息,以*鍵作為退格鍵,#鍵作為確認(rèn)鍵。發(fā)送后,等待協(xié)調(diào)器進(jìn)行認(rèn)證反饋。認(rèn)證成功,則液晶屏顯示“登錄成功”,進(jìn)入答題頁(yè)面;反之,則液晶屏顯示“登錄失敗”,重新進(jìn)入登錄頁(yè)面。為防止誤發(fā)送,在軟件后臺(tái)進(jìn)行了發(fā)送限制,當(dāng)輸入位數(shù)少于10位或包含其他字符,#鍵將失效。 

在答題界面,節(jié)點(diǎn)將向協(xié)調(diào)器發(fā)送答題信息。但首先需要接收來(lái)自協(xié)調(diào)器的答題指令,當(dāng)節(jié)點(diǎn)收到允許答題指令時(shí),節(jié)點(diǎn)內(nèi)置的答題開(kāi)關(guān)(一個(gè)布爾型的變量)將開(kāi)啟;同理,當(dāng)收到停止答題指令時(shí),此開(kāi)關(guān)將關(guān)閉。用戶需要在這段時(shí)間內(nèi)根據(jù)投影儀或PPT所示的題目,鍵入答案并發(fā)送。這是節(jié)點(diǎn)最主要也是最基本的輸入界面,答案長(zhǎng)度最大16個(gè)字符。

 

3.2.3 其他指令的操作

  

除了允許答題和關(guān)閉答題這兩個(gè)基本操作外,系統(tǒng)還有其他指令。 

當(dāng)協(xié)調(diào)器收到上位機(jī)的隨機(jī)抽問(wèn)命令,則會(huì)隨機(jī)開(kāi)啟某一個(gè)節(jié)點(diǎn)答題開(kāi)關(guān),讓其答題。當(dāng)然,這個(gè)過(guò)程會(huì)有相應(yīng)的蜂鳴器和LED閃爍進(jìn)行提醒。 

隨機(jī)分組指令讓所有在場(chǎng)學(xué)生平均并且隨機(jī)地分成幾個(gè)小組,小組編號(hào)將在節(jié)點(diǎn)的答題界面上進(jìn)行顯示。 

開(kāi)啟倒計(jì)時(shí)是讓答題者在限定時(shí)間內(nèi)答題,時(shí)間一到,節(jié)點(diǎn)便會(huì)停止作答,倒計(jì)時(shí)也將顯示在節(jié)點(diǎn)的液晶屏上。倒計(jì)時(shí)功能采用協(xié)議棧的事件定時(shí)觸發(fā)函數(shù)進(jìn)行操作,時(shí)間參數(shù)為1 000,即1 s觸發(fā)一次,事件每次觸發(fā)將更新液晶屏上的顯示時(shí)間,基本實(shí)現(xiàn)了時(shí)間同步。 

對(duì)于下課指令,上位機(jī)可以向云端同步信息,從而得知班級(jí)下一個(gè)上課地點(diǎn)的網(wǎng)絡(luò)地址。這樣上位機(jī)就可以通過(guò)協(xié)調(diào)器控制所有節(jié)點(diǎn)軟切換其網(wǎng)絡(luò)配置,從而達(dá)到切換教室的效果,避免教室之間可能出現(xiàn)的誤組網(wǎng)問(wèn)題[10]。 

其具體切換流程為:各個(gè)節(jié)點(diǎn)從協(xié)調(diào)器獲取到新的網(wǎng)絡(luò)地址,然后調(diào)用接口函數(shù)寫(xiě)入并更新自身的網(wǎng)絡(luò)地址,再清空重連標(biāo)志位和分組信息,避免再次鏈接時(shí)出現(xiàn)問(wèn)題,最后進(jìn)行軟件重啟。

 

3.3 路由器軟件設(shè)計(jì)

 

在本設(shè)計(jì)中,路由器充當(dāng)兩個(gè)重要模塊,自定義的8位ID分別是0xfe和0xff。下面分別講解這兩個(gè)模塊。


3.3.1 副協(xié)調(diào)器軟件流程

  

副協(xié)調(diào)器要想替換主協(xié)調(diào)器,自動(dòng)組建和維持ZigBee網(wǎng)絡(luò),并讓之前網(wǎng)絡(luò)中的其他節(jié)點(diǎn)繼續(xù)工作,必須復(fù)制網(wǎng)絡(luò)的關(guān)鍵參數(shù),這些參數(shù)包括個(gè)域網(wǎng)地址、信道信息和網(wǎng)絡(luò)鄰居表。其中個(gè)域網(wǎng)地址和信道信息相對(duì)簡(jiǎn)單,為了讓網(wǎng)絡(luò)鄰居表也簡(jiǎn)單一些,此項(xiàng)目中副協(xié)調(diào)器將不引導(dǎo)其他節(jié)點(diǎn)加入網(wǎng)絡(luò)。 

由于副協(xié)調(diào)器一開(kāi)始就和主協(xié)調(diào)器在一個(gè)網(wǎng)絡(luò)中,因此個(gè)域網(wǎng)地址和信道與主協(xié)調(diào)器一樣,不用處理。主協(xié)調(diào)器定時(shí)向副協(xié)調(diào)器發(fā)送狀態(tài)信息。實(shí)際上,這個(gè)信息就是主協(xié)調(diào)器通過(guò)系統(tǒng)接口函數(shù)獲取到的鄰居表,經(jīng)過(guò)包裝之后得到的信息幀。副協(xié)調(diào)器將該信息存儲(chǔ)在Flash中,一旦發(fā)生異常,則將Flash中存儲(chǔ)的設(shè)備間關(guān)系信息通過(guò)內(nèi)置函數(shù)進(jìn)行恢復(fù),用副協(xié)調(diào)器重新啟動(dòng)網(wǎng)絡(luò)。

如圖5所示,副協(xié)調(diào)器在進(jìn)行一系列初始化后進(jìn)入輪詢。正常情況下只需要接收狀態(tài)信息,并且計(jì)算與上一次接收的時(shí)間差。若超過(guò)30 s未收到數(shù)據(jù),則進(jìn)行協(xié)調(diào)器的切換。

 

微信截圖_20180925171532.png


3.3.2 指紋模塊軟件流程

 

本項(xiàng)目通過(guò)串口將指紋傳感器和ZigBee模塊聯(lián)系起來(lái),組成一個(gè)指紋采集模塊[11]。 

指紋錄入時(shí),ZigBee模塊發(fā)送讀取圖像指令,然后傳感器開(kāi)始讀取檢測(cè)到的指紋圖像,一段延時(shí)之后,再發(fā)送生成指紋特征指令,傳感器進(jìn)而將生成指紋特征。二次錄入時(shí),也將生成一個(gè)指紋特征。接著ZigBee模塊發(fā)送模板特征比對(duì)指令。如果比對(duì)成功,則生成指紋模板,分配ID并存儲(chǔ);若失敗則重新錄入。 

檢測(cè)指紋時(shí),與指紋錄入時(shí)一樣。ZigBee模塊同樣需要發(fā)送讀取圖像指令和生成指紋特征指令,從而獲取指紋特征。ZigBee模塊發(fā)送搜索指紋圖像指令。若比對(duì)成功,則向協(xié)調(diào)器發(fā)送指紋ID;若失敗,則重新錄入。 

在上課之前,ZigBee模塊通過(guò)云端同步學(xué)生的指紋信息,并對(duì)指紋庫(kù)進(jìn)行更新。所以當(dāng)學(xué)生進(jìn)行簽到時(shí),只需比對(duì)相應(yīng)信息,若比對(duì)成功,將無(wú)線發(fā)送特征指令。 

如圖6所示,指紋模塊也需要加入到整個(gè)網(wǎng)絡(luò),所以也要初始化協(xié)議棧。之后,模塊等待學(xué)生的指紋錄入,當(dāng)檢測(cè)到指紋圖像時(shí),向傳感器獲取指紋特征。與庫(kù)信息進(jìn)行比對(duì)后,獲得其指紋ID,無(wú)線轉(zhuǎn)發(fā)給協(xié)調(diào)器,等待下一次的指紋簽到。

 


 

微信截圖_20180925171653.png


4  結(jié)論

 

本文基于ZigBee設(shè)計(jì)了一套教學(xué)應(yīng)答系統(tǒng),主要說(shuō)明了其中ZigBee軟件部分,對(duì)其中多個(gè)模塊的運(yùn)作進(jìn)行了分析。目前該系統(tǒng)已有一些基本功能,能夠基本滿足課堂需求。在實(shí)際使用中,上位機(jī)與協(xié)調(diào)器的通信無(wú)異常,能夠正常收發(fā)指令。各個(gè)教室內(nèi)的ZigBee網(wǎng)絡(luò)通信順暢,且沒(méi)有錯(cuò)誤入網(wǎng)現(xiàn)象。對(duì)于后續(xù)的擴(kuò)展,可以考慮從手機(jī)入手,讓手機(jī)與云端相連,從而在課下為學(xué)生提供查漏補(bǔ)缺的機(jī)會(huì)。

 

參考文獻(xiàn)

[1] 楊小來(lái). 基于ZigBee技術(shù)的家居智能化環(huán)境狀態(tài)數(shù)據(jù)檢測(cè)系統(tǒng)設(shè)計(jì)[J]. 通訊世界, 2015(23):263. 

[2] 姚遠(yuǎn), 唐亞華. 基于C#的OTP存儲(chǔ)器燒錄器上位機(jī)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子設(shè)計(jì)工程, 2016, 24(13):30-33. 

[3] 劉蘊(yùn). LED智能照明控制系統(tǒng)的研究與設(shè)計(jì)[D]. 西安:陜西科技大學(xué), 2013. 

[4] 曾寶國(guó). Z-STACK協(xié)議棧應(yīng)用開(kāi)發(fā)分析[J]. 物聯(lián)網(wǎng)技術(shù), 2011(3):71-73. 

[5] 孫九瑞, 孫曉晨. 基于ZigBee的圖書(shū)館環(huán)境監(jiān)控系統(tǒng)設(shè)計(jì)[J]. 應(yīng)用科技, 2015,42(3):49-54. 

[6] 崔妮. 基于無(wú)線傳感器網(wǎng)絡(luò)的采煤機(jī)狀態(tài)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 太原:中北大學(xué), 2016. 

[7] 張久強(qiáng), 施仁政, 陳遠(yuǎn)知. 基于ZigBee的WSN節(jié)點(diǎn)嵌入式軟件研究與開(kāi)發(fā)[C]// 全國(guó)信號(hào)和智能信息處理與應(yīng)用學(xué)術(shù)會(huì)議會(huì)刊, 2014. 

[8] 王建風(fēng), 師曉紅. 城市軌道交通CBTC無(wú)線干擾及防護(hù)措施[J]. 城市建設(shè)理論研究(電子版), 2014(13): 12236-12238. 

[9] 王超. 基于ZigBee技術(shù)的無(wú)縫鋼軌爬行監(jiān)測(cè)系統(tǒng)研究與設(shè)計(jì)[D]. 長(zhǎng)沙:中南大學(xué), 2014.

[10] 鐘小磊, 陳賾, 代祖浩,等. ZigBee自組網(wǎng)的網(wǎng)間串?dāng)_和通信解決方案[J]. 光通信研究, 2017(4):70-73. 

[11] 喬磊. 基于ZigBee技術(shù)的無(wú)線點(diǎn)餐系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2011, 34(3):68-71.

(收稿日期:2018-03-19)

 

 

作者簡(jiǎn)介:

 陳科(1993-),男,碩士研究生,主要研究方向:嵌入式單片機(jī)、氣象設(shè)備儀器。 

 蘇魯陽(yáng)(1992-),男,碩士研究生,主要研究方向:圖像拼接技術(shù)研究。 

 楊筆鋒(1980-),男,碩士,副教授,主要研究方向:氣象探測(cè)技術(shù)及應(yīng)用、信號(hào)獲取技術(shù)及應(yīng)用。

 

 


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。