编辑器版本 ×
标准版

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【毕设】基于STM32的智能防疫门禁

简介:针对当前的疫情形势,设计一款智能防疫门禁系统。本系统由STM32F103C8T6单片机核心板、彩屏液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路及电源组成。

开源协议: GPL 3.0

发布时间: 2022-07-03 22:59:17
  • 1.4w
  • 33
  • 111
描述

毕设:智能防疫门禁系统(已完成)

 

 

1.题目要求

 

针对当前的疫情形势,设计一款智能防疫门禁系统。本系统由STM32F103C8T6单片机核心板、彩屏液晶显示电路、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路及电源组成。本系统能够采集人体温度、记录人流量,测量温度对比温度阈值,当测量温度低于温度阈值时,液晶显示“状态:正常”,语音播报“温度正常”,舵机动作(相当于打开闸门);如果测量温度超过设置阈值,液晶显示“状态:注意!异常”,语音播报“请注意 温度异常”,舵机不动作(不允许通过)。

 

2.题目分析

 

本次毕业设计是智能防疫门禁系统的设计与实现,设计所包含的模块主要有彩屏液晶显示电路、摄像头模块、语音播报电路、非接触测温传感器电路、舵机驱动电路、WIFI模块、按键电路模块及电源模块。通过模块之间的配合实现对疫情的预警,一旦有温度异常将会通过闸门关闭和语音播报来通知相应人员做出相关措施。

 

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

 

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

 

3.总体方案设计图

 

4.原理图设计说明

 

彩屏液晶显示:采用1.8寸128X160像素tft屏幕,该屏幕采用ST7735S驱动芯片,通过14pin、0.5mmFPC接口(本来是想直接自己焊接FPC连接座的,然鹅技术不达标,焊了两个都报废了,于是换成了直插的)与单片机相连,通过SPI串口与单片机进行通信,用来显示所测温度或显示其它必要信息。

 

两种接口,排针接口和FPC接口,自行选择(排针接口需要额外购买转接板,卖屏幕的链接就有卖)。

 

 

语音播放芯片采用NV020C-SOP8语音芯片,该芯片内置一组PWM输出器可直推0.5W喇叭,支持13bit的DAC输出,也可外接功放模块;采用灵活的多种操作模式(边沿按键触发,电平触发、随机按键播放、顺序按键播放等);外围电路简单,仅需一个耦合电容。静态电路小于2uA;本系统中采用一线制控制模式,单片机仅需1个IO口输出时序信号,即可控制该芯片输出音频。

 

简单易上手,缺点是无法自己烧录语音。

 

非接触测温传感器采用GY-906-DCC模块,该模块体积小巧,内部自带环境温度补偿和线性校准算法,通过SPI通信与单片机进行数据交换,当温度超过设定的阈值时,单片机进行及时的显示和逻辑处理,本模块精度非常之高,完全可以满足无接触测温功能需求(本项目用的是10cm精度的)。

 

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 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。本系统采用该模块进行数据的上传,可以实时将数据上传给后台服务器,进行数据的存储和大数据处理等。

仅仅使用到了esp8266的rx和tx接口,通过AT指令控制。

电源模块:AMS1117-3.3是一种输出电压为3.3V的正向低压降稳压器,适用于高效率线性稳压器发表开关电源稳压器电池充电器活跃的小型计算机系统接口终端笔记本电脑的电源管理电池供电的仪器,本系统采用AMS1117-3.3将5V电源电源稳压至3.3V为单片机和wifi模块等供电。参考了b站蓝桥杯教学视频中的防反接电路,同时设计了三种供电接口(USB、接线端子、圆头)。

防反接电路如下:通过NMos控制GND的导通。

主控模块:STM32F103C8T6(STM32F103C6T6也可以)是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器程序存储器容量是64KB,需要电压2V~3.6V,本系统采用stm32f103c8t6当主控模块,实时采集红外传感器获取温度,如果温度低于或高于指定阈值时,操作TFT显示屏显示温度异常和语音模块播报,同时控制舵机关闭,模拟门闸关闭状态,并将温度信息通过wifi模块上传至后台,提醒后台工作人员进行上报和处理。

stm32最小系统,芯片的VDD引脚都应该加滤波电容,偷懒没加[手动狗头],希望大家不要学我[手动狗头],不过影响不大[手动狗头]

 

其它:板子预留了串口2接口,可以连接openmv或k210等模块,当温度异常时进行拍照上传后台,并通过串口通信将图像显示在TFT屏上。

5.PCB设计说明

 

