【单片机毕业设计选题24101】-基于单片机的车载事故报警系统

news2024/9/23 9:34:10

系统功能:

系统上电后,OLED显示“欢迎使用请稍后”两秒后显示“Wait SIM900A”, SIM900A模块初始化OK后进入正常界面显示。

第一行显示采集到的温湿度值

第二行显示系统状态(OK或Alarm)

第三行显示经度值

第四行显示纬度值

注意经纬度信息只有在室外才能正常显示。

短按B3按键向指定手机号发送短信息

人体传感器被挡住或检测到火焰或烟雾传感器超标蜂鸣器都会报警。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

资料获取地址

https://shop272529339.taobao.com

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 */


  /* USER CODE END 1 */


  /* MCU Configuration--------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();


  /* USER CODE BEGIN Init */

    InitVar();

  /* USER CODE END Init */


  /* Configure the system clock */

  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_USART1_UART_Init();

  MX_USART2_UART_Init();

  MX_USART3_UART_Init();

  /* USER CODE BEGIN 2 */

//uart2打开接收中断

    HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);

//uart3打开接收中断

    HAL_UART_Receive_IT(&huart3, (uint8_t*)&uart3RecBuff, 1);

//初始化显示   

    InitOled();

    InitOledDisp();

//初始化DHT11   

    ResetDHT11();

//初始化SIM900A

    sim900a_Init();

    HAL_Delay(100);     

 

  /* USER CODE END 2 */

系统控制代码;
 

//系统信息更新

void SystemControl(void)

{

    static uint8_t updateCnt = 0;

   

    updateCnt++;   

    if(updateCnt>=SYSTEM_UPDATE_INTER)

    {

        updateCnt = 0;

        if(DHT11ReadData()==0)  //DHT11温湿度读取OK

        {

            ;

        }        

    }

//系统报警检测

    if((ReadBodyPin()==LOW_LEVEL)||(ReadFirePin()==LOW_LEVEL)||(ReadMQ2Pin()==LOW_LEVEL))

    {

        sysAlarm = true;

        BUZZER_ON();

    }

    else

    {

        sysAlarm = false;

        BUZZER_OFF();

    }

}

系统显示:
 

//显示系统状态信息

void SystemDisplay(void)

{

    char textBuf[20];

   

//显示获取到的体温值

    sprintf(textBuf,"Temp:%02d Humi:%3d", DHT11_Data.temp_int, DHT11_Data.humi_int);

    OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符

//显示系统状态

    if(sysAlarm==false)

    {

        sprintf(textBuf,"State:OK   ");

    }

    else

    {

        sprintf(textBuf,"State:Alarm");

    }

    OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符

//第三行显示经度值

    sprintf(textBuf,"%s%s", gpsInfo.E_W, gpsInfo.longitude);

    OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16);

//第四行显示纬度值

    sprintf(textBuf,"%s%s", gpsInfo.N_S, gpsInfo.latitude);

    OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); 

}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

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

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

相关文章

dll文件丢失怎么恢复?超简单的5个方法,1分钟搞定dll文件修复!

DLL,或称动态链接库,是一种重要的文件类型,包含了一系列用于运行几乎所有程序的指令,这些程序在win11、win10、win8和win7系统中都广泛使用。如果Windows操作系统中的dll文件丢失,您可能无法正常启动所需的程序或应用。…

劳易测高防护等级的读码系统提升仓储效率

在现代物流与仓储管理领域,条码识别和数据交换系统已经成为实现智能仓储管理的关键技术。面对特定的工业环境挑战,比如腐蚀性气雾等恶劣条件,具备高防护等级和抗腐蚀能力的条码系统显得尤为重要。今天,小易将为您带来创新的解决方…

Zabbix中文乱码问题解决方案

WinR打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,注意后缀ttf 将msyh.ttf上传到服务器zabbix字体目录中:/usr/share/zabbix/fonts/ 注意文件权限 …

代码随想录训练营第五十二天 孤岛的总面积

第一题&#xff1a;孤岛的总面积 第二题&#xff1a;沉没孤岛 思路&#xff1a; 将所有在边界的岛屿所在的visited数组位置都置为true&#xff0c;剩下的visited[i][j] true && grid[i][j] 1的位置就是孤岛&#xff0c;将其置为1即可。 代码如下 #include <io…

WiFi to Ethernet: 树莓派共享无线连接至有线网口,自动通过Captive Poartal网页登录认证

物联网开发系列&#xff1a;物联网开发之旅① WiFi to Ethernet: 树莓派共享无线连接至有线网口&#xff0c;自动通过Captive Poartal验证物联网开发番外篇之 Captive Portal验证原理 文章目录 背景实现工具实现细节一、将无线连接共享到以太网1. 配置静态IP地址2. 启用IP转发3…

Chainlit快速实现AI对话应用的聊天记录如何持久性保存

