针对当前的疫情形势,设计一款智能防疫门禁系统。本系统由STM32F103C8T6单片机核心板、彩屏液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路及电源组成。
1.题目要求
针对当前的疫情形势,设计一款智能防疫门禁系统。本系统由STM32F103C8T6单片机核心板、彩屏液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路及电源组成。本系统能够采集人体温度、记录人流量,测量温度对比温度阈值,当测量温度低于温度阈值时,液晶显示“状态:正常”,语音播报“温度正常”,舵机动作(相当于打开闸门);如果测量温度超过设置阈值,液晶显示“状态:注意!异常”,语音播报“请注意 温度异常”,舵机不动作(不允许通过)。
2.题目分析
本次毕业设计是智能防疫门禁系统的设计与实现,设计所包含的模块主要有彩屏液晶显示电路、摄像头模块、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路模块及电源模块。通过模块之间的配合实现对疫情的预警,一旦有温度异常将会通过闸门关闭和语音播报来通知相应人员做出相关措施。
stm32f103c8t6实时采集红外传感器获取温度,如果温度低于或高于指定阈值时,操作TFT显示屏显示温度异常和语音模块播报,同时控制舵机关闭,模拟门闸关闭状态,并将温度信息通过WIFI模块上传至后台,提醒后台工作人员进行上报和处理。
本题难点在于stm32单片机程序设计、液晶显示、语音播报模块以及非接触式测温模块的使用。
3.总体方案设计图
4.原理图设计说明
彩屏液晶显示:采用1.8寸128X160像素tft屏幕,该屏幕采用ST7735S驱动芯片,通过14pin、0.5mmFPC接口与单片机相连,通过SPI串口与单片机进行通信,用来显示所测温度或显示其它必要信息。
语音播放芯片:采用NV020C-SOP8语音芯片,该芯片内置一组PWM输出器可直推0.5W喇叭,支持13bit的DAC输出,也可外接功放模块;采用灵活的多种操作模式(边沿按键触发,电平触发、随机按键播放、顺序按键播放等);外围电路简单,仅需一个耦合电容。静态电路小于2uA;本系统中采用一线制控制模式,单片机仅需1个IO口输出时序信号,即可控制该芯片输出音频。
非接触测温传感器:采用GY-906-DCC模块,该模块体积小巧,内部自带环境温度补偿和线性校准算法,通过SPI通信与单片机进行数据交换,当温度超过设定的阈值时,单片机进行及时的显示和逻辑处理,本模块精度非常之高,完全可以满足无接触测温功能需求。
WIFI模块:ESP12F 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫ESP8266的低功耗UART-WiFi芯片模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。本系统采用该模块进行数据的上传,可以实时将数据上传给后台服务器,进行数据的存储和大数据处理等。
电源模块:AMS1117-3.3是一种输出电压为3.3V的正向低压降稳压器,适用于高效率线性稳压器发表开关电源稳压器电池充电器活跃的小型计算机系统接口终端笔记本电脑的电源管理电池供电的仪器,本系统采用AMS1117-3.3将5V电源电源稳压至3.3V为单片机和wifi模块等供电。参考了b站蓝桥杯教学视频中的防反接电路,同时设计了三种供电接口。
主控模块:STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,本系统采用stm32f103c8t6当主控模块,实时采集红外传感器获取温度,如果温度低于或高于指定阈值时,操作TFT显示屏显示温度异常和语音模块播报,同时控制舵机关闭,模拟门闸关闭状态,并将温度信息通过wifi模块上传至后台,提醒后台工作人员进行上报和处理。
其它:板子预留了串口2接口,可以连接openmv或k210等模块,当温度异常时进行拍照上传后台,并通过串口通信将图像显示在TFT屏上。
5.PCB设计说明
PCB尺寸为100mm*50mm。
TFT屏支撑铜柱为M3*14mmm铜柱。
板子四角通孔直径为M3。
32.768KHZ晶振暂时可以不焊,如果二次开发需要可以焊上。
USB接口不好焊,可以用低温锡浆+热风枪焊。
SWDIO调试接口、串口2接口、舵机接口以及温度传感器接口没有防反接电路,注意电源和GND不要接反,否则会烧单片机。
6.软件及代码调试说明
程序通过STM32CubeMx生成,懒人神器,主要代码如下:
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(45); //舵机调到45度 HAL_Delay(1000); //等待初始化完成 display_init(); //显示初始界面 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(led_GPIO_Port,led_Pin); //led灯闪烁,显示程序运行状态 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) { 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 <= 42) { 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; while(error_flag) { yuyin(1); HAL_Delay(1500); } display_init(); } } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
7.实物展示说明
实物如下:
拍照水平有限,凑合看.
8.作品注意事项
主控模块:stm32f103c8t6/stm32f103c6t6。
液晶:1.8寸tft,某宝9.5元一块+转接板4元。链接:https://m.tb.cn/h.f942nTN?tk=scxI2X0OH15
语音播放芯片:NV020C-SOP8,某宝2.5元一片,店家免费帮录入音频(必须要8W 0.5欧的喇叭 更高级的喇叭需要自己加音频功放)。链接:https://m.tb.cn/h.flcN4YZ?sm=5db856 ,采用1线制通信,00H为温度正常,01H为请注意,温度异常。
非接触测温传感器:GY-906-DCC模块,某宝33元一个,本项目最贵的耗材。
舵机驱动电路:无...舵机用SG90S或MG996都可以,电源电流够大就可以。
WIFI模块:ESP12F,立创商场满200白嫖一个,某宝十几块一个(某鱼拆机件几块钱一个)。
电源模块:LM1117-3.3.
板子有防反接电路,不怕接反。电源必须采用4.5V-7.2V供电(舵机直接使用电源电压进行供电,无DC-DC模块,最大耐压7.2V)。
如有不足,还请指正。
详情请前往作者页面:https://oshwhub.com/jing-zhong-bao-guo/zhi-neng-fang-yi-men-jin_recover
版权说明
本文遵循GPL3.0版权协议,转载请附上原文出处链接及本声明。
链接:https://chandianzi.cn/bi-she-ji-yu-stm32-de-zhi-neng-fang-yi-men-jin.html
作者:精忠报国
版权协议:GPL 3.0
分类名称:STM32
资源标识:220125基于STM32的智能防疫门禁
暂无评论