基于鴻蒙操作系統的智能安全駕駛監測系統
近幾年來我國的交通事業發展迅速,與此同時也帶來了安全隱患,每年發生交通事故幾十萬起,并且有著明顯的上升趨勢,這對人民的生命財產構成了巨大威脅。在這些交通事故中,由于酒后駕車引發的交通事故數量占50%,酒駕成為交通事故的第一大“殺手”。此外,駕駛員的疲勞駕駛也是威脅到交通安全的一個重要因素,對于駕駛員來說迫切需要一個智能安全駕駛系統來檢測并提醒駕駛員、發出預警警告,有效減少此類原因引起的交通事故。
本文引用地址:http://www.104case.com/article/202210/439441.htm同時我們迎來了一個萬物互聯的時代,物聯網也越來越受到大家的青睞。萬物互聯將人、流程、數據和事物結合在一起,使得網絡連接變得更加相關、更有價值,把信息轉化為行動,給企業、個人和國家創造新的發展機遇,并帶來更加豐富的體驗。本項目希望借助鴻蒙操作系統連接各種智能終端設備,做到實時監測駕駛員行為和健康數據,切實保護駕駛員安全。
1 系統整體結構
1.1 整體功能設計
本項目采用功能強大的單片機STM32來驅動各類傳感器,在檢測到數值偏離閾值時,使用GSM芯片進行報警和自動撥號,系統成本較低且實用性廣泛。在駕駛員行為監測方面,使用了OpenCV開源計算機視覺庫,作為最流行的計算機視覺庫,它擁有400多個圖像處理函數,涉及范圍面廣,執行速度有可觀的表現,可以更好地處理行駛過程中的動態行為。智能駕駛監測系統整體架構如圖1 所示。
(1)通過在車內安裝酒精傳感器,實現對駕駛員是否存在酒駕行為進行判斷,如若存在酒駕行為,發出警告并自動撥號聯系家屬。
(2)通過車內加裝攝像頭,判斷駕駛員的實時行為狀態,如閉眼、打哈欠、瞌睡點頭等,并發出語音警告。
(3)搭建可穿戴設備,測量駕駛員的各項健康指標。
(4)將以上監測到的駕駛員健康指標數據匯總并生成健康報表,如若發生異常,則自動撥號聯系家屬并上傳實時位置。
1.2 具體功能實現
(1)酒后駕駛監測系統
①酒精檢測具體實現流程如圖2所示。
(2)駕駛員行為狀態監控系統
①視覺疲勞檢測:基于dlib 人臉識別68 特征點檢測,通過openCV 做灰度化處理,檢測人眼位置信息,檢測眼睛長/ 寬是否大于閾值,判斷其是否存在疲勞駕駛。
②打哈欠疲勞檢測:獲取人嘴的位置信息,通過坐標點的距離來判斷是否張嘴及張嘴時間,從而確定人是否存在打哈欠。
③點頭疲勞檢測:獲取實時頭部姿態的旋轉角度判斷駕駛員是否處于打瞌睡狀態。
具體實現的駕駛行為狀態監測主界面如圖3所示。
圖3 駕駛員行為動態監測界面
(3)智能可穿戴設備
血氧心跳等健康監測流程如圖4所示。
圖4 健康監測流程圖
(4)智能終端
基于vue框架,通過軟件java script編寫的一個小程序,接收采集到的數據和駕駛員的實時定位信息。
圖5 軟件截圖
2 硬件結構組成
系統所需硬件資源:用來控制各個模塊的STM32F103單片機、采集數據的各種傳感器、實現物聯網的ESP8266芯片、SIM900A撥號模塊、采集人臉數據的樹莓派以及智能終端等部分。系統所需具體硬件結構及其關系如圖6 所示。
(1)酒精檢測
通過STM32 單片機控制MQ-3 酒精乙醇傳感器,檢測駕駛員是否存在酒駕行為。MQ-3 酒精乙醇傳感器對酒精的靈敏度高,可以抵抗汽油、煙霧、水蒸氣的干擾,可檢測多種濃度酒精氣氛,是一款適合多種應用的低成本傳感器。
在駕駛員車內安裝酒精傳感器,準確地測量駕駛人是否存在酒駕行為,若存在則聯系駕駛員親屬,避免危險的發生。
(2)人臉疲勞采集
樹莓派可以像一臺運行Linux 系統的臺式計算機或者便攜式計算機那樣,使用openCV 庫進行圖像處理。
(3)血氧心跳數據采集
通過MAX30102 實現對心率值和血氧飽和度的采集,并在智能穿戴設備上顯示,當檢測的數據超過設定閾值時發出警告并通過SIM900 撥號,由ESP8266 將數據通過Wi-Fi 傳輸到服務器。
MAX30102 內部集成了一整套完整信號采集電路,用戶只需通過單片機的IIC 接口,對MAX30102 內部的寄存器進行讀寫操作,就可以得到轉換后的光強度數值。最后通過相應的處理算法,計算出心率值和血氧飽和度。ESP8266 是一個完整且自成體系的Wi-Fi 網絡解決方案, 能夠獨立運行,也可以作為slave 搭載于其他Host運行。ESP8266強大的片上處理和存儲能力,使其可通過GPIO 集成傳感器及其他應用的特定設備, 實現了最低的前期開發和運行中最少占用系統資源。
Wi-Fi 和服務器連接方法/ 步驟。
第一步:首先打開串口助手,連接好無線模塊。
第二步:發送AT+RST重啟模塊。
第三步:發送AT+CIPCLOSE 關閉TCP/UDP/SSL傳輸。
第四步:發送AT+CWMODE=1設置Wi-Fi 模式為Station模式。
第五步:發送AT+CWDHCP=1 設置DHCP。
第六步:發送AT+CWJAP=“無線網絡名”,“無線網絡密碼”加入Wi-Fi。
第七步:發送AT+CIPSTART=“TCP”,"broker.emqx.io",1883 連接服務器。
3 軟件程序設計
3.1 開發工具
基于c 語言、java script、Python 等編程語言,結合使用多種軟件實現系統功能。其中主要使用keil5 提供清晰直觀的操作界面,使用起來十分的輕松便捷,并具備編譯器、編譯器、安裝包和調試跟蹤。
3.2 數據采集部分
(1)酒精檢測
代碼的設計思路:通過MQ-3氣體傳感器模塊檢測酒精濃度并發送模擬電壓, 這樣可以利用STM32的ADC模塊采樣收集數據,將模擬量轉化為數字量,計算酒精濃度。
判斷其檢測濃度是否超過設定閾值,超過閾值則發出警告并實現自動撥號。
(2)疲勞檢測
代碼設計思路:首先初始化臉部位置和臉部特征位置的檢測器,打開攝像頭,從視頻流讀取圖片,進行灰度化處理;將獲取臉部特征位置的信息并轉換為array數組的格式,使用矩形框標注人臉;檢測人眼位置信息;檢測眼睛長/ 寬是否大與閾值;獲取人嘴的位置信息;通過坐標點的距離來判斷是否張嘴及張嘴時間;獲取實時頭部姿態的旋轉角度Yaw,Pitch 和Roll。通過這一系列動作檢測駕駛員狀態,并設定閾值,超出則發出語音警告。
(3)血氧心跳采集
代碼設計思路:通過MAX30102 模塊獲取心率和血氧的數據,將測得的數據通過I2C 傳送至MCU 并通過一系列的算法計算,將計算后的數據顯示在OLED 屏幕上。之后通過MQTT 將數據上傳至公共服務器,生成健康報表發至用戶APP,同時通過SIM900A 模塊的短信及撥號功能聯系用戶手機。
驅動MAX30102 模塊重要的是寄存器函數和讀寄存器數據的函數,并初始化模塊進行數據采集,最后計算。MAX30102 傳感器上具有紅光(660 nm) 和紅外光(880 nm) 兩個LED, 人體氧合血氧蛋白和非氧合血氧蛋白對這兩個不同波長的光吸收率的差異較為明顯,可以據此得出血氧飽和度。
(4)智能終端
將收集到的數據發送給ESP8266,再通過ESP8266將數據傳給服務器,服務器將其發送給訂閱的用戶和小程序,實現數據傳輸,用戶可以實時查看各項數據指標。
圖7 流程圖
4 結語
基于鴻蒙的智能安全駕駛監測系統除了可以實現操作的流暢性,最重要的是可以把搭載了鴻蒙操作系統的智能設備全部連接起來。駕駛員的親人能夠實時監測駕駛員的行駛過程、健康狀況等信息,能將有關駕駛員的安全信息做到共享,并及時為駕駛員提供預警服務,從而減少因酒駕和疲勞駕駛造成的交通事故,保障駕駛員的生命財產安全。同時,本智能安全駕駛監測系統安裝簡單,成本較低,有很好的實用性。
參考文獻:
[1] 郭德財,彭石林.基于海思芯片與鴻蒙操作系統的智慧灌溉系統設計[J].單片機與嵌入式系統應用,2022,22(03):11-15.
[2] 王秀,周楓曉,劉保羅,等.基于Dlib庫的駕駛員疲勞駕駛檢測系統[J].物聯網技術,2021,11(12):26-29.
(本文來源于《電子產品世界》雜志社2022年10月期)
評論