STM32項目分享:基于STM32單片機駕駛安全監測系統設計

“我們不做一錘子買賣,只做技術成長的長期伙伴!”

目錄

一、視頻展示

二、項目簡介

三、原理圖設計

四、PCB硬件設計

五、程序設計

六、資料分享


一、視頻展示

基于stm32單片機駕駛行為監測系統設計 -視頻分享

二、項目簡介

題目:基于stm32單片機駕駛行為監測系統設計
主控:STM32
顯示: OLED 顯示屏
MPU6050
超聲波傳感器
K210驗證人臉解鎖開車
MQ3酒精濃度傳感器
繼電器模擬車鎖是打開還是關閉
蜂鳴器聲光報警
功能:
1、屏幕實時顯示超聲波模塊探測模塊與駕駛員的距離,酒精濃度數值,車子狀態。
2、可按建設置超聲波距離,酒精濃度閾值。
3、當發生距離過近或當酒精濃度超標,蜂鳴器聲光報警,提醒司機不要疲勞駕駛或酒駕。
4、當MPU6050檢測到側翻或者歪倒的情況時,則蜂鳴器報警。
5、第一個條件必須車子被人臉解鎖了才可以,否則將無法啟動后續程序。當人臉解鎖成功,繼電器打開,才會正常進行上面的判斷條件和程序

三、原理圖設計

四、PCB硬件設計

五、程序設計

#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "dht11.h"
#include "IOput.h"
#include "usart.h"
#include "timer.h"
#include "adc.h"
#include "wave.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h" 
#include "myiic.h"
#include "algorithm.h"
extern u16 res;
extern u8 flag_rl;u8 light,tushi,count;
u8 show_flag =11,show1_flag,max_wd=5,max_sd=70,max_hy=60,max_yw=65;
u8 fire = 0,yanwu = 0;
float distance = 0.0; 
float pitch,roll,yaw; 		//歐拉角
short aacx,aacy,aacz;		//加速度傳感器原始數據
short gyrox,gyroy,gyroz;	//陀螺儀原始數據
u8 front = 0,left = 0,right = 0,paral = 0;
u8 num=22;int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);DHT11_Init();OLED_Init();delay_ms(1);OLED_Clear();output_init();input_init();Adc_Init();Usart1_Init(115200);CH_SR04_Init();MPU_Init();  	//初始化Usart3_Init(115200);
//	while(num!=0)   //開始運行自主調試
//	{
//		num=mpu_dmp_init();
//		OLED_ShowCH(0,0,"mpu6050 error:");
//		OLED_ShowNum(64,2,num,2,16);
//		delay_ms(2000); 
//	}OLED_Clear();while(1){
//		wifi();
//		count++;
//		distance = Senor_Using();
//		fire=Get_Adc_Average(1,10)*100/4096;
//		DHT11_Read_Data(&temp,&humi);
//		while(mpu_dmp_get_data(&pitch,&roll,&yaw)!=0) 
//		{
//			delay_ms(2000);
//		}
//		key_scan(1,0,0);
//		if(set_flag==1 && show_flag!=1 && show_flag != 11)
//		{
//			show1_flag=0;
//			set_flag=0;
//			show_flag++;
//			if(show_flag>=2)
//			{
//				show_flag=0;
//			}
//		}
//		if(show_flag == 11)
//		{OLED_ShowCH(0,0,"    請掃臉");if(flag_rl == 1){OLED_ShowCH(0,2,"    識別中...");delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);show_flag = 0;OLED_Clear();jdq3 = 0;}
//		}
//		if(show_flag==0)
//		{
//			OLED_ShowCH(0,0,"駕駛行為監測");
//			OLED_ShowCH(0,2,"車況:");
//			if(flag_rl == 1)
//			{
//				OLED_ShowCH(40,2,"已啟動");
//			}else
//			{
//				OLED_ShowCH(40,2,"未啟動");
//			}
//			OLED_ShowCH(0,4,"酒精濃度:");
//			OLED_ShowNum(72,4,fire,2,16);
//			OLED_ShowCH(0,6,"距離:");
//			OLED_ShowNum(40,6,distance,2,16);
//		}
//		if(show_flag==1)
//		{
//				OLED_ShowCH(0,0,"最短距離:");
//				OLED_ShowCH(0,2,"最大濃度:");
//				OLED_ShowNum(72,0,max_wd,2,16);
//				OLED_ShowNum(72,2,max_sd,2,16);
//			if(set_flag==1&&show_flag==1)
//			{
//				set_flag=0;
//				show1_flag++;
//				if(show1_flag>=2)
//				{
//					show_flag=0;	
//					OLED_Clear();
//				}
//			}
//			if(show1_flag==0)
//			{
//				OLED_ShowCH(112,0,"←");
//				if(add_flag==1)
//				{
//					add_flag=0;
//					max_wd++;
//				}
//				if(dec_flag==1)
//				{
//					dec_flag=0;
//					max_wd--;
//				}
//				if(max_wd>=100 || max_wd<=0){max_wd=0;}
//			}
//			if(show1_flag==1)
//			{
//				OLED_ShowCH(112,2,"←");
//				if(add_flag==1)
//				{
//					add_flag=0;
//					max_sd++;
//				}
//				if(dec_flag==1)
//				{
//					dec_flag=0;
//					max_sd--;
//				}
//				if(max_sd>=100 || max_sd<=0){max_sd=0;}
//			}
//		}
//		
//		if(distance<=max_wd || fire>=max_sd || roll >= 90)
//		{
//			BEEP = 0;
//		}
//		else
//		{
//			BEEP = 1;
//		}
//		
//		if(count>=50)
//		{
//			count=0;
//		}}
}

