應(yīng)澤光,張海玲,杜葉挺
(浙江國(guó)際海運(yùn)職業(yè)技術(shù)學(xué)院,浙江 舟山 316021)
浴場(chǎng)的安全運(yùn)營(yíng)對(duì)社會(huì)、對(duì)其自身發(fā)展都有重要意義。目前,浴場(chǎng)主要依靠救生員觀察的方式來(lái)完成安全監(jiān)管,但救生員的注意力無(wú)法長(zhǎng)時(shí)間保持集中,且浴場(chǎng)范圍較大、人員眾多,不利于觀察,容易導(dǎo)致險(xiǎn)情發(fā)現(xiàn)不及時(shí),造成人員傷亡事故。隨著近些年物聯(lián)網(wǎng)技術(shù)在各個(gè)產(chǎn)業(yè)的應(yīng)用不斷增加,溺水報(bào)警裝置的研究隨之增加,但大多是針對(duì)游泳池環(huán)境[1]。相比于游泳池,露天浴場(chǎng)的范圍更大、人員更多、環(huán)境更復(fù)雜,泳池溺水報(bào)警裝置無(wú)法滿足浴場(chǎng)實(shí)際需求。
針對(duì)以上問(wèn)題,本文設(shè)計(jì)了一種基于GPRS的智能浴場(chǎng)救生系統(tǒng),通過(guò)監(jiān)測(cè)穿戴設(shè)備的位置信息、報(bào)警信息和通信狀態(tài)分析游客狀態(tài)。當(dāng)設(shè)備信息異常的時(shí)會(huì)發(fā)出警報(bào),協(xié)助浴場(chǎng)救生員及時(shí)發(fā)現(xiàn)險(xiǎn)情并快速鎖定險(xiǎn)情位置,提高救生效率。
本系統(tǒng)包括溺水報(bào)警穿戴設(shè)備和上位機(jī)??紤]到部分露天浴場(chǎng)規(guī)模較大,用戶身上的穿戴設(shè)備與監(jiān)控中心的上位機(jī)距離較遠(yuǎn),穿戴設(shè)備與上位機(jī)采用GPRS通信。穿戴設(shè)備采用頭戴式結(jié)構(gòu),裝載在泳帽前端。當(dāng)游客頭部在水面上時(shí),穿戴設(shè)備接收北斗/GPS雙模定位數(shù)據(jù),并定時(shí)向上位機(jī)上傳位置等設(shè)備相關(guān)信息。上位機(jī)接收到穿戴設(shè)備的數(shù)據(jù)后進(jìn)行分析,對(duì)游客安全做出判斷。若設(shè)備信息及位置信息正常,則對(duì)該設(shè)備進(jìn)行安全標(biāo)注;若位置信息異?;蚝謩?dòng)報(bào)警信息,系統(tǒng)做報(bào)警處理。當(dāng)游客頭部在水下時(shí),穿戴設(shè)備的數(shù)據(jù)無(wú)法順利上傳至上位機(jī)。當(dāng)一定時(shí)間未接收到某個(gè)穿戴設(shè)備的數(shù)據(jù),上位機(jī)將做失聯(lián)報(bào)警處理,通知浴場(chǎng)救援人員實(shí)施救援,并在地圖上最后一次接收到該設(shè)備的位置做警告標(biāo)注。
系統(tǒng)穿戴設(shè)備由主控模塊、GPRS通信模塊、北斗/GPS雙模定位模塊、手動(dòng)報(bào)警模塊和電源模塊等構(gòu)成,其硬件基本構(gòu)成如圖1所示。
圖1 穿戴設(shè)備硬件結(jié)構(gòu)
穿戴設(shè)備的設(shè)計(jì)中,主控芯片需滿足尺寸小、功耗低、可靠性高等要求。為了滿足穿戴設(shè)備系統(tǒng)需求,控制設(shè)備生產(chǎn)成本,本系統(tǒng)設(shè)計(jì)過(guò)程中主控芯片選用國(guó)產(chǎn)超低功耗芯片HC32L136K8TA。
HC32L136系列是一款旨在延長(zhǎng)便攜式測(cè)量系統(tǒng)的電池使用壽命的超低功耗、寬電壓工作范圍的微處理器。該芯片支持1.8~5.5 V的寬供電范圍,擁有12位1 Msps高精度SARADC,內(nèi)置多個(gè)高性能PWM定時(shí)器、集成了多路UART,I2C,SPI等豐富的通信接口,具有高整合度、高抗干擾、高可靠性和超低功耗的特點(diǎn),適用于本系統(tǒng)穿戴設(shè)備。
GPRS通信具有通信距離遠(yuǎn)、數(shù)據(jù)傳輸速度快、開(kāi)發(fā)成本低等優(yōu)勢(shì)[2]。本系統(tǒng)選擇GPRS通信作為信息傳輸方式。從開(kāi)發(fā)成本、尺寸大小考慮,系統(tǒng)GPRS通信選用了SIM800A模塊。SIM800A模塊的工作電壓范圍為3.4~4.4 V,可直接用3.7 V電池給模塊供電。該模塊具有體積小、性能穩(wěn)定、性價(jià)比高等優(yōu)勢(shì),適用于緊湊型物聯(lián)網(wǎng)產(chǎn)品。
依據(jù)救援定位精度需求和穿戴設(shè)備尺寸需求,本系統(tǒng)選用ATGM332D 5N-31模塊采集設(shè)備位置信息。ATGM332D 5N-31模塊的核心為AT6558芯片,支持北斗或GPS衛(wèi)星導(dǎo)航系統(tǒng)的單系統(tǒng)定位,也支持北斗/GPS雙模定位,定位精度2.5 m內(nèi),能夠滿足救援要求,具有高靈敏度、低功耗、低成本、體積小等優(yōu)勢(shì)。
在ATGM332D 5N-31模塊使用中,為了保證定位精度和定位覆蓋范圍,同時(shí)打開(kāi)BDS和GPS定位。為了降低主控芯片的性能負(fù)擔(dān),設(shè)置ATGM332D 5N-31模塊僅輸出RMC定位信息,包括GNRMC,BDRMC,GPRMC。其中,GNRMC為北斗/GPS雙模定位信息,BDRMC為北斗定位信息,GPRMC為GPS定位信息。一般浴場(chǎng)地形開(kāi)闊,定位模塊可輸出雙模定位消息。若僅接收到有效的北斗信號(hào),定位模塊輸出BDRMC消息;若僅接收到有效的GPS信號(hào),定位模塊輸出GPRMC消息。
常見(jiàn)的溺水報(bào)警裝置主要利用被動(dòng)報(bào)警的方式。當(dāng)檢測(cè)到身體數(shù)據(jù)異常時(shí),報(bào)警裝置自動(dòng)發(fā)出求救信號(hào),此時(shí)溺水者已處于危險(xiǎn)階段,容易導(dǎo)致救援不及時(shí)。因此,本系統(tǒng)設(shè)計(jì)了手動(dòng)報(bào)警單元,在頭戴式穿戴設(shè)備上設(shè)置一個(gè)報(bào)警按鈕。當(dāng)游客感覺(jué)自身狀態(tài)不佳、面臨危險(xiǎn)或發(fā)現(xiàn)身旁有人陷入險(xiǎn)境時(shí),可通過(guò)手動(dòng)報(bào)警單元主動(dòng)發(fā)起報(bào)警。
穿戴設(shè)備中的電池需滿足尺寸小、容量大、可充電、安全可靠等要求。參考當(dāng)前智能穿戴設(shè)備,本系統(tǒng)的設(shè)計(jì)中選用3.7 V的高性能聚合物電池進(jìn)行供電,滿足長(zhǎng)時(shí)間可靠安全使用的要求。穿戴設(shè)備每工作半小時(shí),主控芯片對(duì)電池電量進(jìn)行檢測(cè),當(dāng)電量較低時(shí),向上位機(jī)上傳電量信息提示工作人員及時(shí)充電。
系統(tǒng)報(bào)警分為自動(dòng)報(bào)警與手動(dòng)報(bào)警。自動(dòng)報(bào)警是上位機(jī)將穿戴設(shè)備的數(shù)據(jù)與對(duì)應(yīng)的報(bào)警門限數(shù)據(jù)進(jìn)行比較,當(dāng)設(shè)備數(shù)據(jù)超過(guò)門限時(shí),系統(tǒng)進(jìn)入報(bào)警狀態(tài),主要有越界自動(dòng)報(bào)警和失聯(lián)自動(dòng)報(bào)警。手動(dòng)報(bào)警是游客手動(dòng)觸發(fā)穿戴設(shè)備上的手動(dòng)報(bào)警單元后,穿戴設(shè)備將報(bào)警信號(hào)上傳至上位機(jī),直接觸發(fā)報(bào)警。浴場(chǎng)救生系統(tǒng)報(bào)警及復(fù)位條件,如表1所示。當(dāng)達(dá)到報(bào)警條件時(shí)觸發(fā)聲光報(bào)警,滿足復(fù)位條件時(shí)取消報(bào)警。
表1 系統(tǒng)報(bào)警及復(fù)位條件
在實(shí)際浴場(chǎng)中,作為安全邊界的浮式圍欄在風(fēng)浪影響下會(huì)小幅波動(dòng)。在實(shí)際安全邊界2 m內(nèi)可視為安全緩沖帶。在上位機(jī)中將地圖中的安全邊界2 m范圍內(nèi)的穿戴設(shè)備設(shè)定為預(yù)警關(guān)注狀態(tài),超出安全邊界2 m即為越界狀態(tài)。當(dāng)設(shè)備位置回到安全范圍內(nèi)時(shí),報(bào)警自動(dòng)復(fù)位,也可在上位機(jī)手動(dòng)復(fù)位。
一般人水中屏氣時(shí)長(zhǎng)在60 s內(nèi),若保持運(yùn)動(dòng)狀態(tài),則潛水時(shí)間更短[3]。為了確保游客的安全,系統(tǒng)設(shè)計(jì)超過(guò)60 s未接收到設(shè)備位置更新時(shí)觸發(fā)失聯(lián)報(bào)警,若失聯(lián)報(bào)警10 s內(nèi)接收到設(shè)備位置更新則報(bào)警復(fù)位。其他報(bào)警情況需在上位機(jī)手動(dòng)復(fù)位。
穿戴設(shè)備軟件開(kāi)發(fā)環(huán)境為Keil MDK,溺水報(bào)警穿戴設(shè)備軟件工作流程,如圖2所示。
圖2 溺水報(bào)警穿戴設(shè)備軟件工作流程
設(shè)備開(kāi)始運(yùn)行后,MCU先初始化,然后對(duì)各子模塊初始化配置。當(dāng)MCU接收到定位模塊的定位數(shù)據(jù)后,進(jìn)行數(shù)據(jù)解析,并更新實(shí)時(shí)位置信息。每過(guò)一個(gè)位置發(fā)送周期時(shí)間,位置發(fā)送定時(shí)器觸發(fā)中斷函數(shù),穿戴設(shè)備GPRS通信模塊與上位機(jī)的服務(wù)器建立TCP/IP連接,并向上位機(jī)上傳設(shè)備信息。完成數(shù)據(jù)上傳任務(wù)后,MCU繼續(xù)接收并處理定位數(shù)據(jù),等待中斷信號(hào)。由于浴場(chǎng)中穿戴設(shè)備數(shù)量較多,為了防止通信信息阻塞,位置發(fā)送定時(shí)器定時(shí)時(shí)長(zhǎng)設(shè)置為2 s。
當(dāng)電量檢測(cè)定時(shí)中斷觸發(fā),MCU進(jìn)行電池電量檢測(cè),并在接下來(lái)60 s內(nèi)向上位機(jī)發(fā)送位置信息時(shí)一起打包電量信息。當(dāng)手動(dòng)報(bào)警時(shí),外部中斷觸發(fā)主動(dòng)報(bào)警函數(shù),穿戴設(shè)備每隔1 s向上位機(jī)發(fā)送報(bào)警信息,持續(xù)上傳60 s,確保報(bào)警信息及時(shí)反饋至上位機(jī)。若由于設(shè)備處于水下環(huán)境等原因,60 s未能正常上傳設(shè)備信息,溺水報(bào)警系統(tǒng)則會(huì)觸發(fā)失聯(lián)報(bào)警。
上位機(jī)軟件在Windows環(huán)境下開(kāi)發(fā)運(yùn)行,為確保系統(tǒng)所設(shè)計(jì)的上位機(jī)軟件具備跨平臺(tái)、可移植的特性,利用Qt平臺(tái)進(jìn)行上位機(jī)軟件的開(kāi)發(fā)[4]。Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架,有豐富的API,易做擴(kuò)展開(kāi)發(fā),適合開(kāi)發(fā)含地圖界面的上位機(jī)軟件[5]。
上位機(jī)浴場(chǎng)監(jiān)測(cè)系統(tǒng)作為TCP服務(wù)器端,接收溺水報(bào)警穿戴設(shè)備客戶端的連接請(qǐng)求,建立連接后接收穿戴設(shè)備上傳的數(shù)據(jù)。接收到穿戴設(shè)備的數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行解析,并更新數(shù)據(jù)庫(kù)中的信息,數(shù)據(jù)庫(kù)通過(guò)SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)。SQLite數(shù)據(jù)庫(kù)具有運(yùn)行快速、操作方便、管理簡(jiǎn)單、穩(wěn)定性高、可移植性強(qiáng)等優(yōu)勢(shì),并且可多線程安全訪問(wèn),不需要單獨(dú)的服務(wù)器進(jìn)程或操作的系統(tǒng),能夠滿足上位機(jī)軟件的應(yīng)用需求。
通過(guò)Qt與JavaScript交互的方式調(diào)用百度地圖API,在地圖中顯示浴場(chǎng)運(yùn)行實(shí)時(shí)情況。由于浴場(chǎng)內(nèi)地圖環(huán)境相對(duì)穩(wěn)定,可以下載離線地圖,方便系統(tǒng)的使用。當(dāng)?shù)貓D比例尺較大時(shí),狀態(tài)正常的游客用水滴狀圖標(biāo)標(biāo)識(shí),狀態(tài)異常的游客用紅色嘆號(hào)形狀的圖標(biāo)標(biāo)識(shí);當(dāng)?shù)貓D比例尺較小時(shí),僅顯示狀態(tài)異常的游客。
本文設(shè)計(jì)了一種基于GPRS的浴場(chǎng)溺水報(bào)警系統(tǒng),由溺水報(bào)警穿戴設(shè)備和上位機(jī)組成。穿戴設(shè)備以超低功耗芯片HC32L136K8TA作為主控芯片,通過(guò)GPRS上傳設(shè)備的位置與狀態(tài)信息。系統(tǒng)設(shè)計(jì)有越界自動(dòng)報(bào)警、失聯(lián)自動(dòng)報(bào)警、手動(dòng)報(bào)警等3種報(bào)警模式。上位機(jī)軟件在Qt平臺(tái)開(kāi)發(fā),并集成百度地圖API,顯示浴場(chǎng)實(shí)況地圖及報(bào)警信息。本系統(tǒng)設(shè)計(jì)可以實(shí)現(xiàn)異常報(bào)警,輔助指揮救援,降低浴場(chǎng)安全管理的難度,提升浴場(chǎng)運(yùn)營(yíng)的安全性。