基于stm32的智能防疫门禁管理系统

2023-11-12

1.选题背景与意义

经过了疫情的开端与发展,就目前我国已经处在疫情的常态化管理中。在疫情常态化管理下,与人们日常生活中的出行,总离不开测温、通行证明等等。

针对当前的疫情形式,我们设计一款智能防疫门禁管理系统。它能实现人们出行中测温的无人化和系统的区域进出管理化。

2.选题的要求及分析

2.1题目设计要求

智能防疫门禁管理系统。

1、系统能够采集进出人员的人体温度、记录人流量,

2、能在屏幕上显示人体温度、状态、人流量等。

3、语音播报提示进出人员体温是否正常,舵机动作(相当于打开闸门)。

4、后台记录进出人员人体温度、人流量。提醒后台工作人员进行上报和处理。

2.2题目设计分析

智能防疫门禁管理系统的设计与实现,设计所包含的模块主要有:

液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、物联网模块、按键电路模块及电源模块。

通过模块之间的配合实现对疫情的预警,一旦有温度异常将会通过闸门关闭和语音播报以及后台提醒来通知相应人员做出相关措施。

对于题目要求我们采用:

stm32f103c8t6实时采集红外传感器获取温度,当温度低于或高于指定阈值时,操作TFT显示屏显示温度异常和语音模块播报,同时控制舵机关闭,模拟门闸关闭状态,并将温度信息通过WIFI模块上传至后台,提醒后台工作人员进行上报和处理。

系统设计的难点在于stm32单片机程序设计、液晶显示、语音播报模块以及非接触式测温模块的使用。

3.设计综述

3.1实物设计综述

3.1.1总体设计框图

STM32F103C8t6做主控;MLX9614ESF-BCC做温度获取传感器;1.8TFTSV 17F语言播报模块、蜂鸣器做显示与语音;MG996舵机模拟开关门;ESP8266 Mode传数据到后台;

 

3.1.2硬件设计原理图及主要部分讲解

1、采用stm32f103c8t6当主控模块

  

1.采集红外传感器获取温度

2.操作TFT显示屏显示温度、状态情况、人流量。

3.控制语音模块播报,舵机开关(模拟门闸关闭状态)

4.将温度信息通过wifi模块上传至后台

3.1.2 MLX90614ESF-BCC模块-非接触测温传感器

        

 

1.内部自带环境温度补偿和线性校准算法

2.通过IIC通信与单片机进行数据交换

3.本模块精度非常之高,可以满足无接触测温功能需求(本项目用的是10cm精度的)。

3.1.3 ESP12F系列模组-ESP8266

   

 

1、低功耗UART-WiFi芯片模组

2、方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制

3、支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈

4、采用该模块进行数据的上传,可以实时将数据上传给后台服务器,进行数据的存储和大数据处理等。

3.1.4 液晶显示-1.8寸128X160像素TFT屏幕

     

1、通过SPI串口与单片机进行通信,用来显示所测温度或显示其它必要信息。

2、支持16BIT RGB 65K色显示,显示色彩丰富。

3、军工级工艺标准,长期稳定工作,提供底层驱动技术支持

4.显示温度、状态、人流量等信息。

3.1.5语音播放-SV 17F语音播报模块

    

1、支持l0触发播放功能,8个l0口单独触发8首曲目或8个10口组

2、支持MP3、WAV解码格式。

3、24位DAC输出,动态范围支持90DB,信噪比支持85DB。

4、自带5WD类功放,可直接驱动4Q,3.5W喇叭。

总的设计原理图

实物成品 

 

3.2关键技术及算法

3.2.1通信协议

串口通信协议:

IIC通信协议:

SPI通信协议:

3.2.2 CRC-8(PEC)校验原理以及实现

3.2.3 MLX90614ESF-DCC的温度算法研究

3.2.4 MLX90614ESF-DCC的使用研究

3.3主要代码展示