前言 Chainlit 可以设置聊天记录用户搜索和浏览过去的对话。 如何实现 要启用聊天历史记录,您需要启用: 数据持久性身份验证恢复对话 为了让用户继续持久对话,请使用cl.on_chat_resume 生命周期钩子 装饰器使用户能够继续对话。需要同时启用数据持久性和身份验证。 该…

day21(mysql用户创建与授权、角色创建)

1.环境准备 [rootmysql ~]# rm -rf /etc/my.cnf //清空/etc目录下的my.cnf [rootmysql ~]# yum -y remove mariadb //移除mariadb [rootmysql ~]# find / -name "*mysql*" -exec rm -rf {} \; //删除mysql所有遗留 文件 2.安装绿色mysql [rootmysql ~]# t…

安装svd模型

svd模型简介 Stable Video Diffusion模型基于潜在的视频扩散模型&#xff0c;通过在小型、高质量的视频数据集上插入时间层并进行微调&#xff0c;将传统的2D图像合成模型转化为生成视频模型。这种方法的优点在于&#xff0c;它能够生成高分辨率的视频&#xff0c;并且具有强大…

C++基础编程100题-034 OpenJudge-1.4-15 最大数输出

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/15/ 描述 输入三个整数,输出最大的数。 输入 输入为一行&#xff0c;包含三个整数&#xff0c;数与数之间以一个空格分开。 输出 输出一行&#xff0c;包含一个整数&#xff0c;即最大的整数。 样例…

【AI】关于AI和手机

2011 年至2015 年期间&#xff0c;全球智能手机出货量年增长率均超过两位数&#xff0c;显示出强劲的市场需 求和快速扩张趋势。然而&#xff0c;自2016 年起&#xff0c;全球智能手机用户数量趋于饱和&#xff0c;换机周期也逐 渐变长&#xff0c;市场进入存量替换阶段&#x…

人工智能时代,程序员如何保持核心竞争力?

人工智能时代&#xff0c;程序员如何保持核心竞争力&#xff1f; 随着AIGC&#xff08;如chatgpt、midjourney、claude等&#xff09;大语言模型接二连三的涌现&#xff0c;AI辅助编程工具日益普及&#xff0c;程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工…

FreeRTOS基础入门——RTOS背景知识简介(一)

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…

必备:2024年四大文件翻译神器盘点!

在现代社会&#xff0c;语言不再是交流的障碍&#xff0c;文件翻译工具的出现&#xff0c;让不同语言之间的信息传递变得轻松自如。以下是几款备受推崇的文件翻译工具&#xff0c;它们将助大家轻松应对各种语言挑战&#xff0c;提升工作效率。 在当今的职场环境中&#xff0c;…

有没有性价比高的蓝牙耳机推荐?盘点4款开放式耳机排行榜10强

那当然是开放式蓝牙耳机性价比高呀&#xff0c;说到开放式蓝牙耳机的性价比呢&#xff0c;那我们可以先了解它的价位&#xff0c;它的价位大致可以分为三个价位。 低价位区间&#xff08;499元以下&#xff09;&#xff1a; 这个价格区间的开放式耳机通常受成本限制&#xff…

使用Step Functions运行AWS Backup时必备的权限要点

引言 在尝试从Step Functions执行AWS Backup的按需备份时&#xff0c;我在权限方面遇到了一些困难。为了备忘&#xff0c;我将这些经验写成这篇文章。 概述 从Step Functions执行AWS Backup时&#xff0c;需要分配以下权限&#xff1a; AWS Backup相关权限 执行备份的权限…

培训第二十一天(mysql用户创建与授权、角色创建)

上午 1、环境准备 [rootmysql ~]# rm -rf /etc/my.cnf //清空/etc目录下的my.cnf[rootmysql ~]# yum -y remove mariadb //移除mariadb[rootmysql ~]# find / -name "*mysql*" -exec rm -rf {} \; //删除mysql所有遗留文件 2、安装mysql绿包 [rootmysql ~]…

c->c++(四):gtest

本文主要探讨gtest相关内容。 gtest安装 wget -O gtest.zip https://github.com/google/googletest/archive/refs/heads/main.zipunzip gtest.zipcd googletest-mainmkdir bulid && cd buildcmake .. && make && make install gtest API TEST/TEST…

MySQL update set语句中 逗号与and的区别

语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法&#xff1a; UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition; 参数说明&#xff1a; table_name 是你要更新数据的表的名称。column1, column2, ... 是你要更新的列的名称。v…

减速电机的减速比计算原理

今天因为看到减速电机的内部中有通过齿轮来增加扭矩的结构&#xff0c;想找点原理性的文章来看一下&#xff0c;奈何遍寻不得。故提笔于此记录&#xff0c;以备往后回看。 图1 减速电机的竖截面剖视图 减速比为64&#xff0c;我的理解是在初始的齿轮转一圈的时候&#xff0c;最…

单片机配网,继电器开关,广播

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…