1907基于STM32校园宿舍门禁防疫测温系统设计(原理图、pcb、源程序)【毕设课设】

摘要

本文设计了一种基于STM32的校园宿舍门禁防疫测温系统。该系统利用STM32作为主控芯片,结合人体温度检测模块、步进电机模拟的门禁系统、指示灯和报警灯进行状态指示,实现了宿舍门禁的智能化管理和防疫测温功能。本文详细介绍了系统的硬件组成、软件设计以及开发过程中的关键问题及其解决方案,并提供了部分源代码。

一、引言

随着校园安全管理和疫情防控需求的不断提高,智能化门禁系统成为校园宿舍管理的重要组成部分。本文设计的基于STM32的校园宿舍门禁防疫测温系统,通过集成人体温度检测、门禁控制、状态指示等功能,实现了对进出宿舍人员的自动识别和体温检测,提高了宿舍管理的效率和安全性。

二、系统组成与工作原理

本系统主要由STM32主控芯片、人体温度检测模块、RFID读卡器模块、OLED显示屏、步进电机门禁模块、指示灯和报警灯等组成。系统工作时,通过人体温度检测模块获取进出人员的体温信息,RFID读卡器读取人员卡片信息,STM32芯片根据读取的信息进行判断和处理,控制步进电机模拟的门禁开关,并通过指示灯和报警灯进行状态指示。

三、硬件设计

  1. STM32主控芯片:选用STM32F103系列芯片作为系统的主控芯片,具有丰富的外设接口和强大的处理能力,满足系统控制需求。

  2. 人体温度检测模块:采用高精度的人体温度检测传感器,如DS18B20等,实现体温的实时检测。

  3. RFID读卡器模块:选用RC522模块作为RFID读卡器,实现对进出人员卡片的读取。

  4. OLED显示屏:用于显示人员卡片信息、体温信息等。

  5. 步进电机门禁模块:采用步进电机模拟门禁开关,通过STM32芯片控制其转动实现门禁的开关。

  6. 指示灯和报警灯:用于指示系统状态和报警提示。

四、软件设计

软件设计主要包括STM32芯片的初始化、外设模块的驱动编写、数据处理和逻辑控制等部分。通过编写相应的程序,实现对人体温度的检测、RFID卡片的读取、OLED显示屏的更新、步进电机的控制以及指示灯和报警灯的状态指示等功能。

五、开发过程中的关键问题及其解决方案

  1. OLED与RFID初始化冲突问题:在开发初期,发现OLED与RFID模块在初始化时存在冲突。通过重新初始化OLED模块中的相关引脚,解决了该问题。

  2. MAX7219驱动数码管供电问题:数码管驱动模块MAX7219的供电电压范围与逻辑电平不匹配。通过串联电阻降低供电电压,解决了逻辑电平过高的问题。

  3. 步进电机驱动问题:在步进电机驱动部分,发现初始化时IO电平未拉高导致驱动一直打开。通过修改初始化程序,确保IO电平在初始化时拉高,解决了该问题。

  4. RFID卡号显示问题:RFID读取到的卡号为16进制,而OLED只能显示字符和汉字。通过编写卡号转换函数,将16进制卡号转换为字符串后在OLED上显示。

  5. 数码管显示异常问题:在系统运行过程中,发现数码管在一段时间后显示异常。经过排查,初步判断为硬件问题,需进一步检查和修复。

  6. 串口通信问题:在实现串口通信时,出现通信异常。通过添加超时接收机制和改进通信协议,解决了该问题。

六、结论与展望

本文设计了一种基于STM32的校园宿舍门禁防疫测温系统,实现了宿舍门禁的智能化管理和防疫测温功能。通过详细的硬件设计和软件编程,解决了开发过程中的关键问题,并提供了部分源代码。该系统具有较高的实用性和可扩展性,可广泛应用于校园宿舍等场所的安全管理和疫情防控工作。未来,将进一步优化系统性能,提高稳定性和可靠性,并探索更多智能化管理功能的应用。

#include "stm32f10x.h"

#include "Timeout.h"
#include "Myusart.h"
#include "Motor.h"
#include "MAX7219.h"
#include "LEDandBuzz.h"
#include "RC522.h"
#include "HDC1080.h"	//HDC1080
#include "OLED.h"
#include "delay.h"
#include "usart.h"
#include "string.h"


///已录入成员的射频卡ID号和中文姓名编码/
char ID_liaotingchun[8]="0F23660A";
#define LTC 0
char ID_zhongweimin[8]="00000000";//暂未录入
#define ZWM 3
char ID_zhengwujie[8]="031202D3";
#define ZWJ 6 
char ID_haoshuyi[8]="00000000";//暂未录入
#define HSY 9
char ID_maozimeng[8]="0F237704";
#define MZM 12
char ID_hulingqiao[8]="84F724CA";
#define HLQ 15
char ID_wangtianhui[8]="20D72F68";
#define WTH 18
char ID_zhoujiahui[8]="F0169A83";
#define ZJH 21
char ID_biance[8]="C5F2241C";
#define BC 24
///





//自定义函数声明
void OLED_DisplayInit(void);
u8 RFID_Updata(void);
void OLED_DisplayUpdata(u8 Name,char *IDcard,char * StudentID);




#define TimeoutTemp 5		//测温时间,多次测温方便看变化
#define TemperatureLimit	3050		//体温报警阈值

u16 Temperature;     //温度
char IDcard[10]="6666666666";		//RFID卡号,实际只有8位
u8 TempMeas=TimeoutTemp*2;	//请求人脸识别的超时时间的计数变量
u8 ChineseName;//中文名信息编号


int main(void)
{
	unsigned char status;
	u8 Exist=1;
	u8 FaceRecognitionResult = 1;
	

	NVIC_Configuration();    
	SystemInit();	// 配置系统时钟为72M 	
	delay_init();
	MyusartInit(115200);
	
	//各模块的初始化
	RGBledInit();//LED灯
	BuzzInit();//蜂鸣器
	RC522_Init();//RFID射频卡
	OLED_Init();	//OLED液晶显示
	MAX7219_Init();//数码管显示
	MotorInit();//电机控制门禁打开
	HDC1080_Init();//检测温湿度
	Timeout_Init();//定时器初始化
	UsartTimeout_Init();//串口超时接收

部分代码

 

资料下载地址:

https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

 

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值