int main(void)
{
  /* USER CODE BEGIN 1 */
	float temp=0.0;
	peoples = 0;
	error_flag = 0;
  /* USER CODE END 1 */

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

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* 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_DMA_Init();
  MX_USART2_UART_Init();
  MX_TIM1_Init();
  MX_USART1_UART_Init();
  MX_TIM2_Init();
  /* USER CODE BEGIN 2 */
	LCD_Init();
	LCD_ShowString(5,60,16,"initializing...",0);
	
	__HAL_TIM_CLEAR_IT(&htim2, TIM_IT_UPDATE);		
	// 使能定时器2更新中断并启动定时器2
	HAL_TIM_Base_Start_IT(&htim2);
	HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);			//启动定时器1 PWM舵机
	Servo_Control(90);														//舵机调到45度
	
	HAL_Delay(1000); 
	display_init();
  /* USER CODE END 2 */
	
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//temper=(uint8_t)10*42.0-256;
		//HAL_UART_Transmit (&huart1 ,&temper,1,100);
		HAL_GPIO_TogglePin(led_GPIO_Port,led_Pin);
		temp = mlx90614_read_temp()+2;							//获取温度
		LCD_Fill(64,48,lcddev.width,64,WHITE);			//清空温度显示
		LCD_Fill(64,80,lcddev.width,96,WHITE);			//清空状态显示
		if(temp >= 33){																			//>=30度才会显示
			if(temp < 37.4){
				temper=(uint8_t)10*temp-256;
				HAL_UART_Transmit (&huart1 ,&temper,1,100);
				LCD_ShowFloatNum1(64,48,temp,4,GREEN,WHITE,16);
				GUI_DrawFont16(96,48,GREEN,WHITE,"℃",0);
				GUI_DrawFont16(64,80,GREEN,WHITE,"正",0);
				GUI_DrawFont16(80,80,GREEN,WHITE,"常",0);
				yuyin(0);
				peoples++;
				LCD_Fill(72,112,lcddev.width,128,WHITE);							//清空人数显示
				LCD_ShowNum(72,112,peoples,4,16);											//显示人数
				Servo_Control(135);																		//舵机调到135度  模拟开门
				HAL_Delay(3000);
				Servo_Control(45);																		//舵机调到45度 模拟关门
			}else if(temp >= 37.4 && temp <= 45){
				temper=(uint8_t)10*temp-256;
				HAL_UART_Transmit (&huart1 ,&temper,1,100);
				LCD_ShowFloatNum1(64,48,temp,4,RED,WHITE,16);
				GUI_DrawFont16(96,48,RED,WHITE,"℃",0);
				LCD_Fill(0,80,lcddev.width,lcddev.height,WHITE);			//清空状态显示
				GUI_DrawFont16(24,96,RED,WHITE,"注",0);
				GUI_DrawFont16(40,96,RED,WHITE,"意",0);
				GUI_DrawFont16(56,96,RED,WHITE,"!",0);
				GUI_DrawFont16(72,96,RED,WHITE,"异",0);
				GUI_DrawFont16(88,96,RED,WHITE,"常",0);
				error_flag = 1;
				peoples++;
				while(error_flag){
					yuyin(1);
					HAL_Delay(1500);
				}
				display_init();
			}
		}

  }
}

 3.4实物展示及说明

 

 代码资源:(24条消息) 基于stm32的智能防疫门禁管理系统.zip-智能家居文档类资源-CSDN文库icon-default.png?t=MBR7https://download.csdn.net/download/m0_62501117/87356362

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于stm32的智能防疫门禁管理系统 的相关文章

  • 腾讯翻译软件推荐

    相信大家学编程的时候 经常会需要进行官方文档的查阅 但是大部分的官方文档都是英文的 对于英文不是很好的朋友不是很友好 当然 如果英文较好的朋友最好尝试看英文 毕竟在写代码的时候翻译软件会把代码中的英文也翻译出来 下面我推荐一款腾讯翻译软件给
  • Web前端——HTML中的列表、表格、表单

    一 列表
  • 数据挖掘与数据分析的主要区别

    本文来自网易云社区 百科是这样定义数据挖掘和数据分析的 数据分析 是指用适当的统计分析方法对收集来的大量数据进行分析 提取有用信息和形成结论而对数据加以详细研究和概括总结的过程 这一过程也是质量管理体系的支持过程 在实用中 数据分析可帮助人
  • Java集合框架之Set集合简介

    和List集合一样 Set集合也是属于单列集合 同属于Collcetion集合体系下 List和Set都是单列集合 但是他们是存在区别的 List 有序 元素可重复的单列集合 Set 无序 元素不可重复的单列集合 Set和List集合一样属
  • idea移除许可证

    目录 一 介绍 二 操作步骤 一 介绍 当自己的idea日期要到了 又想续上 但是覆盖不了之前的日期 新的没办法生效 那么就要把原先的许可证先移除 再重新续上新的 二 操作步骤 1 点击idea的右上角的这个展开 2 选择帮助 点击注册 3