六、資料分享

點擊即可查看當前資料分享。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94093.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94093.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94093.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【GaussDB】使用gdb定位GaussDB編譯package報錯

【GaussDB】使用gdb定位GaussDB編譯package報錯 背景 在某次遷移Oracle到GaussDB時&#xff0c;應用開發人員將改好的package在GaussDB里進行創建&#xff0c;沒有ERROR也沒有WARNING&#xff0c;但是編譯無效對象的時候報錯了。雖然已經找到了是哪個包編譯報錯&#xff0c;但…

One Commander:強大的Windows文件管理器

在日常使用電腦的過程中&#xff0c;文件管理和瀏覽是必不可少的任務。One Commander作為一款功能強大的Windows文件管理器&#xff0c;提供了豐富的功能和便捷的操作方式&#xff0c;幫助用戶更高效地管理和瀏覽文件。它不僅支持多種文件操作&#xff0c;還提供了豐富的自定義…

SPUpDate Application 程序卸載

我安裝了 EzvizStudioSetups.exe 軟件&#xff0c;卸載后會在電腦遺留 SPUpDate Application 程序&#xff1b;在某一時刻會占用 CPU 資源&#xff1b;應用卸載方法一&#xff1a;在任務管理器搜索 SPUpDate Application&#xff1b;定位到文件位置&#xff1b;我的路徑如下C:\…

算法題(187):程序自動分析

審題&#xff1a; 本題需要我們判斷是否可以同時滿足題目給定的若干等式或不等式&#xff0c;判斷出后根據結果輸出YES或NO 思路&#xff1a; 方法一&#xff1a;離散化并查集 使用并查集&#xff1a;其實題目中只存在兩者相等或不等兩種情況&#xff0c;而等于具有傳遞性&…

strcasecmp函數詳解

strcasecmp 是 C 語言中用于不區分大小寫比較兩個字符串的函數&#xff0c;主要用于忽略字符大小寫差異的場景&#xff08;如用戶輸入驗證、不區分大小寫的字符串匹配等&#xff09;。它屬于 POSIX 標準庫&#xff0c;定義在 <string.h> 頭文件中。 一、函數原型與參數 函…

Voronoi圖

本文將詳細解釋 Voronoi 圖&#xff0c;它在空間分析和插值中非常常用。1. 概念 Voronoi 圖是一種空間劃分方法&#xff0c;它把平面&#xff08;或空間&#xff09;劃分成若干個區域&#xff0c;使得每個區域內的任意一點都比該區域外的任何一點更靠近該區域的“生成點”&…

BioScientist Agent:用于藥物重定位和作用機制解析的知識圖譜增強型 LLM 生物醫學代理技術報告

BioScientist Agent:用于藥物重定位和作用機制解析的知識圖譜增強型 LLM 生物醫學代理技術報告 一、項目概述 藥物研發是一個周期長、成本高的過程,平均需要超過 10 年時間和 20 億美元才能將一種新藥推向市場,且 90% 以上的候選藥物最終失敗(1)。這種低成功率主要歸因于對…

5G視頻終端詳解 無人機圖傳 無線圖傳 便攜式5G單兵圖傳

前言單兵圖傳設備&#xff0c;是一種集視頻采集、編碼壓縮、無線傳輸等多種功能于一體的便攜式通信終端。它以嵌入式系統為基礎&#xff0c;搭載高性能 H.265 編解碼處理器&#xff0c;能夠將現場的音視頻信息進行高效處理后&#xff0c;通過無線網絡快速穩定地傳輸至后端指揮中…

【蘋果軟件】Prism Mac 9.4蘋果系統免費安裝包英文版 Graphpad Prism for Mac 9.4軟件免費下載與詳細圖文教程!!

軟件下載與系統要求 軟件&#xff1a;Prism9.4 語言&#xff1a;英文 大小&#xff1a;103.41M 安裝環境&#xff1a;MacOS12.0&#xff08;或更高&#xff0c;支持IntelM芯片&#xff09; MacOS蘋果系統GraphPad Prism&#xff08;科學數據分析與圖形繪制&#xff09;&am…

