【单片机毕业设计选题24008】-基于单片机的寝室系统设计

系统功能:

1. 采用STM32最小系统板控制,将采集到温湿度光照等传感器数据显示在OLED上

2. 通过离线语音模块开关灯,风扇,门。

3. 监测到MQ2烟雾后触发报警。

4. 语音&手动&定时控制窗帘。

5. 按键开启布防模式,布防后监测到有人后系统报警。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

资料获取地址

系统主要功能模块代码

初始化代码:

  /* 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_ADC1_Init();MX_TIM1_Init();MX_USART2_UART_Init();/* USER CODE BEGIN 2 */HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);//uart2打开接收中断HAL_UART_Receive_IT(&huart2, (uint8_t*)&uart2RecBuff, 1);//舵机初始化控制   HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);InitOled();InitOledDisp();//测试写DS1302时间//    TestSetTime();ResetDHT11();/* USER CODE END 2 */

系统控制代码:

//系统信息更新void SystemControl(void){//更新DHT11数据UpdateTempData();//获取系统时间   GetSystemTime();//更新传感器状态GetSensorState();}

蓝牙上报数据:

//更新BLE数据void UpdateBleData(void){printf("Time:%02d:%02d\r\n", getTimeHour, getTimeMin);printf("T:%02d H:%02d\r\n", DHT11_Data.temp_int, DHT11_Data.humi_int);      printf("lightVal:%04d\r\n", getLightVal);//烟雾报警状态if(mq2Alarm==true){printf("MQ2 Alarm\r\n"); }else{printf("MQ2 Normal\r\n"); }//是否检测到人体if(humanDetected==true){printf("human Detected\r\n"); }else{printf("human NoDetected\r\n"); }}

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

各功能模块资料:

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

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

相关文章

