基于51单片机的车内防窒息检测报警系统

news2025/7/22 22:27:28

目录

 具体实现功能

设计介绍

资料内容

全部内容

资料获取


 具体实现功能

具体实现功能:
(1)检测车内温度及二氧化碳浓度并用lcd1602实时显示。
(2)当人体红外传感器检测到车内有人,且温度或二氧化碳浓度上升到一定值时,将会发送报警短信,同时也会触发语音模块向车外报警求救,还能自动降下窗户(或打开天窗)。
(3)如果车内无人,则不会触发报警,温度和二氧化碳浓度超过报警值时会亮灯。

仿真演示视频:

基于51单片机的车内防窒息检测报警系统

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

///
void main (void)
{
	u8 key;
	u8 SmokeFlag = false;
	u8 TempFlag = false;
	u8 IntrudeFlag = false;
	char String[50];
	int i;
	wendu=check_wendu();		  //初始化时调用温度读取函数 防止开机85°C
	Init1602();			  				//调用初始化显示函数
	UsartInit();
	LCD_Write_String(0,0,"SET T:00   E:000");  //开机界面
	LCD_Write_String(1,0,"NOW T:00   E:000");  
	delay_ms(1000);
	wendu=check_wendu();		  //初始化时调用温度读取函数 防止开机85°C
	while (1)        					//主循环
	{
		key=Key_Scan();					//按键扫描
		if(key==KEY_SET)
		{
			Mode++;
		}
		for(i=0;i<10;i++)
		{
			CO2=Adc0832(0);				//读取CO2值
			wendu=check_wendu();	  //读取温度值
			delay_ms(10);
		}
		
		
		switch(Mode)						//判断模式的值
		{
			case 0:								//监控模式
			{
				Display_1602(yushe_wendu,yushe_CO2,wendu,CO2);  //显示预设温度,预设CO2,温度值,CO2值
				if(CO2>=yushe_CO2)
				{
					Led_Y=0;		  			//CO2指示灯亮
				}
				else
				{
					Led_Y=1;
				}
									
				if((CO2>=yushe_CO2)&&(s2==0))	  //CO2值大于等于预设值时
				{
					Buzzer=0;			  		//蜂鸣器报警
					Led_Y=0;		  			//CO2指示灯亮		
					sprintf(String,"CO2 Alert Start!\r\n");
					SendStr(String);
				}
				else					  					//CO2值小于预设值时
				{
					;
				}
				
				if(wendu>=(yushe_wendu*10))
				{
					Led_W=0;
				}
				else
				{
					Led_W=1;
				}
				
				if((wendu>=(yushe_wendu*10))&&(s2==0))	  //温度大于等于预设温度值时(为什么是大于预设值*10:因为我们要显示的温度是有小数点后一位,是一个3位数,25.9°C时实际读的数是259,所以判断预设值时将预设值*10)
				{
					Led_W=0;		  			//打开温度报警灯
					
					sprintf(String,"Temperature Alert Start!\r\n");
					SendStr(String);
				}
				else					  					//温度值小于预设值时
				{
						;
				}
				if(((CO2>=yushe_CO2)||(wendu>=(yushe_wendu*10)))&&(s2==0))
				{
					Buzzer=0;
					motor=0;
				}
				else
				{
					Buzzer=1;
					motor=1;
				}
				break;
			}
			
			case 1://预设温度模式
			{
				SelectPosition(0,7) ;					//指定位置
				write_com(0x0d);							//阴影闪烁
				if(key==KEY_ADD)							//加键按下
				{
					yushe_wendu++;					    //预设温度值(阀值)加1
					if(yushe_wendu>=99)			 		//当阀值加到大于等于99时
					yushe_wendu=99;					 		//阀值固定为99
					LCD_Write_Char(0,6,yushe_wendu,2) ;//显示预设温度
				}
				if(key==KEY_MINUS)				 		//减键按下
				{
					if(yushe_wendu<=1)					//当温度上限值减小到1时
					yushe_wendu=1;          		//固定为1
					yushe_wendu--;							//预设温度值减一,最小为0
					LCD_Write_Char(0,6,yushe_wendu,2) ;//显示预设温度
				}
				break;			  								//执行后跳出switch
			}
			case 2:				//预设CO2模式
			{
				SelectPosition(0,15) ;				//指定位置	
	   		write_com(0x0d);							//打开显示 无光标 光标闪烁
				if(key==KEY_ADD)							//加键按下
				{
					if(yushe_CO2>=255)        //当阀值加到大于等于255时
					yushe_CO2=254;            //阀值固定为254
					yushe_CO2++;					    //预设CO2值(阀值)加1,最大为255
					LCD_Write_Char(0,13,yushe_CO2,3) ;//显示预设CO2
				}
				if(key==KEY_MINUS)						//减键按下
				{
					if(yushe_CO2<=1)					//当CO2上限值减小到1时
					yushe_CO2=1;          	//固定为1
					yushe_CO2--;							//预设温度值减一,最小为0	  
					LCD_Write_Char(0,13,yushe_CO2,3) ;//显示预设CO2
				}
				break;
			}
			default	:	
			{
				write_com(0x38);//屏幕初始化
				write_com(0x0c);//打开显示 无光标 无光标闪烁
				Mode=0;			//恢复正常模式
				break;
			}
		}
		  if(s2==0)	   //热释电传感器接通
			{
				Led_G=0;
			}
			else
			{
				Led_G=1;
			}
		}
	} 

