当前位置: 首页 > news >正文

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录

 目录

前言

一、本设计主要实现哪些很“开门”功能?

二、电路设计原理图

1.电路图采用Altium Designer进行设计:

2.实物展示图片

三、程序源代码设计

四、获取资料内容


前言

近年来在车辆逐渐普及的情况下,由于家长的疏忽,将儿童误锁车内导致悲剧发生情况时有发生。儿童被锁车内因高温,缺氧而窒息死亡的事件也屡见不鲜。近年儿童被锁车内死亡的新闻逐渐增多,我们在一边提高注意力的同时,是不是可以通过一种预警器来避免这种情况。


因此,基于这种情况,我们以STM32F103芯片为控制核心设计的误锁车内的主动式报警装置便应运而生。本装置解决的最大问题就是一旦发现有孩童被遗忘在车里会立即打电话给车主报警。本装置由STM32F103c8t6芯片、红外遥控、GSM模块、温度监测模块、CO检测模块、WIFI模块等其他硬件设计而成的误锁车内的主动式报警装置,通过红外遥控模拟车钥匙关闭车门后立即上电各个模块立即开始工作,红外如果检测到人,GSM模块立即拨打电话给车主报警,而车主知道后可在赶回去车里时可用过APP实时了解车内温度高低和车内有害气体浓度,确保能在第一时间保障车内人员安全。

一、本设计主要实现哪些很“开门”功能?

1、APP远程开关控制车辆

2、APP远程读取车辆智能传感器数据信息

3、APP上显示数据弹窗信息警告功能,温度弹窗,有害气体弹窗

4、系统WIFI智能联网,数据双向交互,APP WIFI连接

5、无线遥控,可控制车辆开关门

6、红外热释式人体红外检测,一旦检测触发警报

7、车内有害气体检测,并不上传到手机APP显示

8、车内温度检测,温度数据上传到APP显示

9、报警装置的的人体红外检测到车上有人立即启动拨打电话进行警报

10、测内温度系统自动判别,立即开启风扇进行降温

二、电路设计原理图

1.电路图采用Altium Designer进行设计:

1、通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心。

2、通过红外热释模块实现的人体检测,模块与单片机之间通过数字引脚进行连接。

3、 使用无线433HZ射频遥控,模块与单片机进行数据引脚协议解析。

4、通过DS18B20进行测内温度检测,模块与单进行单总线连接。

5、使用GSMSIM900A短信模块发送短信打电话,模块与单片机使用串口连接。

6、通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心。

7、使用ESP8266 WIFI模块进行联网,模块与单片机串口连接。

8、使用MQ-9有害气体检测车内一氧化碳浓度,模块与单片机使用模拟引脚连接。

2.实物展示图片

 

三、程序源代码设计

代码如下(示例):


/* 用户区当前设备状态结构体*/
dataPoint_t currentDataPoint;
u8 wifi_sta=0;//WIFI连接状态 0: 断??: 已连接

//协议初始化
void Gizwits_Init(void)
{
    TIM3_Int_Init(9,7199);//1MS系统定时
      usart3_init(9600);//WIFI初始化
    memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));//设备状态结构体初始化
    gizwitsInit();//缓冲区初始化
}