随机推荐

  • 算法➡数学问题

    文章目录 进制转换 最大公约数与最小公倍数 最大公约数 素数 判断素数 素数表的获取 质因子分解 大数运算 大数乘法 几何问题 由三点的坐标求所构成的三角形的面积 判断点是否在三角形内 集合问题 子集问题 数学归纳法 回溯法 全排列 进制转
  • 面试经典(5)--二叉树最低公共祖先LCA

    题目 输入二叉树的俩个节点 求它们的最低公共祖先 算法分析 我们直接来分析O n 的算法 比如求节点F和节点H的最低公共祖先 先求出从根节点A到F的路径 再求出A到H的路径 那么最后一个相同的节点就是最低公共祖先 A gt B gt D g
  • 算法——有向图的最短路径算法

    建议学习最短路径算法时 观看这个视频 https www bilibili com video BV1q4411M7r9 from search seid 9662298119837732890 Dijkstra算法 思路 1 从一个单源节
  • Flex 开发入门

    级别 初级 刘 庆 qlcdl cn ibm com 软件工程师 IBM 软件开发中心 2009 年 1 月 07 日 本文介绍 Flex 开发的基础知识 包括如何搭建开发环境 如何调试 以及如何建立和部署简单的
  • sharding-jdbc配置的数据源连接失败原因之一

    首先我们来看看官方的配置 spring shardingsphere datasource names ds ds0 ds1 spring shardingsphere datasource ds type org apache commo
  • 实现一个顺序存储的队列(数据结构与算法 - 队列)

    相关知识 队列是一个插入操作和删除操作受到限制的线性表数据结构 队列的插入和删除被限制在表的两端 即插入操作只能在表的一端进行 而删除操作只能在表的另一端进行 因此队列又称先进先出表 顺序存储的队列 队列既可以采用顺序存储 也可以采用链接存
  • 指数函数,幂函数,对数函数

    摘自 https zhikunhuo blog csdn net article details 100828713 指数函数 幂函数 对数函数为高等数学中的初等函数 指数函数 指数函数公式为y a x 其函数增长性如下 指数函数的单调性是
  • linux环境下vcs+verdi的使用

    文章目录 前言 一 vcs编译过程 二 vcs常用指令 1 常用 1 编译文件 2 debug选项 3 目录 4 使用verdi时需要在vcs里面添加的编译选项 5 仿真选项 加在sim里面 6 其他 7 完整版本 2 覆盖率相关 3 波形
  • 通过SSH -q -X来远程打开连接显示图形界面

    以下以qtcreator 为例 以Ubuntu 16 04 4 LTS为例 安装配置主要分为服务器端和客户端两个方面 一 服务器端配置 安装ssh服务 sudo apt get install openssh server apt get是
  • BurpSuite扩展--python扩展运行环境配置

    BurpSuite扩展 python扩展运行环境配置 Burp扩展可以用Java Python或Ruby编写 Java扩展可以直接在Burp中运行 而无需任何其他配置 在安装以Python或Ruby编写的扩展之前 您需要下载Jython或J
  • 电子日历HTML布局,css

    css import url https fonts googleapis com css2 family Roboto wght 400 500 700 display swap box sizing border box padding
  • 关于软考,人事考试照片格式要求如何修改,且通过照片审核处理系统。要求295px*413px像素

    首先要ps工具 你自己的照片 照片是白底的 如果是蓝底的 可直接在ps里的图像 gt 调整 gt 替换颜色 我的底色是从蓝色换到白色 之后就是图片的大小我们可以直接在图像 gt 图像大小设置图片的像素要求 这里你直接 最后导出的时候我选的是
  • 【华为OD机试真题2023 JAVA&JS】几何平均值最大子数组

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 几何平均值最大子数组 知识点数组二分查找 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大
  • python 爬虫 requests模块实现上传文件files参数

    使用requests模块实现向服务器上传文件非常简单 只需要指定post 函数中的files参数即可 files参数可以指定一个BufferedReader对象 该对象可以使用内置的open 函数返回 代码如下 import request
  • 项目五:基于mvc模式的学生管理系统-----------------待更新

    基于mvc模式的学生管理系统 第一阶段 数据库准备及环境配置
  • 春秋云镜 CVE-2021-41947

    春秋云镜 CVE 2021 41947 Subrion CMS v4 2 1 存在sql注入 靶标介绍 Subrion CMS v4 2 1 存在sql注入 启动场景 漏洞利用 exp http localhost panel visual
  • Springboot 实践(17)spring boot整合Nacos配置中心

    前文我们讲解了Nacos服务端的下载安装 本文我们降价spring boot整合nacos 实现Nacos服务器配置参数的访问 一 启动Nacos服务 创建三个配置文件 如下所示 Springboot Nacos Client dev ya
  • (一)在Linux下命令行使用技巧

    目录 1 实验环境的管理 2 系统登陆方式 3 如何恢复系统 4 什么是内核 什么是linux 5 什么是shell 6 如何运行shell 多种方式 退出当前用户返回到登陆界面 7 shell的命令行提示符 8 shell中常见的快捷键技
  • 计算机创建快捷方式w10,win10中解决无法在桌面添加快捷方式的修复方法

    我们在win10系统电脑的使用中 电脑有时候有很多的操作出现问题我们不知道怎么做的时候 可以看一下小编的分享 我们在win10中小伙伴提问 自己想要在桌面添加润撒建的快捷方式 可是系统显示不能添加了 这是怎么回事呢 今天小编就来个的那家分享
  • 基于stm32的智能防疫门禁管理系统

    1 选题背景与意义 经过了疫情的开端与发展 就目前我国已经处在疫情的常态化管理中 在疫情常态化管理下 与人们日常生活中的出行 总离不开测温 通行证明等等 针对当前的疫情形式 我们设计一款智能防疫门禁管理系统 它能实现人们出行中测温的无人化和