上位机图像处理和嵌入式模块部署(h750 mcu和usb虚拟串口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于mcu usb而言,大部分情况下,它和上位机之间的关系都是device的关系。一般usb,可以分成host和device。如果mc…

自动化测试git的使用

git是一款分布式的配置管理工具。本文主要讲git如何在自动化测试中安装,上传及拉取下载代码。 1 、git 介绍 每天早上到公司,从公司的git服务器上下载最新的代码,白天在最新的代码基础上,编写新的代码,下班时把“代码…

SSID简介

一、 SSID 概念定义 SSID(Service Set Identifier)即服务集标识符。它是无线网络中的一个重要标识,用于区分不同的无线网络。 相当于无线网络的名称,用于区分不同的无线网络。用户在众多可用网络中识别和选择特定网络的依据。通…

消息队列-消息队列保证消息可靠性的一些建议

如何检测到消息丢失? 美团消息队列文章中提到了对消息队列的监控手段,我理解消息丢失,根据不同节点来查看监控: 生产者生产丢失:监控中生产者生产量异常消费者消费丢失:查看消费者消息延迟监控、消费者 o…

新能源汽车高压上电、高压下电逻辑分析

高压上电逻辑 新能源汽车的上电分为高压上电和低压上电,高压上电流程一般理解为高压件通电的过程,具体流程如下: 1、点火开关处于ON档时,仪表盘点亮,低压电接通。 2、VCU、BMS、MCU等控制模块依次被唤醒并开始进行自检…

基于Java自习室在线预约系统 的设计与实现

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

解决JupyteNotebook打不开问题

问题:打开jupyternotebook出现黑色界面,马上闪退 步骤: 1、winr,cmd进入,conda activate yes 进入yes环境(后面是要下载新的jupyter notebook),我这里下载到了yes环境下 2、下载jupyter Note…

<Rust><iced>基于rust使用iced库构建GUI实例:图片的格式转换程序

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第二篇实例,是一个图像格式转换程序,基于rust图像处理库image以及文件处理库rfd。 UI演示&…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] URL拼接(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 URL拼接(100分) 🌍 评测功能需要订阅专栏后私信联系清隆解…

Python中的数据可视化:绘制三维线框图plot_wireframe()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 Python中的数据可视化: 绘制三维线框图 plot_wireframe() [太阳]选择题 在上面的代码中,plot_wireframe() 方法用于绘制什么类型的图形? import matplot…

冷却塔蒸发量及补水量计算

1 冷却塔补水量计算 冷却塔补水蒸发量排污量飘散损失泄漏量。一般冷却塔内水份的蒸发量约为进水量的1~2.5%。 (1)蒸发量 总冷却循环水量的蒸发量E C ① 冷却蒸发量 E E=72Q(X1–X2)=L △t/600 E : 蒸发量…

react有什么特点

React的特点可以归纳为以下几点: 声明式设计:React采用声明式设计,使得创建交互式用户界面变得简单。在React中,可以为应用的每一个状态设计简洁的视图,当数据变化时,React能够高效地更新并渲染相应的组件…

C# OpenCvSharp Mat操作-创建Mat-Range

📸 C#中使用OpenCvSharp库的Range类详解 在C#中使用OpenCvSharp库时,Range类是一个用于定义范围的工具,通常用于选择图像的感兴趣区域(ROI, Region of Interest)。下面是对该类及其使用方法的详细解释和举例说明。&am…

[Algorithm][贪心][K次取反后最大化的数组和][身高排序][优势洗牌][最长回文串]详细讲解

目录 1.K 次取反后最大化的数组和1.题目链接2.算法原理详解3.代码实现 2.身高排序1.题目链接2.算法原理详解3.代码实现 3.优势洗牌1.题目链接2.算法思路详解3.代码实现 4.最长回文串1.题目链接2.代码实现 1.K 次取反后最大化的数组和 1.题目链接 K 次取反后最大化的数组和 2.…

通过shell脚本检查web应用是否正常

#!/bin/bash #功能检查web应用是否正常 #作者:hp.li #日期:202406015 RUN_PATH$(dirname $(readlink -f "$0")) #检查web网站是否可和函数 check_url(){ #方法一:通过%{http_code}"参数获取状态码 #HTTP_CODE$(curl -o /dev/null --connect-timeou…

Golang 并发编程(Goroutine、Channels、Select、Sync、原子操作函数、Context、gpool)

文章目录 GoroutineSync(同步机制)sync.Mutex(互斥锁)sync.RWMutex(读写互斥锁)sync.WaitGroup(等待组)sync.Map(并发安全的映射) sync/atomic(原…

Java课程设计:基于Javaweb的校园订餐系统

文章目录 一、项目介绍二、项目技术栈三、核心代码四、项目展示五、源码获取 一、项目介绍 在当今互联网高速发展的时代,大学校园内的学生生活正在发生着翻天覆地的变化。其中,校园内的餐饮服务无疑是亟需改革和创新的领域之一。 传统的校园食堂模式,往往存在就餐高峰时段拥挤…

DELL服务器插入新磁盘、创建虚拟磁盘、挂载磁盘步骤

文章目录 一、磁盘清理(可选,针对新硬盘是Foreign状态)1、进入VD Mgmt2、清理新硬盘配置 二、创建虚拟磁盘1、进入Device Settings2、创建虚拟磁盘 三、挂载磁盘到系统1、分区磁盘(注意实际磁盘的名称)2、格式化分区3、…

Java web应用性能分析之【prometheus+Grafana监控springboot服务和服务器监控】

Java web应用性能分析之【java进程问题分析概叙】-CSDN博客 Java web应用性能分析之【java进程问题分析工具】-CSDN博客 Java web应用性能分析之【jvisualvm远程连接云服务器】-CSDN博客 Java web应用性能分析之【java进程问题分析定位】-CSDN博客 Java web应用性能分析之【…

【数学代码】幂

Hello!大家好,我是学霸小羊,今天来讲讲幂。 求几个相同因数的积的运算,叫做乘方,乘方的结果叫做幂。 a^n,读作 “ a的n次方 ” 或 “ a的n次方幂”,a叫做底数,n叫做指数。 对于底数、指数和幂…