謝江娜 劉利秋 趙佳琳等



關鍵詞:單片機系統;ZigBee通信;生理健康狀態評估;支持向量機算法
據國際救生協會統計,每年全球約有120 萬人因游泳而溺亡,大部分溺水者其實是熟練的游泳者,因為在游泳的過程中大多會產生抽筋和運動性休克的身體問題。與其他休閑運動項目比較,溺水身亡的背后,是安全防護的缺失。目前的防護手段主要是依靠救生員和泳池管理員的實時監測,耗費人力物力,且對專注力要求極高。因此設計一款能夠智能反饋游泳者游泳狀態及生理健康水平的系統,非常具有現實意義。
本文的設計是基于單片機和傳感器、無線通訊技術的智能泳池防溺水警報器及生理健康狀態評估系統。
選取單片機為核心控制器,采用水壓傳感電路實現入水深度的檢測,生理參數檢測模塊測量游泳者的生理參數,無線發送模塊實現將身份標簽信息與上位機傳輸,PC 端通過算法進行定位和健康狀態評估。
1 系統總體方案設計系統
主要由上位機和下位機組成。游泳者下位機采用單片機系統、水位監測系統、ZigBee 通信系統、定位系統、JFH111生理參數檢測傳感器模塊和報警系統實時監控游泳者安全和監測生理參數。定位基站實時監控游泳者的位置,實現縮小營救范圍,加快營救速度。上位機接收通信模塊傳來的信息包括游泳者的身份ID,水壓信息和失聯情況。具體原理是:采用水壓傳感器來判斷游泳者的深度,并配有進入危險區的警告燈光和振動報警。在游泳者的頭沉入水后,根據水壓傳感器探測到的數據,可以判定出游泳人的深度,如果超出了警告值,就會發出光閃振動的警告信號。一旦暫時失聯者的腦袋浮出海面,系統就可以繼續收發身份ID 信號。當游泳者一直在水下時,上位機沒有接收到對應的ID,那么就會一直計時。利用該方法可以獲得游泳者的頭部入水的時長,從而判定者有無溺水。從游泳者在不同時期的生理狀況來看,短暫的失去聯系是指泳者的頭沉在水里30 s,如果超過了30 s 就會失去聯系。同時上位機將接收來的生理參數信息通過SVM 算法得出游泳者生理健康水平,根據心率、血氧飽和度和血壓3 個生理參數,構建6 個支持向量機。最后分為身體狀況良好、輕微失衡和嚴重失衡,失衡時做出提醒和警示。系統結構如圖所示。
2 硬件電路設計
2.1 單片機最小系統
單片機作為系統的控制核心,需要控制整個系統的運行情況,所以本設計經過比較最終選擇單片機的型號為STC12C5A60S2。雖然也屬于51 單片機一類,但比普通的單片機運行速度更快,速度約為之前的8~12倍。另外還具有獨立的串行接口和獨立的波特率發生器。其具有的參數均可以滿足本設計的需求。單片機設計部分如圖3所示。
2.2 水壓檢測模塊
HX711 型微處理器的重量AD 模組,是一款高達24 位的A/D 變換芯片HX711,它是一款高精密的數字稱量系統。該輸入線路可以被構造成能夠為諸如壓力、稱重之類的橋接電橋型傳感器的結構,是一種精度高、成本低的理想的采樣頭組件。本模塊設計中,為方便試驗防止設備接觸水,使用HX711代替水壓傳感器。用給稱重塊施加壓力模擬設備入水的場景。本設計選用的量程為5 kg。實物圖如下。
2.3 通信模塊
無線模塊選擇zigbee 模塊,具體型號為DL-20。本設計采用一對多的方式進行連接,用3 臺下位機模擬3 個泳者,編號分別為1、2、3。采用DL-20的方式來進行全雙向的數據傳輸,具有較寬的頻帶、較寬的波特率和較好的收發器,并且價格比較便宜,可以用于串行的調試。
通過連接到無線通訊模塊和單片機的MCU,DL-20接收到來自于下位機的無線信息,從而實現了對下位機的全部識別。上位機判斷是否有人落水和開始計時的依據是下位機即泳者頭部是否入水和入水時間,同時將檢測到的生理參數發送到上位機。3臺下位機向上位機發送的標簽是不同的。1到3號機分別發送“1”“2”和“3”,如下圖所示。
2.4 JFH111生理參數檢測模塊
JFH111 生理參數檢測單元依據PPG光電容積脈搏波描記法、非貫穿式血壓測量方法中的模糊記憶方式作為基礎原理,可提供準確的脈搏波形、心臟跳動速率、血氧飽和度以及血壓數據。用戶系統只需通過串口即可和模塊通信,并且直接獲得測量結果,一定程度上降低了人體運動狀態下多項生理參數異常監測報警系統的復雜程度。JFH111生理參數檢測模塊電路原理及顯示效果如下圖所示。
3 軟件設計
3.1 主程序軟件設計
主程序通過對其他子程序的調用實現了設計功能,實現了對游泳者的頭部沒入水中時間計時、識別游泳者的實時狀態、實現溺水預警或報警、顯示游泳者的狀態以及向救生員發送救援信號。其中系統初始化包括了定時器0 和定時器1 的初始化,設置了定時器中斷的時間和串口通信波特率,還有STC12C5A60S2 的雙串口的初始化。主程序的流程圖如圖8所示。
3.2 狀態識別程序設計
游泳者的狀態根據游泳者的頭部沒入水中時間來判斷,頭部沒入水中時間超過30 s 的判定為暫時失聯,超過50 s 的判定為超時失聯。游泳者頭部沒入水中時間通過定時器中斷次數來確定,定時器0 設置為50 ms 定時中斷一次,將每個游泳者對應的定時中斷次數存放在1個數組中,每個游泳者對應的定時器中斷次數為數組中的一個元素,當接收到身份標簽時,將數組中對應的定時中斷次數清零,比如接收到身份標簽“1”,就將數組中第一個元素清零。頭部露出水面的游泳者所攜帶的下位機會一直向本設計發送身份標簽,所以中斷次數總是被清零。當某位游泳者的定時中斷次數達到600 次,判定該游泳者為暫時失聯,當某位游泳者的定時中斷次數達到1 000 次,判定該游泳者為超時失聯。
3.3 健康狀態評估數據分析程序設計
支持向量機(SVM)是一類按監督學習方式對數據進行二元分類的廣義線性分類器,其決策邊界是對學習樣本求解的最大邊距超平面,在標準樣本存在且覆蓋較廣的情況下,通過較少的測試樣本即可達到對樣本二分判斷的目的。利用MATLAB 結合SVM 編寫數據處理程序,本系統涉及3 個參數的綜合評估,且血壓數據分為高壓與低壓兩類,出于分別對數據進行兩兩比對的需要,程序中構建6 個支持向量機,進行心率數據、血氧數據、高壓數據以及低壓數據的分別比對,最終根據比對結果與標準數據庫計算出的結果,綜合判斷健康狀態,最后用LabVIEW 構建評估界面。支持向量機分類原理概述圖如圖9 所示,評估界面示例如圖10所示。
3.4 手機APP設計
App Inventor是一個完全在線開發的Android編程環境,拋棄復雜的程序代碼而使用積木式的堆疊法來完成Android 程式。通過自己下載Wi-Fi 插件,模塊化堆積編程,制作出一款在同一局域網下可以接收顯示消息的App,通過設計,可在手機APP上直接查看游泳者的身份ID、所處水深及生理參數。組件設計如圖11所示,邏輯設計如圖12所示。
4 結束語
智能化時代的來臨促進了智能化安全系統的發展,本設計含有智能泳池防溺水監控系統、生理健康狀態評估和定位基站三者,他們密切聯系,綜合并創新創造一款智能泳池防溺水監控及生理參數監測系統。此系統能及時查看游泳者生理健康狀態,并對超水壓游泳者提出警報,快速發出監控人員對溺水者做出援救的信號的裝置,能大大降低因為游泳而帶來的隱患。還可以結合生理健康狀態數據制訂或及時調整運動訓練方案和策略,不斷提高人們的身體素質,增強專業運動員的身體機能和競技水平,讓更多的青年人放心游泳、喜歡游泳。