若該文為原創文章,轉載請注明原文出處。
一、 項目背景與引言
(一) 研究背景及意義
道路交通安全是全球性的重大公共安全問題。據統計,絕大多數交通事故源于駕駛員的危險狀態(疲勞、分心、健康突發狀況)和危險駕駛行為(超速、車距過近)。傳統的車輛安全系統如ABS、ESP等屬于被動安全范疇,而本項目旨在開發一種主動式的安全預警系統。它通過實時監測駕駛員生理狀態、駕駛行為和車輛周邊環境,在危險發生前及時向駕駛員發出預警,并能在緊急情況下主動向外界求助,從而有效預防事故的發生,保障駕乘人員及道路其他參與者的生命安全,具有極高的社會價值和現實意義。
(二) 國內外研究現狀
目前,此類技術主要應用于高端商用車輛(卡車、客車)和部分高端乘用車中,作為ADAS(高級駕駛輔助系統)的一部分,通常集成在車輛原廠系統中,成本高昂。后裝市場的產品功能相對單一,多集中于OBD(車載診斷系統)車速讀取或單一疲勞監測。本項目創新性地將駕駛員狀態監測(心率血氧)、駕駛行為監測(超速、跟車距離)和遠程物聯網報警功能集成于一個低成本、可后裝的系統中,基于強大的STM32平臺開發,提供了更全面的主動安全解決方案。
(三) 論文研究內容
本研究設計并實現了一個以STM32F103C8T6為核心的車輛安全駕駛預警系統。系統通過DHT11監測車內環境;通過霍爾傳感器測算車速;通過超聲波傳感器監測跟車距離;通過MAX30102監測駕駛員心率血氧;通過OLED進行本地信息顯示;通過4G CAT.1模塊(如AIR724UG)將報警信息和關鍵數據遠程發送到云平臺和車主手機;通過按鍵實現一鍵報警和設置,最終構建一個多層次、立體的安全防護網。
二、 系統總體設計
(一) 系統架構
本系統是一個典型的嵌入式物聯網系統,集感知、控制、通信于一體。
感知層:
環境感知:DHT11溫濕度傳感器
車輛狀態感知:霍爾傳感器(車速)
環境感知:HC-SR04超聲波傳感器(車距)
駕駛員狀態感知:MAX30102心率血氧傳感器
人工觸發:緊急報警按鍵
控制層:
主控制器:STM32F103C8T6
邏輯判斷:執行所有預警算法和邏輯
執行與交互層:
本地預警:語音播報模塊(JQ8900)、LED報警燈
本地顯示:OLED顯示屏(SSD1306)
通信層:
遠程通信:4G CAT.1模塊(AIR780E)
云平臺層:
中國移動OneNet/阿里云等IoT平臺,接收數據并轉發至手機APP。
(二) 功能模塊劃分
數據采集模塊:負責所有傳感器數據的定時采集與濾波。
安全決策模塊:核心控制邏輯,根據預設閾值判斷當前狀態是否安全并觸發相應預警。
人機交互模塊:包括OLED顯示、語音播報、LED報警和按鍵輸入。
遠程通信模塊:負責通過4G模塊與云平臺建立連接,傳輸報警數據和車輛狀態。
三、 硬件設計與實現
(一) 主控模塊選型及介紹
型號:STM32F103C8T6最小系統板
理由:需要豐富的GPIO和外設(多串口、定時器、ADC)來連接眾多傳感器和執行器,該型號成本低、性能強、資源完全滿足需求。
(二) 傳感器模塊選型及電路設計
DHT11溫濕度傳感器:
接口:單總線。數據線接GPIO(如PA0),上拉。
霍爾傳感器測速:
原理:將霍爾傳感器固定靠近車輪,磁鐵固定在車輪上。車輪每轉一圈,霍爾傳感器產生一個脈沖。
電路:霍爾傳感器輸出接STM32的GPIO(如PA1,配置為外部中斷輸入模式),通過計算單位時間內的脈沖數可計算車速。
HC-SR04超聲波傳感器:
安裝:安裝于車輛后保險杠,用于監測與后方車輛的距離。
電路:
Trig
(PA2),Echo
(PA3)。
MAX30102心率血氧傳感器:
安裝:可集成在方向盤套或指套上,方便駕駛員接觸。
接口:I2C。
SCL
(PB6),SDA
(PB7)。
一鍵報警按鍵:
電路:接GPIO(如PA4,配置為上拉輸入),按下為低電平。
(三) 通信模塊選型及配置
選型:AIR780E(4G CAT.1模塊)。相比NB-IoT,CAT.1速率更快,支持TCP/IP協議棧,適合本項目的實時數據上報;相比傳統4G,功耗和成本更低。
接口:UART串口。
電路:模塊
TXD
接MCU的RX1
(PA10),RXD
接MCU的TX1
(PA9),VCC
接4.0V~4.2V,需獨立供電。
(四) 執行與交互模塊
語音播報模塊:
選型:JQ8900-16P,可內置“溫度過高,請注意”、“您已超速”、“車距過近,請小心”、“駕駛員狀態異常,請休息”等語音。
接口:串口。接MCU的另一個UART(如
TX3
(PB10))。
LED報警燈:接GPIO(如PC13),用于超速時的閃爍提醒。
OLED顯示屏:0.96寸I2C SSD1306,與MAX30102共用I2C總線。
四、 軟件設計與實現
(一) 開發環境與協議
IDE:Keil uVision 5
配置工具:STM32CubeMX
庫:HAL庫
通信協議:HTTP或MQTT(通過4G模塊的AT指令實現與云平臺的通信)
(二) 系統初始化
初始化系統時鐘、GPIO、ADC、I2C、UART(調試串口、4G串口、語音模塊串口)。
初始化外部中斷(用于霍爾傳感器測速)。
初始化所有外設:OLED、DHT11、MAX30102等。
配置4G模塊:發送AT指令撥號上網,并連接MQTT服務器。
(三) 軟件主邏輯流程圖
(四) 關鍵代碼片段
主循環核心邏輯
int main() {// 系統初始化System_Init();OLED_ShowWelcome();Voice_Play("系統啟動完成"); while (1) {// 1. 采集數據 (每1秒一次)if (HAL_GetTick() - sensor_timer > 1000) {sensor_timer = HAL_GetTick();DHT11_Read(&temperature, &humidity);speed = Calculate_Speed(); // 通過外部中斷計數計算車速distance = Get_Ultrasonic_Distance();MAX30102_GetData(&heart_rate, &spo2);}// 2. 安全預警決策// 溫度預警if (temperature > TEMP_THRESHOLD) {Voice_Play_Warning(VOICE_TEMP_HIGH);}// 超速預警if (speed > SPEED_THRESHOLD) {Voice_Play_Warning(VOICE_OVERSPEED);LED_Blink(500); // LED每500ms閃爍一次} else {LED_Off();}// 車距預警if (distance < DISTANCE_THRESHOLD && distance > 0) {Voice_Play_Warning(VOICE_TOO_CLOSE);}// 駕駛員狀態預警if (heart_rate < HR_LOW || heart_rate > HR_HIGH || spo2 < SPO2_THRESHOLD) {Voice_Play_Warning(VOICE_HEALTH_ALERT);LED_Blink(200); // 快速閃爍// 立即通過4G上報緊急情況MQTT_Publish("driver/alert", "Abnormal vital signs!");}// 3. 一鍵報警處理 (中斷方式)if (emergency_flag) {emergency_flag = 0;Voice_Play_Warning(VOICE_SOS);LED_Blink(100);// 通過4G上報求救信息,包含位置信息(如果集成GPS)MQTT_Publish("car/sos", "EMERGENCY! Driver needs help!");}// 4. 常規數據上報 (每30秒一次)if (HAL_GetTick() - report_timer > 30000) {report_timer = HAL_GetTick();sprintf(mqtt_data, "{\"temp\":%d,\"hum\":%d,\"speed\":%d,\"dist\":%d,\"hr\":%d,\"spo2\":%d}",temperature, humidity, speed, distance, heart_rate, spo2);MQTT_Publish("car/status", mqtt_data);}// 5. 顯示刷新OLED_ShowStatus(temperature, speed, distance, heart_rate, spo2);HAL_Delay(100);}
}// 一鍵報警按鍵中斷服務函數
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if (GPIO_Pin == SOS_KEY_Pin) {emergency_flag = 1;}
}// 霍爾傳感器脈沖計數中斷服務函數
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if (GPIO_Pin == HALL_SENSOR_Pin) {pulse_count++;}
}
五、 系統測試與優化
(一) 測試方案
實驗室測試:
傳感器:用熱風槍測試DHT11,用磁鐵模擬測試霍爾傳感器,用障礙物測試超聲波,用手指測試MAX30102。
預警邏輯:分別觸發各項閾值,測試語音、LED、4G上報是否正常。
實車靜態測試:在停放的車輛中安裝系統,測試所有功能,尤其是4G網絡在車內的連接穩定性。
實車動態測試:在安全道路(如封閉測試場)進行測試,驗證車速測量的準確性、車距預警的實時性。
(二) 優化方向
增加GPS模塊:在發送求救信息時,附帶經緯度坐標,方便精確定位救援。
算法優化:
車距預警:加入相對速度判斷,更準確地預測碰撞風險。
疲勞駕駛:通過心率變異性和方向盤微動作(可由加速度計間接判斷)綜合判斷駕駛員是否疲勞。
電源管理:設計汽車電源(12V)轉5V/3.3V的電路,實現車輛啟動自動上電,熄火延時斷電。
數據可視化:開發配套手機APP或Web后臺,可視化歷史行車數據和安全事件。
六、硬件設計注意事項
抗干擾設計:車輛電氣環境惡劣,存在大量電磁干擾。PCB設計時需注意:
電源輸入端增加π型濾波和TVS二極管,抑制浪涌和電壓瞬變。
信號線盡可能短,關鍵信號線可考慮包地。
芯片電源引腳附近放置去耦電容。
傳感器布局:
霍爾傳感器和磁鐵安裝位置要準確,確保能有效觸發。
超聲波傳感器安裝角度需調整至檢測區域正后方。
MAX30102需設計成便于駕駛員手指觸碰的形式。
4G天線:為4G模塊預留天線接口,并確保天線位置靠近車窗或車外,以保證信號質量。
功耗管理:雖然車輛供電充足,但良好的功耗習慣有助于系統穩定性。在不需要全功能運行時,可使STM32進入睡眠模式,由外部事件(如按鍵、傳感器中斷)喚醒。
七、 結論與展望
(一) 項目總結
本項目成功設計并實現了一個功能全面、實用性強的車輛安全駕駛預警系統原型。系統有效地將環境監測、車輛狀態監測、駕駛員狀態監測融為一體,構建了“人-車-環境”三位一體的主動安全防護體系,并通過4G網絡實現了數據的遠程傳輸與緊急求助功能。所有預設功能均得到實現,驗證了STM32在復雜嵌入式物聯網系統中的強大處理能力。
(二) 未來展望
融合計算機視覺:增加一個紅外攝像頭,用于駕駛員面部識別,實現更準確的疲勞駕駛(打哈欠、閉眼)和分心駕駛(打電話、左顧右盼)檢測。
V2X技術:未來可探索集成V2X(車聯網)通信,實現車與車、車與路側基礎設施的信息交互,提前感知交叉路口碰撞等更復雜的危險。
自動駕駛集成:將本系統作為ADAS系統的一個感知子模塊,為L2/L3級自動駕駛提供決策數據。
UBI保險:系統記錄的安全駕駛數據可用于與保險公司合作,為安全駕駛習慣良好的車主提供更優惠的保費(Usage-Based Insurance)。
如有侵權,或需要完整代碼,請及時聯系博主。