当前位置: 首页 > 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;同时互联…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...