程序运行结果如图:

全部内容

全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、最小系统介绍视频等。

资料获取

https://docs.qq.com/doc/DT3dKSFhhcFFNc2FI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask-Babel 使用示例

下面创建一个简单的 Flask-Babel 示例&#xff0c;展示如何在 Flask 应用中实现国际化和本地化功能。这个示例将包括多语言支持&#xff08;中文和英文&#xff09;、语言切换功能以及翻译文本的使用。 项目结构 我们将创建以下文件结构&#xff1a; 1. 首先&#xff0c;创…

国标GB28181视频平台EasyGBS视频实时监控系统打造换热站全景可视化管理方案

一、方案背景​ 在城市供热体系中&#xff0c;换热站作为连接热源与用户的核心枢纽&#xff0c;其运行稳定性直接影响供热质量。面对供热规模扩大与需求升级&#xff0c;传统人工巡检模式暴露出效率低、响应慢、监测不足等问题。基于GB28181协议的EasyGBS视频实时监控系统&…

docker生命周期

进入容器里面 docker pull ubuntu # 获取ubtuntu镜像 docker run ubtuntu # -i 交互式命令操作&#xff0c;-t 开启一个终端 bash 进入容器后&#xff0c;执行的命令 docker run -it ubtuntu bash

鸿蒙缺少WMIC missing WMIC

在DecEco Studio中选择模拟器的时候会弹出“可能会导致设备管理功能失效。请检查并安装 WMIC”。 在启动鸿蒙模拟器时报&#xff1a;missing WMIC missing WMIC lt may cause the device management function to fail. Please check and install WMIC. 解决方案&#xff1a…

Spring Boot 使用 SLF4J 实现控制台输出与分类日志文件管理

概述 在日常的 Java 项目开发中&#xff0c;日志是最重要的调试与排查手段之一。为了便于开发时实时查看&#xff0c;同时在生产中追踪问题&#xff0c;我们通常希望实现以下日志管理目标&#xff1a; ✅ 控制台实时输出日志&#xff0c;方便开发调试✅ 日志根据级别分类保存…

linux_centos7.x的ifconfig命令显示内容详解

这是一段在Linux系统中执行 ifconfig 命令后得到的网络接口信息输出。ifconfig 命令用于显示或配置网络接口的参数。以下是对输出中各个网络接口信息的详细解释&#xff1a; 1. ens33 接口 ​​状态标志​​&#xff1a;flags4163<UP,BROADCAST,RUNNING,MULTICAST> 表示…

CentOS 7 如何pip3安装pyaudio?

CentOS 7 如何pip3安装pyaudio&#xff1f; # 先将yum软件源改为阿里云镜像源 http://mirrors.aliyun.com/centos-vault/7.9.2009/ bash <(curl -sSL https://linuxmirrors.cn/main.sh) # 基于一键换源脚本&#xff0c;全部回车即可# pip3安装模块是从源码构建&#xff08;…

【个人笔记】数据库原理(西电)

第一章 ER图和关系分解见课本p69 ER图是常用的 概念模型 方形&#xff1a;实体圆形&#xff1a;属性菱形&#xff1a;关系 常用的逻辑模型 说白了&#xff1a;增删改查 几种数据模型的基本概念 层次模型&#xff1a;树状结构【只能处理一对多的关系&#xff0c;只有沿着从根…

嵌入式学习之系统编程(十)网络编程之TCP传输控制协议