Redis 奇葩問題

先貼錯誤碼Unexpected exception while processing command這個奇葩的問題查了很久&#xff0c;后面突然頓悟&#xff0c;應該是Redis記住了第一次的數據類型&#xff0c;后面即使換了數據類型也不會改變之前的數據類型。跟代碼發現是codec變成了默認的了后續public RedissonBa…

C ++代碼學習筆記(一)

1、GetStringUTFChars用于將 Java 字符串&#xff08;jstring&#xff09;轉換為 UTF-8 編碼的 C 風格字符串&#xff08;const char*&#xff09;。必須在使用完后調用 ReleaseStringUTFChars 釋放內存&#xff0c;否則可能導致內存泄漏。std::string data_converter::convert…

【學習嵌入式day-29-網絡】

進程和線程的區別&#xff1a;都是系統執行的任務進程是資源分配的基本單位線程是調度執行的最小單位進程的創建和切換的開銷大&#xff0c;速度慢&#xff0c;效率低空間獨立、----- 安全&#xff0c;穩定進程間通信不方便線程創建和切換的開銷小&#xff0c;速度快&#xff0…

Eino 框架組件協作指南 - 以“智能圖書館建設手冊”方式理解

Eino 框架組件關系 - 形象比喻指南 &#x1f3d7;? 項目概覽&#xff1a;構建一個智能圖書館 想象一下&#xff0c;你要建設一個現代化的智能圖書館&#xff0c;能夠幫助用戶快速找到所需信息并提供智能問答服務。Eino 框架就像是這個智能圖書館的建設工具包&#xff0c;每個組…

網絡打印機自動化部署腳本

下面是一個全面的、交互式的PowerShell腳本&#xff0c;用于自動化網絡打印機部署過程。這個腳本提供了圖形化界面&#xff0c;讓用戶可以輕松地搜索、選擇和安裝網絡打印機。 備注&#xff1a;這個腳本未在生產環境測試過&#xff0c;請大家測試一下&#xff0c;有問題或優化&…

探索工業自動化核心:ZMC 系列 EtherCAT 主站控制器

ZLG致遠電子的ZMC系列EtherCAT主站控制器&#xff0c;憑借多元內核、豐富接口、卓越通信能力及開放開發環境&#xff0c;為工業自動化提供全方位解決方案&#xff0c;助力企業智能化升級。 前言在工業自動化領域不斷演進的今天&#xff0c;可靠且高效的控制解決方案成為企業提…

rt-thread使用sfud掛載qspi flash的trace分析

說明 trace log先貼在這里&#xff0c;待分析完成后&#xff0c;完善文章。 [0m[D/drv.sdram] sdram init success, mapped at 0xC0000000, size is 33554432 bytes, data width is 16[0m\ | / - RT - Thread Operating System/ | \ 5.2.0 build Aug 21 2025 14:44:332…

服務發現與負載均衡:Kubernetes Service核心機制深度解析

目錄 專欄介紹 作者與平臺 您將學到什么&#xff1f; 學習特色 一、 服務發現與負載均衡&#xff1a;云原生應用的核心支柱 1.1 Kubernetes Service的設計哲學 1.2 服務發現的核心組件 二、 Service核心類型深度解析&#xff1a;從ClusterIP到LoadBalancer 2.1 ClusterI…

【基礎排序】CF - 賭場游戲Playing in a Casino

題目描述 在整個太陽系都很有名的賭場 Galaxy Luck 推出了一種新的紙牌游戲。 在這個游戲中&#xff0c;有一副由 nnn 張牌組成的牌堆。每張牌上寫有 mmm 個整數。nnn 位玩家各自從牌堆中獲得一張牌。 然后所有玩家兩兩對局&#xff0c;每一對玩家恰好對局一次。 例如&#…

Jenkins啟動端口修改失敗查找日志

# 查看Jenkins服務啟動時的環境變量sudo systemctl show jenkins | grep -i port從systemd服務信息可以看到&#xff0c;Jenkins的環境變量中 JENKINS_PORT8080&#xff0c;這說明systemd服務配置覆蓋了 /etc/default/jenkins 文件中的設置1. 查找Jenkins的systemd服務文件# 查…

Rancher部署的K8S集群服務節點上執行 kubectl 命令

文章目錄1、Rancher UI 和執行 kubectl 命令之間的關系1.1、Rancher 的架構和 kubectl1.2、Rancher 內置 kubectl 的位置1.3、執行權限和安全2、Rancher UI 的使用操作2.1、UI 界面內置的 Kubectl 命令工具2.2、在服務節點執行 kubectl 命令的方法2.3、創建一個集群上下文文件 …