//数据采集
void userHandle(void)
{
    //判断当前LED1开关量
       if(LED0==1&&aa==1)
         {
             currentDataPoint.valueAlarm_switch = 1;
         }
     else 
       {
             currentDataPoint.valueAlarm_switch = 0;
         }

    if(wifi_sta)//判断wifi 是否连接
    {
            temp=DS18B20_Get_Temp();//读取DS18B20温度值赋给temp
             currentDataPoint.valueCar_temp = temp ;//温度数据
                 if(temp>=Temp_alarm)//温度值>温度上限值
                 {  
                        temp_num++;
                      FAN=0;//继电器0触发
                        if(temp_num>=alarm_num)//警报次数达到一定次数
                        {
                            temp_num=0;
                            currentDataPoint.valueTemp_Alarm=1;//APP出现警报提示
                        } 
                 }
                 else  
                 {
                     FAN=1;
                    currentDataPoint.valueTemp_Alarm=0;
                 }
                 
                 adcx=Get_Adc_Average(ADC_Channel_1,10);
                 voltoge_2=(float)adcx*(3.3/4596);
                 if(voltoge_2>0.35&&voltoge_2<=0.75)
                 {gas = gas_chu;} 
                 else
                 {
                     voltoge_2=voltoge_2-voltoge_1;
                     gas=voltoge_2*450+gas_chu;
                 }
                 currentDataPoint.valueGas_con = gas; //有害气体数据
                if(gas>=gas_alarm)//有害气体浓度>浓度上限值
                {
                        gas_num++;
                        if(gas_num>=alarm_num)//警报次数达到一定次数
                        {
                            gas_num=0;
                            currentDataPoint.valueGas_Alarm=1;//APP出现警报提示
                        }
                }
                else
                { 
                    currentDataPoint.valueGas_Alarm=0;
                }
    }
    else  
    {
        //没连接wifi,将警报次数清零 保险
        if(temp_num!=0||gas_num!=0) 
        {
            temp_num=0;gas_num=0;
        }
    }         
}

