一.系统概述
1. 核心控制器:使用STM32作为系统的核心控制单元,负责数据处理和控制逻辑。
2. 表情识别模块:结合K210表情识别模块进行人脸表情的实时捕捉与识别。
3. 显示界面:利用OLED12864显示屏提供用户界面,显示情绪识别状态及识别结果。
4. 情绪识别流程:用户按下识别按键后,系统进入情绪识别模式,实时显示“情绪识别”的提示。
5. 神经网络分析:核心处理单元应用预先训练好的神经网络模型分析面部图像,识别表情类型(如开心、难过、生气等)。
6. 实时反馈:识别结果通过OLED屏幕实时展示情绪类别及其特点,确保用户即时了解情绪状态。
7. 数据上传功能:通过ESP8266无线通信模块将情绪识别数据实时上传至APP端。
8. 用户APP功能:用户在APP端注册和登录后,可查看详细的识别结果和情绪分析信息。
9. 管理员管理界面:管理员可通过APP登录,查看和管理用户的识别数据与日志信息。
10. 多领域应用:系统可用于心理健康、人机交互和安全监控等领域,促进情绪管理和社会交往。
11. 数据安全保障:系统设计考虑用户数据的管理与安全,确保用户隐私保护。
12. 便捷高效平台:提供简便高效的情绪识别服务,满足不同用户的需求。
二.电路设计
电路图采用Altium Designer进行设计:
1.通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2.通过K210高精度摄像头模块实现的人脸识别,模块与单片机之间通过UART串口进行连接;
3.通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
4.通过ESP8266-01S将检测到数据上传到上位机,通过UART串口与单片机进行通信;
5.使用独立按键进行系统控制,按键的一端接地,一端接单片机的GPIO口。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Beep_Led_Relay.h"
#include "Control_Report_To_Police.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Beep_init();
Beep=0;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
TIM4_Init(300,7200);
OLED_Init(); //OLED初始化
OLED_CLS(); //OLED清屏
OLED_ShowCN(20,2,0);
OLED_ShowCN(44,2,1);
OLED_ShowCN(68,2,2);
OLED_ShowCN(92,2,3);
Usart1_Init(115200); //PA9 PA10
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.实物展示
五.资料内容