PCB尺寸为100mm*50mm。

 

TFT屏支撑铜柱为M3*14mm铜柱。

 

板子四角通孔直径为M3。

 

32.768KHZ晶振可以不焊,如果二次开发需要可以焊上。

 

USB接口不好焊,可以用低温锡浆+热风枪/加热台。

 

SWDIO调试接口、串口2接口、舵机接口以及温度传感器接口没有防反接电路,注意电源和GND不要接反,否则会烧单片机。

 

1.8寸TFT预留了两个接口,一个是正面2X7的2.54mm排针接口,另一个是背面0.5mm,14pin的FPC接口,请自行选择使用,对自己焊接技术有把握的选FPC接口。

 

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 */

}

代码没啥好说的,直接下载程序后烧录进去就完了,用的keil5,有能力者自行修改。

 

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/AMS1117-3.3.

 

板子有防反接电路,接线端子供电时不怕接反。电源必须采用4.5V-7.2V供电(舵机直接使用电源电压进行供电,无DC-DC模块,最大耐压7.2V)。

 

如有不足,还请指正。

 

设计图
原理图
1 /
PCB
1 /
暂无
ID Name Designator Footprint Quantity BOM_Supplier Part
1 TMB12A05 BUZZER1 BUZ-TH_BD12.0-P7.60-D0.6-FD 1 C96093
2 104 C1,C2,C7,C9,C10,C11,C13,C15 C0603 8 C94073
3 20p C3,C4,C5,C6 C0603 4 C123543
4 10p C8,C14 C0603 2 C296044
5 105 C12 C0603 1 C5673
6 DC-005-20A DC1 DC-IN-TH_DC005 1 C130239
7 X05A20L14T FPC1 FFC-SMD_14P-P0.50_X05A20L14T 1 C388670
8 HDR-F-2.54_2x7 H1 HDR-F-2.54_2X7 1 C38844
9 HDR-M-2.54_2x3 J1 HDR-M-2.54_2X3 1 C65114
10 HDR-M-2.54_1x4 J2,J4,J5 HDR-M-2.54_1X4 3 C124378
11 HDR-M-2.54_1x3 J3 HDR-M-2.54_1X3 1 C180248
12 K2-3.6×6.1_SMD KEY2,KEY3,KEY4,KEY5 KEY-SMD_2P-L6.2-W3.6-LS8.0 4 C118141
13 LED-0603_R LED1,LED2 LED0603_RED 2 C72044
14 WJ301V-5.0-2P P2 CONN-TH_2P-P5.00_WJ301V-5.00-2P 1 C8475
15 2N3904(SOT-23) Q2 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-TR 1 C18536
16 NTD4858NT4G Q3 TO-252-2_L6.6-W6.1-P4.57-LS9.9-TL-CW 1 C15955
17 100k R1,R2 R0603 2 C217279
18 10k R3,R10,R11,R13 R0603 4 C160601
19 510 R4,R5 R0603 2 C25245
20 1M R6 R0603 1 C103201
21 20 R7,R8 R0603 2 C25218
22 4.7k R9 R0603 1 C105428
23 1k R12 R0603 1 C98280
24 100 R14,R15,R16 R0603 3 C8220
25 470 R17,R18 R0603 2 C155066
26 K2 RST KEY-SMD_2P-L6.2-W3.6-LS8.0 1 C118141
27 GSPK2308P-8R0.5W SPK1 SPK-TH_BD23.0-P10.00-D0.8-L-RD 1 C530532
28 SS-12D02-VG4 SW2 SW-TH_SS-12D02-VG4 1 C136719
29 STM32F103C8T6 U1 LQFP-48_L7.0-W7.0-P0.50-LS9.0-BL 1 C8734
30 WT8266-S5 ESP-12F_C784365 U2 WIRELM-SMD_WT8266-S5-ESP-12F 1 C477829
31 NVC 语音芯片 U3 SOP-8_150MIL 1 C111033
32 LM1117GS-3.3 U11 SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BR 1 C411821
33 USB-Micro_1 USB1 MICRO-USB-SMD_5P-P0.65-H-F_C10418 1 C10418
34 32.768KHz X1 CRYSTAL-SMD_4P-L8.0-W3.8-BL 1 C179637
35 8MHZ X3 HC-49US_L11.0-W4.6-P4.88 1 C390747

展开

工程附件
序号 文件名称 下载次数
1

源码.rar

317
2

取字模工具.rar

82
3

QQ视频20220114225759.mp4

5993
工程成员
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

  • 开源平台公众号