//主函数
 int main(void)
 {    
    delay_init();                //延时函数初始化      
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    KEY_Init();             //按键初始化 
    EXTIX_Init();             //外部中断初始化     
    Gizwits_Init();         //协议初始化
    DS18B20_Init();                    //温度初始化
    Adc_Init();                  //ADC初始化    
    LED_Init();                    //LED端口初始化
    uart_init(115200);        //串口初始化为115200
   
  printf("ATS7=30\r");//从拨打电那一刻起到自动挂断30秒
    delay_ms(200);
  while(1) 
    {
       userHandle();//用户采集   
     gizwitsHandle((dataPoint_t *)&currentDataPoint);//协议处理
    }     

 

四、获取资料内容

相关文章:

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下&#xff0c;由于家长的疏忽&#xff0c;将…...

可认证数据资产合约标准协议(CMIDA-1)意见征集

标准背景 数据资产具备多维度的属性&#xff0c;涵盖行业特性、状态信息、资产类型、存储格式等。数据资产在不同流通主体之间可理解、可流通、可追溯、可信任的重要前提之一是存在统一的标准&#xff0c;缺失统一的标准&#xff0c;数据混乱冲突、一数多源、多样多类等问题将…...

Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件

本文将介绍一种手动的轻量级的方式&#xff0c;还原HTTP/TLS协议中传输的文件&#xff0c;为流量数据包中的文件分析提供帮助。 如果捕获的数据包中存在非文本类文件&#xff0c;例如png,jpg等图片文件&#xff0c;或者word&#xff0c;Excel等office文件异或是其他类型的二进…...

MYSQL- 展示事件信息 EVENTS 语句(十八)

13.7.5.18 SHOW EVENTS 语句 SHOW EVENTS[{FROM | IN} schema_name][LIKE pattern | WHERE expr]此语句显示有关事件管理器事件的信息&#xff0c;这些信息在第23.4节“使用事件调度器”中进行了讨论。它要求显示事件的数据库具有EVENT权限。 以最简单的形式&#xff0c;SHOW…...

如何在react中使用react-monaco-editor渲染出一个编辑器

一、效果展示 二、基于vite配置 1.首先安装react-monaco-editor和monaco-editor包 npm add react-monaco-editor npm i monaco-editor 2.其次创建一个单独的文件&#xff08;此处是tsx、直接用app或者jsx也行&#xff09; import { useState, useEffect } from react impo…...

【Linux】Github 仓库克隆速度慢/无法克隆的一种解决方法,利用 Gitee 克隆 Github 仓库

Github 经常由于 DNS 域名污染以及其他因素克隆不顺利。 一种办法是修改 hosts sudo gedit /etc/hosts加上一行 XXX.XXX.XXX.XXX github.comXXX 位置的 IP 可以通过网站查询 IP/服务器github.com的信息-站长工具 这种方法比较适合本身可以克隆&#xff0c;但是速度很慢的…...

HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 【…...

单片机学习笔记 1. 点亮一个LED灯

把基础的东西都过一下&#xff0c;用来学习记录一下。 目录 1、Keil工程 2、Keil实现代码 3、烧录程序 0、实现的功能 点亮一个LED灯 1、Keil工程 打开Keil&#xff0c;Project----New uVision Project&#xff0c;工程文件命名----OK 选择单片机类型AT89C52&#xff0c;和…...

Poetry 完整安装与项目环境搭建指南

Poetry 完整安装与项目环境搭建指南 1. Poetry 安装方式 1.1 pip 安装&#xff08;推荐新手使用&#xff09; # 使用 pip 安装 pip install poetry# 验证安装 poetry --version# 如果需要升级 pip install --upgrade poetry1.2 官方安装脚本 # Windows PowerShell (Invoke-…...

【MyBatis源码】MapperRegistry详解

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 MapperRegistry 的作用核心字段解析整体工作流程addMapper方法MapperAnnotationBuilder#parse流程详解MapperAnnotationBuilder#parse…...

Java项目实战II基于Spring Boot的工作流程管理系统设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在当今快节奏的商业环境中&#xff0c;…...

flink StreamGraph 构造flink任务

文章目录 背景主要步骤代码 背景 通常使用flink 提供的高级算子来编写flink 任务&#xff0c;对底层不是很了解&#xff0c;尤其是如何生成作业图的细节 下面通过构造一个有向无环图&#xff0c;来实际看一下 主要步骤 1.增加source 2.增加operator 3. 增加一条边&#xff0…...

【51单片机】LCD1602液晶显示屏

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602&#xff08;Liquid Crystal Display&#xff09;液晶显示屏是…...

理解 HTML5 Canvas 中逻辑像素与物理像素的关系

理解 HTML5 Canvas 中逻辑像素与物理像素的关系 在使用 HTML5 Canvas 时&#xff0c;开发者经常会遇到一个困惑&#xff1a;为什么鼠标的 offsetX 和 offsetY 和我绘制的图形坐标对不上&#xff1f;这通常是因为 Canvas 的逻辑像素大小和物理像素大小不一致。本文将详细解释这…...

7.揭秘C语言输入输出内幕:printf与scanf的深度剖析

揭秘C语言输入输出内幕&#xff1a;printf与scanf的深度剖析 C语言往期系列文章目录 往期回顾&#xff1a; VS 2022 社区版C语言的安装教程&#xff0c;不要再卡在下载0B/s啦C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序C语言概念之旅&#xff1a;解锁关…...

数据分析-系统认识数据分析

目录 数据分析的全貌 观测 实验 应用 数据分析的全貌 观测 实验 应用...

蓝桥杯介绍

赛事背景与历程 自2009年举办以来&#xff0c;蓝桥杯已经连续举行了多届&#xff0c;成为国内领先的信息技术赛事。2022年&#xff0c;蓝桥杯被教育部确定为2022—2025学年面向中小学生的全国性竞赛活动&#xff0c;并入选国家级A类学科竞赛。 参赛对象与组别 蓝桥杯的参赛对…...

鸿蒙加载网络图片并转换成PixelMap

鸿蒙加载网络图片并转换成PixelMap 参考文档 基于API12. 有一些图片功能需要使用 PixelMap 类型的参数&#xff0c;但是使用Image组件之类的时候无法获取到 PixelMap 类型数据。 因此只能是把图片下载下来然后加在并转换一下。 实现方式 一下封装了一个函数。使用的 rcp 模…...

hive搭建

1.准备环境 三台节点主机已安装hadoopmysql数据库 2.环境 2.1修改三台节点上hadoop的core-site.xml <!-- 配置 HDFS 允许代理任何主机和组 --> <property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value> </property&…...

51c扩散模型~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/11541675 #Diffusion Forcing 无限生成视频&#xff0c;还能规划决策&#xff0c;扩散强制整合下一token预测与全序列扩散 当前&#xff0c;采用下一 token 预测范式的自回归大型语言模型已经风靡全球&#xff0c;同时互联…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...