王培錦+路佳宣
摘 要:在分析了實(shí)際學(xué)校環(huán)境的基礎(chǔ)上,創(chuàng)造性地提出了一個(gè)基于ZigBee技術(shù)的無線多傳感器火災(zāi)報(bào)警與火警監(jiān)控的跨平臺(tái)火警系統(tǒng)解決方案。宿舍樓安放的PC機(jī)不僅能夠?qū)崟r(shí)對(duì)宿舍環(huán)境進(jìn)行監(jiān)測(cè),當(dāng)溫度,煙霧超出指標(biāo)后,還能及時(shí)向持有安卓設(shè)備的樓層管理員發(fā)出火災(zāi)警報(bào)。該跨平臺(tái)的系統(tǒng)是火警探測(cè)領(lǐng)域的一個(gè)突破,具有極大的實(shí)用價(jià)值。
關(guān)鍵詞:ZigBee;HTML;Android;PHP
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)07-000-03
0 引 言
近年來,經(jīng)常會(huì)看到各種新聞報(bào)道中發(fā)生在學(xué)校的火災(zāi),這些火情不僅會(huì)造成巨大的財(cái)產(chǎn)損失,而且會(huì)嚴(yán)重威脅師生的生命安全。因此,擁有一款實(shí)用準(zhǔn)確的火災(zāi)報(bào)警系統(tǒng)十分必要。目前已有的火災(zāi)報(bào)警系統(tǒng)一般采用有線方式連接,不僅影響美觀,而且不易擴(kuò)展,布置嚴(yán)格受到地形的限制。在很多老舊的教學(xué)樓內(nèi)存在難以布線的問題,并且由于使用有線的方式連接,線路容易發(fā)生老化或遭到腐蝕、鼠咬、磨損等問題,嚴(yán)重影響了火情的準(zhǔn)確報(bào)警?;馂?zāi)報(bào)警往往局限于室內(nèi)的燈光,警鈴和自動(dòng)的消防設(shè)施,而當(dāng)出現(xiàn)室內(nèi)消防設(shè)施無法解決的嚴(yán)重火情時(shí)難以與外界取得聯(lián)系,尤其是在室內(nèi)無人的情況下,極易延誤救火的黃金時(shí)期,延誤火情。
本文成功設(shè)計(jì)了一整套基于安卓手機(jī)和Web的跨平臺(tái)防火報(bào)警系統(tǒng)。本系統(tǒng)可實(shí)現(xiàn)火災(zāi)的有效檢測(cè),當(dāng)檢測(cè)到火災(zāi)后可對(duì)綁定的手機(jī)進(jìn)行報(bào)警和火情的服務(wù)器上傳,方便消防人員及時(shí)了解火災(zāi)情況,及時(shí)采取措施。
本系統(tǒng)分為無線模塊,主機(jī)模塊,安卓模塊和Web模塊[1-3]。其中無線模塊使用基于CC2530的ZigBee設(shè)備,使用IAR平臺(tái)進(jìn)行開發(fā)。主機(jī)模塊搭載在基于Windows系統(tǒng)的PC機(jī)上,使用VS2010進(jìn)行開發(fā),主要靠MFC來實(shí)現(xiàn)。安卓模塊使用Eclipse平臺(tái)進(jìn)行開發(fā),使用的是2.3.2版本。Web模塊采用SAE平臺(tái)進(jìn)行開發(fā)。
1 系統(tǒng)的總體設(shè)計(jì)方案
本系統(tǒng)的整體框架由5部分組成,包括4個(gè)模塊,無線模塊主要由無線傳感器網(wǎng)絡(luò)組成,負(fù)責(zé)環(huán)境數(shù)據(jù)的采集和無線傳輸,環(huán)境數(shù)據(jù)最終被匯總到協(xié)調(diào)器中,協(xié)調(diào)器通過串口與主機(jī)模塊進(jìn)行數(shù)據(jù)傳輸。主機(jī)模塊對(duì)數(shù)據(jù)進(jìn)行判斷處理,將處理得到的結(jié)果通過Socket發(fā)到安卓模塊設(shè)備中,此時(shí)安卓模塊設(shè)備產(chǎn)生報(bào)警,并通過HTTP指令將火情的地址發(fā)送至Web模塊。這樣,我們就可以通過瀏覽相應(yīng)網(wǎng)頁、Web模塊來方便地觀察最新發(fā)生的火情,并進(jìn)行響應(yīng)。圖1是該系統(tǒng)的整體框架圖。
圖1 系統(tǒng)整體框架圖
2 各模塊的設(shè)計(jì)
2.1 無線模塊的設(shè)計(jì)
無線模塊采用ZigBee標(biāo)準(zhǔn)設(shè)計(jì),相比于藍(lán)牙,WiFi,紅外線等其他技術(shù),ZigBee技術(shù)具有功耗低,設(shè)備穩(wěn)定可靠,無線傳輸不受障礙物影響等諸多優(yōu)點(diǎn)。目前使用最廣泛和最受推廣的協(xié)議棧是ZigBee2007協(xié)議,TI公司已經(jīng)生產(chǎn)出了完全兼容該協(xié)議的CC2530芯片及相應(yīng)的Z-Stack協(xié)議棧,這也是本系統(tǒng)所采用的芯片和協(xié)議棧。
相比于其他的通信協(xié)議,ZigBee在傳輸距離和傳輸速率上都不是很占優(yōu)勢(shì)。ZigBee的傳輸速率在20~250 Kb/s,傳輸距離通常為10~100 m。但是比起其他通信方式,ZigBee擁有成本低,功耗小等優(yōu)點(diǎn),因此特別適用于工業(yè)領(lǐng)域傳輸小量的數(shù)據(jù)。
DS18B20是一款常用的溫度傳感器[4],這款傳感器的體積小,精度高,同時(shí)它也具有較強(qiáng)的抗干擾能力和低廉的價(jià)格等諸多優(yōu)點(diǎn)。DS18B20采用單總線接口方式,我們只需要一根線就能完成傳感器與微處理器的連接,十分簡(jiǎn)便。它的測(cè)量范圍在-55~125 ℃,工作電壓為3.0~5.5 V/DC。無需增加其他外圍原件和外圍電路,可直接通過傳感器進(jìn)行溫度的測(cè)量[5]。
MQ-2煙霧傳感器是一款常被使用的煙霧傳感器,它擁有十分廣泛的探測(cè)范圍,優(yōu)異的穩(wěn)定性,很高的靈敏度等諸多優(yōu)點(diǎn),只需要加簡(jiǎn)單的驅(qū)動(dòng)電路就能夠使用。這款傳感器可用于各類工廠的氣體檢測(cè),它同樣適用于家庭,是一款應(yīng)用十分廣泛的產(chǎn)品。它可以用于丁烷,乙烷,丙烷,液化氣,酒精,氫氣,煙霧等的探測(cè)。
本系統(tǒng)將傳感器的驅(qū)動(dòng)和讀取環(huán)境相關(guān)參數(shù)的程序加在終端節(jié)點(diǎn)的程序中,使終端節(jié)點(diǎn)在加入ZigBee網(wǎng)絡(luò)的同時(shí)讀取相關(guān)參數(shù),并實(shí)現(xiàn)向協(xié)調(diào)器傳遞參數(shù)的工作。
2.2 主機(jī)模塊的設(shè)計(jì)
主機(jī)模塊與無線模塊之間采用串口進(jìn)行通信,串口通常也被叫做COM口,是采用串行通信方式的擴(kuò)展接口。串口在上個(gè)世紀(jì)80年代推出,傳輸速率在115 Kb/s~230 Kb/s之間。串口通信的方式分為兩種:同步通信方式和異步通信方式。本系統(tǒng)的ZigBee設(shè)備自帶了USB口轉(zhuǎn)串口的芯片,使用USB連接線即可與PC端相連,不過PC端仍需編寫串口的程序?qū)f(xié)調(diào)器傳來的數(shù)據(jù)進(jìn)行接收。串口接收的流程如圖2所示。
圖2 串口接收流程圖
每個(gè)進(jìn)程都至少需要一個(gè)線程,進(jìn)程是資源分配的基本單位,線程是執(zhí)行操作的基本操作[5]。進(jìn)程可理解為一個(gè)正在運(yùn)行的程序?qū)嵗?,可用來申?qǐng)系統(tǒng)資源。一個(gè)進(jìn)程可擁有多個(gè)線程,進(jìn)程是線程的容器,但是具體完成某項(xiàng)操作,還是要靠線程來完成。本系統(tǒng)采用多線程的技術(shù),一個(gè)線程負(fù)責(zé)串口數(shù)據(jù)的接收和處理,另一個(gè)線程負(fù)責(zé)PC端作為服務(wù)器對(duì)Socket端口的監(jiān)聽和TCP連接的保持。具體流程如圖3所示。
圖3 多線程程序的設(shè)計(jì)圖
在主機(jī)模塊需要對(duì)串口接收的數(shù)據(jù)進(jìn)行判定,本系統(tǒng)使用閾值法進(jìn)行火情的判斷,閾值法是一種最簡(jiǎn)單也是最常用的判斷機(jī)制,它根據(jù)專家經(jīng)驗(yàn)設(shè)置一個(gè)閾值,當(dāng)超過閾值后進(jìn)行相應(yīng)的反應(yīng),當(dāng)不足閾值時(shí)不做反應(yīng),繼續(xù)進(jìn)行檢測(cè)。本次實(shí)驗(yàn)采用溫度和煙霧傳感器,通過設(shè)置溫度和煙霧的閾值,當(dāng)超過閾值后進(jìn)行相應(yīng)的報(bào)警。同時(shí)因?yàn)椴捎昧?個(gè)傳感器,減少了因傳感器不穩(wěn)定造成的短暫超過閾值的誤報(bào)警,極大地提高了報(bào)警的準(zhǔn)確性,并且運(yùn)行速度較快,能夠及時(shí)對(duì)變量值的改變進(jìn)行反應(yīng)和報(bào)警,具有反應(yīng)時(shí)間短等諸多優(yōu)點(diǎn)。
2.3 安卓模塊的設(shè)計(jì)
Eclipse是一個(gè)開發(fā)Java和安卓的主流開發(fā)平臺(tái),和安卓系統(tǒng)一樣,Eclipse同樣是開放源代碼的。它只是一個(gè)框架,我們通過給Eclipse加上各種插件完成不同的開發(fā)任務(wù)。我們使用ADT插件在Eclipse上進(jìn)行安卓的開發(fā)。Eclipse開發(fā)界面如圖4所示。
圖4 Eclipse的開發(fā)界面
Java在.net庫中提供了兩個(gè)類用于Socket網(wǎng)絡(luò)編程供我們調(diào)用,他們分別是Socket和ServerSocket。它們分別表示通信的客戶端和服務(wù)器端。通過IP號(hào)和端口號(hào)建立Socket,相應(yīng)的函數(shù)如下。其中HOST為IP地址,PORT為端口號(hào):
Socket=new Socket(HOST,PORT);
之后獲取Socket流,并把流包進(jìn)BufferedWriter進(jìn)行讀寫。使用過后關(guān)閉流。通信中間的管道是通過輸入輸出流實(shí)現(xiàn)的,一旦這個(gè)通信的管道建立好了之后就可以通過管道在客戶機(jī)和服務(wù)器之間進(jìn)行通信。因此如果將通信管道關(guān)閉,那么同時(shí)也就關(guān)閉了Socket。
安卓和MySQL交互可以使用XML和HTTP POST兩種方式。XML是一種可擴(kuò)展標(biāo)記語言,它可以用來標(biāo)記數(shù)據(jù)和定義數(shù)據(jù)的類型,適用于www的傳輸。如果說超文本標(biāo)記語言是用來顯示的話,那么XML就是用來傳輸數(shù)據(jù)的。XML語言在1998年成為了W3C的推薦標(biāo)準(zhǔn)。XML兼容現(xiàn)有的協(xié)議,可以訪問多種API,比如DOM,SAX,XSLT和Xpath等。對(duì)于數(shù)據(jù)的管理,XML同樣有自己統(tǒng)一的格式,這使得數(shù)據(jù)的管理變得十分簡(jiǎn)單方便,此外XML允許不同系統(tǒng)間數(shù)據(jù)的交互,使得跨平臺(tái)的系統(tǒng)實(shí)現(xiàn)成為了可能,不僅如此,XML使得底層數(shù)據(jù)的傳輸更具有可讀性,我們可以通過分析器看出底層究竟傳輸?shù)氖鞘裁磾?shù)據(jù)。
除了XML,還可以通過HTTP GET和HTTP POST兩種方式進(jìn)行數(shù)據(jù)的傳輸。一般來說GET用于數(shù)據(jù)的獲取,POST用于數(shù)據(jù)的更新,它可以用來改變服務(wù)器上的任意資源。使用POST需要用到表單,理論上使用POST是沒有大小限制的,因?yàn)镠TTP協(xié)議并沒有對(duì)它進(jìn)行限制,不過每個(gè)服務(wù)器都會(huì)有自己的限制。比起GET,POST的安全性更高,因?yàn)镚ET上的信息都會(huì)被明文顯示在URL中,但是POST不會(huì)。
2.4 Web模塊的設(shè)計(jì)
Web模塊包括網(wǎng)頁前臺(tái)的編寫和網(wǎng)頁后臺(tái)的編寫,本系統(tǒng)采用了新浪公司的SAE平臺(tái)進(jìn)行HTML前臺(tái)和PHP后臺(tái)的開發(fā)[6]。
網(wǎng)頁前臺(tái)系統(tǒng)采用HTML語言開發(fā),HTML語言結(jié)構(gòu)分為頭和主體兩個(gè)部分。頭部存放關(guān)于網(wǎng)頁的一些信息,主體存放著網(wǎng)頁的具體內(nèi)容。HTML語言具有諸多優(yōu)點(diǎn),比如簡(jiǎn)易性,可擴(kuò)展性,平臺(tái)無關(guān)性和通用性。HTML語言沒有復(fù)雜的語法,使用簡(jiǎn)單容易上手。與此同時(shí),HTML能夠在Windows,MAC等多種系統(tǒng)上開發(fā)和運(yùn)行,它與平臺(tái)無關(guān)的特性成就了www的廣泛使用。最后,HTML是一個(gè)通用的標(biāo)準(zhǔn),任何地方的任何設(shè)備都應(yīng)該遵守這一標(biāo)準(zhǔn)在網(wǎng)上進(jìn)行數(shù)據(jù)的傳遞和瀏覽。
網(wǎng)頁后臺(tái)系統(tǒng)采用PHP語言編寫。PHP語言又叫做超文本預(yù)處理器,是一種常用的后臺(tái)語言,它是開源的,吸收了C、Java、Perl等多種語言的特點(diǎn)。PHP主要用于Web平臺(tái)的開發(fā)。PHP有諸多優(yōu)點(diǎn),它能夠更快地執(zhí)行網(wǎng)頁,此外PHP支持現(xiàn)有的所有數(shù)據(jù)庫和操作系統(tǒng),并可以很好的與其他語言進(jìn)行融合。PHP可以消耗較小的資源進(jìn)行執(zhí)行,此外具有很好的跨平臺(tái)性,這些都為PHP的廣泛使用提供了很好的條件。
可以使用mysql_connect函數(shù)打開數(shù)據(jù)庫的鏈接,該函數(shù)的聲明如下:
mysql_connect(server,user,pwd,newlink,clientflag);
其中,server規(guī)定要選擇的服務(wù)器,user是用戶名,pwd是密碼,newlink和clientflag是可選項(xiàng),規(guī)定了一些可選的特征。連接數(shù)據(jù)庫成功后就可以調(diào)用SQL語句進(jìn)行數(shù)據(jù)的操作。
Sina App Engine(SAE)是新浪公司2009年開始研發(fā)推出的首個(gè)國(guó)內(nèi)App Engine平臺(tái)[7]。新浪SAE吸收了Google,Amazon等多個(gè)公司的成功開發(fā)經(jīng)驗(yàn),為用戶和開發(fā)者提供了一個(gè)全新的云計(jì)算和存儲(chǔ)平臺(tái)。SAE選用Web作為其開發(fā)方式,平臺(tái)內(nèi)部綜合了數(shù)據(jù)庫,HTML等多種開發(fā)環(huán)境,為中小型企業(yè)和個(gè)人開發(fā)者的軟件開發(fā)提供了極大的方便。
3 系統(tǒng)的總體測(cè)試
3.1 無線模塊的測(cè)試
首先將IAR的程序燒制到協(xié)調(diào)器和終端節(jié)點(diǎn)中,然后將協(xié)調(diào)器通過串口與主機(jī)連接,本次實(shí)驗(yàn)采用的ZigBee套件集成了串口轉(zhuǎn)U口的芯片,可直接通過USB連接線與主機(jī)相連,打開協(xié)調(diào)器和終端節(jié)點(diǎn)。
接著打開串口助手,本次實(shí)驗(yàn)采用COM4串口,波特率為115 200,可以從串口觀察到各終端節(jié)點(diǎn)傳來的數(shù)據(jù),其中第一位是節(jié)點(diǎn)的標(biāo)志。
圖5是串口助手觀察結(jié)果示意圖。
圖5 串口助手觀察結(jié)果
至此,無線模塊的任務(wù)圓滿完成。無線模塊實(shí)現(xiàn)了目標(biāo)區(qū)域溫度和煙霧數(shù)據(jù)的收集,并實(shí)現(xiàn)了終端節(jié)點(diǎn)通過ZigBee網(wǎng)絡(luò)向協(xié)調(diào)器進(jìn)行數(shù)據(jù)發(fā)送及協(xié)調(diào)器通過串口向主機(jī)進(jìn)行數(shù)據(jù)傳輸。
3.2 安卓端報(bào)警器的測(cè)試
首先打開安卓端報(bào)警器,進(jìn)入初始界面后,在文本框中輸入主機(jī)IP地址,與PC端主機(jī)建立連接。輸入主機(jī)地址后開始進(jìn)入監(jiān)測(cè)模式,等待PC服務(wù)器端傳來火情信息,若無火情信息,那么安卓端一直處于監(jiān)測(cè)模式。若有火情發(fā)生,安卓端彈出火災(zāi)報(bào)警框并播放警示音樂提醒樓管人員,可通過點(diǎn)擊“解除火警”按鈕來結(jié)束報(bào)警。圖6是安卓手機(jī)端進(jìn)入監(jiān)測(cè)模式示意圖。
圖6 安卓手機(jī)端進(jìn)入監(jiān)測(cè)模式
3.3 安卓端火情上傳系統(tǒng)的測(cè)試
使用瀏覽器打開網(wǎng)頁,進(jìn)入數(shù)據(jù)庫可查詢實(shí)時(shí)的報(bào)警消息(見圖7)。當(dāng)安卓設(shè)備持有者確定火情發(fā)生后即可使用這款A(yù)pp方便的將火情地址傳送到服務(wù)器上的數(shù)據(jù)庫中。通過這款火情上傳App,宿舍管理員可方便及時(shí)的將火情上傳到服務(wù)器中,供消防人員和校園警察進(jìn)行查詢,并且快速的做出反應(yīng)。
圖7 報(bào)警信息的查詢
4 結(jié) 語
ZigBee具有短距離、低成本、低功耗、易實(shí)現(xiàn)、安全可靠的特點(diǎn),適合作為自動(dòng)報(bào)警系統(tǒng)的組成部件。本項(xiàng)目設(shè)計(jì)了一種基于ZigBee技術(shù)的無線消防報(bào)警系統(tǒng),實(shí)現(xiàn)了室內(nèi)火警監(jiān)測(cè),解決了現(xiàn)有火災(zāi)報(bào)警系統(tǒng)設(shè)計(jì)、施工與維護(hù)復(fù)雜,抗干擾能力低,故障率和誤報(bào)率高等問題。因此,基于ZigBee技術(shù)的自動(dòng)報(bào)警系統(tǒng),必將在未來的智能樓宇中得到更普遍的發(fā)展和應(yīng)用。
參考文獻(xiàn)
[1] Kinney P. ZigBee technology: Wireless control that simply works[C]. Communications design conference,2003, 2.
[2] Pengfei L, Jiakun L, Luhua N, et al. Research and application of ZigBee protocol stack[C]. Measuring Technology and Mechatronics Automation (ICMTMA), 2010 International Conference on. IEEE, 2010(2): 1031-1034.
[3] 劉明光.基于ZigBee無線技術(shù)的電氣火災(zāi)監(jiān)控系統(tǒng)應(yīng)用設(shè)計(jì)[D].濟(jì)南:山東大學(xué),2010.
[4]李鋼, 趙彥峰.1-Wire 總線數(shù)字溫度傳感器 DS18B20 原理及應(yīng)用[J].現(xiàn)代電子技術(shù),2006, 29(21): 77-79.
[5] 駱斌,費(fèi)翔林.多線程技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)研究與發(fā)展, 2000,37(4):407-412.
[6] 蘇成君,何不廉.PHP在Web數(shù)據(jù)庫的應(yīng)用研究[J].計(jì)算機(jī)工程,2000, 26(9):184-185.
[7] 叢磊.新浪云計(jì)算 SAE 的技術(shù)演變[J].程序員,2013(4):58-59.