目录
资料下载地址:基于STM32的人脸识别+蓝牙解锁+红外测温
一、项目功能
本系统由stm32f103c8t6单片机最小系统电路+k210人脸识别电路+非接触人体红外测温电路+蓝牙电路
功能如下:
1、通过摄像头采集人脸信息进行识别
2、两个独立按键,分别进行人脸录入和人脸识别
3、按下人脸识别按键,可连续识别30s。
4、非接触红外测温模块。可实时测量人体体温,有效测量距离1-1.5cm,如果贴合在模块上,会让数据偏大。
5、通过蓝牙模块实现手机APP解锁。
二、视频
买了资料需要无码视频的私我!!!!
基于stm32的人脸识别系统
三、原理图
四、资料内容
五、部分代码
#include "stm32f10x.h"
#include <stdio.h>
#include <string.h>
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "IO_Init.h"
#include "mlx90614.h"
u8 open_door_flag;
u8 face_err;
float temp;
void open_door() //开门函数
{
if(open_door_flag>0) //ok,就开门
{
temp=tobody(SMBus_ReadTemp());
if(temp<37.3)
{
Relay=0;
UsartPrintf(USART3,"Temp:%.1fC",temp);
delay_ms(500);delay_ms(500);
}
else
{
UsartPrintf(USART3,"Temp:%.1fC high",temp);
Led=0;delay_ms(500);Led=1;delay_ms(500);
Led=0;delay_ms(500);Led=1;delay_ms(500);
Led=0;delay_ms(500);Led=1;delay_ms(500);
}
UsartPrintf(USART3," ");
open_door_flag=0;
memset(USART3_RX_BUF,0,100);
Led=1;
Relay=1;
}
}
void app_check() //APP开门
{
if(USART1_RX_STA>5)
{
delay_ms(50);
if(strstr((const char *)USART1_RX_BUF,"GPIO0=0")) //k1
{
open_door_flag=1;
}
USART1_RX_STA=0;
memset(USART1_RX_BUF,0,sizeof(USART1_RX_BUF));
}
}
void face_check() //人脸开门验证
{
if(USART3_RX_STA>5)
{
delay_ms(10);
if(strstr((const char *)USART3_RX_BUF,"success"))
{
open_door_flag=1;
face_err=0;
}
USART3_RX_STA=0;
memset(USART3_RX_BUF,0,sizeof(USART3_RX_BUF));
}
}
int main(void) //主函数
{
SystemInit();
delay_init();
delay_ms(200);
Led_Init();
Relay_Init();
Led=0;
Relay=0;
delay_ms(500);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 2组中断分组
usart1_Init(9600); //串口1初始化 链接蓝牙
usart3_Init(115200); //串口3初始化 与K210通信 获取人脸识别结果
SMBus_Init(); //MLX90614初始化
Led=1;Relay=1;
while(1)
{
face_check(); //人脸解锁
app_check(); //APP解锁
open_door(); //开门函数
}
}