蔡卓凡
(湛江師范學(xué)院 信息與教育中心,廣東 湛江524048)
隨著多媒體教室的廣泛應(yīng)用,越來越多的教學(xué)工作均需要使用多媒體設(shè)備進(jìn)行,因此多媒體教室的數(shù)量逐年增加。傳統(tǒng)的運(yùn)維模式已不能滿足新形勢(shì)下的工作需求。在多媒體教室中加入移動(dòng)巡檢系統(tǒng),可在不影響教學(xué)工作的同時(shí)對(duì)教室設(shè)備進(jìn)行非接觸式檢查和維護(hù)。Arduino單片機(jī)[1]和Android[2]智能終端具有功能強(qiáng)、性價(jià)比高及可定制性等優(yōu)點(diǎn),為構(gòu)建多媒體教室的移動(dòng)巡檢系統(tǒng)提供了良好的開發(fā)平臺(tái)。本文以Arduino Mega 2560為系統(tǒng)控制[3],結(jié)合藍(lán)牙通信模塊和Android智能終端實(shí)現(xiàn)對(duì)多媒體教室的設(shè)備進(jìn)行非接觸式檢查和維護(hù)。系統(tǒng)只需幾個(gè)傳感器、一塊Arduino控制板、一個(gè)藍(lán)牙通訊從模塊和一臺(tái)Android智能終端便可實(shí)現(xiàn),克服了一般的集中式系統(tǒng)需要專門布線,造價(jià)偏高和在檢查過程中影響教學(xué)使用的缺陷,同時(shí)其在功能、擴(kuò)充能力及二次開發(fā)上更具優(yōu)勢(shì)。
系統(tǒng)由設(shè)備狀態(tài)檢測(cè)傳感器、Arduino Mega 2560單片機(jī)數(shù)據(jù)采集與控制、藍(lán)牙通信模塊、Android數(shù)據(jù)處理等部分組成。
設(shè)備狀態(tài)檢測(cè)傳感器包括光照度、電流、電壓、溫度和濕度等傳感器及接口電路;其將收集多媒體教室各種設(shè)備的信息送到Arduino Mega 2560單片機(jī)上,所有信號(hào)由單片機(jī)進(jìn)行數(shù)據(jù)的讀取和處理,然后通過藍(lán)牙通信模塊用無線傳輸數(shù)據(jù)方式將處理后的數(shù)據(jù)發(fā)送至Android智能終端作數(shù)據(jù)顯示,以實(shí)現(xiàn)監(jiān)測(cè)和檢查。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
多媒體教室設(shè)備的狀態(tài)檢測(cè)一般包括光亮度、電流、電壓、溫度、濕度等多個(gè)方面,數(shù)量和采集位置可根據(jù)實(shí)際使用情況靈活配置。一般使用光照傳感器1個(gè),主要用于采集教室環(huán)境光線的強(qiáng)度和投影設(shè)備的亮度;溫濕度傳感器1個(gè),主要用于采集教室設(shè)備的運(yùn)行環(huán)境情況;電流和電壓傳感器各6個(gè),用于采集教室設(shè)備的運(yùn)行信息;1個(gè)藍(lán)牙通訊從模塊用于數(shù)據(jù)的傳輸通訊。
光照傳感器用于采集教室設(shè)備的運(yùn)行環(huán)境情況,為避免環(huán)境差異容易造成數(shù)據(jù)采集的誤差,光照傳感器采用不區(qū)分環(huán)境光源,接近于視覺靈敏度的分光特性BH1750FVI光照傳感器[5]。BH1750FVI是ROHM公司生產(chǎn)的一種內(nèi)置16 bit A/D轉(zhuǎn)換器的兩線式串行總線接口集成電路,可根據(jù)收集的光線強(qiáng)度數(shù)據(jù)來進(jìn)行投影系統(tǒng)和環(huán)境監(jiān)測(cè),其具有0~65 535 lx的較大范圍和1 lx高分辨率。
溫濕度傳感器主要用于采集教室設(shè)備的運(yùn)行環(huán)境情況,文中采用Sensirion公司開發(fā)的SHT10數(shù)字溫濕度傳感器[6],其是一款14 bit兩線制,內(nèi)含已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。測(cè)量范圍:溫度-40~+123.8℃,濕度0~100%RH;測(cè)量精度:溫度±0.5℃,濕度±4.5%RH;響應(yīng)時(shí)間8 s(tau63%);功耗150μW(typ)。為保證傳感器的最高精度,供電電壓設(shè)為3.3 V,并在電源引腳之間加一個(gè)100 nF的退耦濾波電容。另外,為避免信號(hào)沖突,系統(tǒng)控制板的驅(qū)動(dòng)DATA在低電平,通過外接上拉電阻將信號(hào)提拉至高電平。溫濕度傳感器用于對(duì)教室機(jī)柜內(nèi)的設(shè)備運(yùn)行環(huán)境進(jìn)行監(jiān)測(cè)。
電流和電壓傳感器主要是采集設(shè)備的工作運(yùn)行情況,采用北京新創(chuàng)四方電子生產(chǎn)的TVA1421系列小型精密交流電壓電流通用互感器[7],其具有隔離能力強(qiáng)、精度高、采樣范圍寬及應(yīng)用靈活等優(yōu)點(diǎn)。在電壓≤1 000 V,電流≤18 A的范圍內(nèi)均可實(shí)現(xiàn)準(zhǔn)確的采集,同時(shí)因其絕緣度高、體積小、密封性好、安裝方便均為系統(tǒng)提供了良好的應(yīng)用環(huán)境。
為保證巡檢系統(tǒng)間的正常匹配,藍(lán)牙模塊則使用HC-06從模塊。HC-06的工作電壓為3.6~6 V,未配對(duì)時(shí)電流約30 mA,配對(duì)后約10 mA,串口接口電平3.3 V,可直接連接系統(tǒng)控制板,其引出接口包括Vcc、Gnd、Txd、Rxd,同時(shí)預(yù)留了LED狀態(tài)指示輸出端,可通過該輸出端狀態(tài)判斷藍(lán)牙連接是否正常。在未建立藍(lán)牙連接時(shí)支持通過AT指令設(shè)置波特率、名稱、配對(duì)密碼,同時(shí)設(shè)置的參數(shù)掉電保存,藍(lán)牙連接后會(huì)自動(dòng)切換到透?jìng)髂J剑?]。
由于光照傳感器、溫濕度傳感器均是數(shù)字式通訊接口,藍(lán)牙模塊是使用串口連接,便于與Arduino Mega 2560系統(tǒng)的連接,因此通過傳感器擴(kuò)展板或直接數(shù)字接口均可進(jìn)行信號(hào)連接。此外,電流和電壓傳感器的連接則更為方便,只需簡(jiǎn)單的外接電阻便可與單片機(jī)系統(tǒng)的模擬輸入接口連接。
系統(tǒng)采用Arduino Mega 2560單片機(jī)作為處理器。其擁有多達(dá)54路數(shù)字輸入輸出,符合需大量IO接口的設(shè)計(jì)需求,且后期的功能擴(kuò)展性上也尤為突出。其中16路可作為PWM輸出,另有16路模擬輸入,4路UART接口,1個(gè)16 MHz晶體振蕩器,并可兼容ArduinoUNO設(shè)計(jì)的擴(kuò)展板。選擇ArduinoMega2560作為數(shù)據(jù)采集與控制器,可完全滿足2個(gè)光照傳感器、1個(gè)溫濕度傳感器、6個(gè)電流和電壓傳感器以及1個(gè)藍(lán)牙通訊從模塊的數(shù)據(jù)處理需求。另外,其還可通過ATmega16U2芯片組成的USB接口與計(jì)算機(jī)進(jìn)行通訊,具有開放源代碼與簡(jiǎn)單易用的設(shè)計(jì)軟硬件開發(fā)平臺(tái)及豐富的外圍模塊等。近年來在PC、工作站、服務(wù)器、專業(yè)的家用智能網(wǎng)絡(luò)控制中心或機(jī)器人等領(lǐng)域,Arduino均可實(shí)現(xiàn)人工智能控制、現(xiàn)場(chǎng)數(shù)據(jù)收集、數(shù)據(jù)分析和數(shù)據(jù)處理。系統(tǒng)硬件連接如圖2所示。
圖2 系統(tǒng)硬件的連接
Arduino系統(tǒng)控制軟件使用類似Java.C語言的Processing/Wiring開發(fā)環(huán)境,由Arduino.cc官方網(wǎng)站提供了基于Eclipse的開源IDE軟件開發(fā)環(huán)境,有免費(fèi)的軟件源碼庫(kù)和開發(fā)環(huán)境。BH1750FVI、SHT10、HC-06、電流和電壓傳感器等驅(qū)動(dòng)Arduino都均有相應(yīng)的代碼庫(kù),可直接下載使用或可按需求進(jìn)行修改使用。系統(tǒng)控制軟件流程如圖3所示。
圖3 系統(tǒng)控制軟件流程
Android終端是將接收到藍(lán)牙通訊模塊發(fā)送的數(shù)據(jù)信息進(jìn)行顯示,完成狀態(tài)的實(shí)時(shí)顯示與監(jiān)測(cè)。Android智能終端擁有較大的數(shù)據(jù)存儲(chǔ)空間和較強(qiáng)的計(jì)算能力,其擁有開放性、便攜性、無縫網(wǎng)絡(luò)通信、待機(jī)時(shí)間長(zhǎng)等特點(diǎn),可較好地滿足移動(dòng)巡檢系統(tǒng)中對(duì)數(shù)據(jù)處理與通信的要求。運(yùn)用Google Accessory Development Kit標(biāo)準(zhǔn)教程搭建開發(fā)環(huán)境[9],數(shù)據(jù)處理與通信系統(tǒng)程序由3部分組成:后臺(tái)服務(wù)主要完成線程執(zhí)行與數(shù)據(jù)交互、狀態(tài)監(jiān)測(cè)、數(shù)據(jù)處理;用戶界面是完成與用戶的交互和相關(guān)傳感器數(shù)據(jù)實(shí)時(shí)顯示;數(shù)據(jù)持久則是存儲(chǔ)相關(guān)狀態(tài)信息并實(shí)現(xiàn)文件讀寫。其功能模塊如圖4所示。
圖4 功能模塊
由于本巡檢系統(tǒng)有多個(gè)部件連接到多媒體教室的強(qiáng)電部分線路,同時(shí)需在不影響正常教學(xué)活動(dòng)中使用,因此硬件結(jié)構(gòu)需獨(dú)立于原來的教室中控系統(tǒng),且需要具有安裝方法靈活方便、抗干擾能力強(qiáng)、盡可能減少對(duì)原多媒體控制系統(tǒng)的依賴和影響。為此,巡檢系統(tǒng)采用獨(dú)立的全封閉的金屬外殼,配置多個(gè)獨(dú)立的供電插口用來采集各設(shè)備信息,在安裝上僅取代原系統(tǒng)的電源插板,這樣既可將強(qiáng)電部分線路進(jìn)行封閉,且有效地提高干擾能力和安全性能。此外,還可方便靈活地植入原系統(tǒng)中,因此具備了進(jìn)行建設(shè)成本低、可靠性高和實(shí)用性強(qiáng)等優(yōu)點(diǎn)。硬件結(jié)構(gòu)如圖5所示。
圖5 硬件結(jié)構(gòu)
本文采用Arduino Mega 2560單片機(jī)作為系統(tǒng)控制,利用多個(gè)傳感器采集多媒體教室設(shè)備的工作與環(huán)境信息,數(shù)據(jù)通過藍(lán)牙通訊模塊傳送給Android智能終端,實(shí)現(xiàn)了不影響正常教學(xué)活動(dòng)的巡檢工作。由于系統(tǒng)采用開源的Arduino軟硬件平臺(tái),因此在成本控制、可靠性、實(shí)用性等方面均有良好表現(xiàn)。在開發(fā)初期只在同一教學(xué)樓內(nèi)10間教室內(nèi)安裝測(cè)試,系統(tǒng)運(yùn)行半年基本穩(wěn)定,達(dá)到了預(yù)定的巡檢監(jiān)測(cè)目標(biāo)。但系統(tǒng)在測(cè)試的過程中也呈現(xiàn)出問題和不足:如功能較少,視頻監(jiān)控、信息共享等擴(kuò)展功能未能加入;光照度傳感器的安裝位置和方式對(duì)采樣數(shù)值影響較大;電壓、電流數(shù)值變化較多且較快,給采集帶來了誤差;相鄰教室藍(lán)牙通訊的匹配區(qū)分;數(shù)據(jù)顯示延時(shí)過長(zhǎng)等,以上缺陷還需進(jìn)一步改進(jìn)。
[1]Arduino.Arduino[EB/OL].(2013-05-15)[2013-11-15]http://zh.wikipedia.org/wiki/Arduino.
[2]Arduino.Android[EB/OL].(2012-07-07)[2013-10-23]http://www.android.com.
[3]Arduino.Arduino ADK[EB/OL].(2011-08-28)[2013-12-01]http://arduino.cc/en/Main/ArduinoBoardADK.
[4]Yeelink.Yeelink API[EB/OL].(2012-06-15)[2013-11-29]http://www.yeelink.net/develop/api.
[5]ROHM.BH1750FVI光強(qiáng)度傳感器數(shù)據(jù)手冊(cè)[EB/OL].(2012-03-07)[2013-11-29]http://www.rohm.com.cn/web/china.
[6]SI.Sensirion SHT10數(shù)字溫濕度傳感器數(shù)據(jù)手冊(cè)[EB/OL].(2012-09-12)[2013-11-29]http://www.sensirion.com/en/home.
[7] 北京新創(chuàng)四方電子有限公司.TVA1421小型精密交流電壓電流通用互感器數(shù)據(jù)手冊(cè)[EB/OL].(2010-02-06)[2013-11-28]http://www.bingzi.com.
[8] 朱洪濤,吳洪波,李錚.于Android平臺(tái)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2013(3):113-117.
[9]Google.Accessory development Kit[EB/OL].(2012-03-03)[2013-11-16]http://developer.android.com/tools/adk/index.html.