目录 一、网络模型 1、服务器/客户端模型 2、C/S与B/S区别 3、P2P模型 二、TCP&#xff08;传输控制协议&#xff09; &#xff08;一&#xff09;TCP概述 &#xff08;二&#xff09;TCP的特征&#xff08;面问高频问题&#xff09; 1、有链接 三次握手&#xff1a;建…

【react+antd+vite】优雅的引入svg和阿里巴巴图标

1.安装相关包 由于是vite项目&#xff0c;要安装插件来帮助svg文件引入进来&#xff0c;否则会失败 npm下载包 npm i vite-plugin-svgr vite.config.ts文件内&#xff1a; import svgr from "vite-plugin-svgr"; //... export default defineConfig({plugins: …

3D动画在微信小程序的实现方法

微信小程序支持通过多种方式实现3D动画效果&#xff0c;主要包括使用CSS3、WebGL及第三方库。以下为具体方法&#xff1a; 一. 使用CSS3 Transform实现基础3D动画详解 CSS3的transform属性提供了强大的2D/3D变换功能&#xff0c;通过简单的代码就能实现复杂的视觉效果。在小程…

计算机网络 | 1.2 计算机网络体系结构与参考模型

计算机网络体系结构与参考模型 目录 计算机网络体系结构与参考模型 【思维导图】 1、计算机的分层结构 1、为什么要分层&#xff1f; 2、什么是计算机网络体系结构 2、计算机网络协议、接口和服务 1&#xff09;协议&#xff1a; 2&#xff09;接口&#xff1a; 3…

网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件

目录 网心云 OEC/OECT 笔记(1) 拆机刷入Armbian固件网心云 OEC/OECT 笔记(2) 运行RKNN程序 外观 内部 PCB正面 PCB背面 PCB背面 RK3566 1Gbps PHY 配置 OEC 和 OECT(OEC-turbo) 都是基于瑞芯微 RK3566/RK3568 的网络盒子, 没有HDMI输入输出. 硬件上 OEC 和 OECT…

【Web应用】若依框架:基础篇17二次开发-项目名称修改-新建业务模块

文章目录 ⭐前言⭐一、课程讲解⭐二、自己手动实操⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内容开源、框架、软件工程、全栈&#xff08;,NET/Java/Python/C&#xff09;、数据库、操作系统、大数据、人工智能、工控、网络、…

MQTT入门实战宝典:从零起步掌握物联网核心通信协议

MQTT入门实战宝典&#xff1a;从零起步掌握物联网核心通信协议 前言 物联网时代&#xff0c;万物互联已成为现实&#xff0c;而MQTT协议作为这个时代的"数据总线"&#xff0c;正默默支撑着从智能家居到工业物联的各类应用场景。本文将带你揭开MQTT的神秘面纱&#…

05【Linux经典命令】Linux 用户管理全面指南:从基础到高级操作

目录 前言 1 Linux用户管理基础概念 1.1 Linux用户类型 1.2 用户相关配置文件 1.3 UID与GID 2 用户创建与管理 2.1 创建用户 2.2 设置用户密码 3 用户权限管理 3.1 授予sudo权限 3.2 以其他用户身份执行命令 4 用户信息查询 4.1 查看用户基本信息 4.2 查看用户所…

使用vite-plugin-html在 HTML 文件中动态注入数据,如元数据、环境变量、标题

vite-plugin-html 是一个用于 Vite 构建工具的插件&#xff0c;它可以帮助你在构建过程中动态注入一些 HTML 内容&#xff0c;比如标题、元数据、环境变量等。通过使用这个插件&#xff0c;你可以根据项目的配置和环境变量自动生成带有动态内容的 HTML 文件&#xff0c;适用于 …

Kinova机械臂在Atlas手术导航系统中的核心作用

Kinova机械臂凭借其高精度运动控制和智能交互功能&#xff0c;成为Atlas手术导航系统的重要组成部分。该系统通过实时跟踪患者位置和精确规划手术路径&#xff0c;提高了医疗过程的精准性与效率。灵活的设计使外科医生能够更轻松地操作复杂的手术工具&#xff0c;从而提升患者安…

性能优化之SSR、SSG

一、SSR和SSG介绍 SSR&#xff08;Server-Side Rendering&#xff0c;服务端渲染&#xff09;和 SSG&#xff08;Static Site Generation&#xff0c;静态站点生成&#xff09;是现代前端框架&#xff08;如 Next.js、Nuxt.js、Gatsby&#xff09;的核心渲染策略&#xff0c;用…

经典算法:回文链表

题目&#xff1a;234. 回文链表 给你一个单链表的头节点 head&#xff0c;请你判断该链表是否为 回文链表。如果是&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#x…