084、STM32项目分享开源:智能婴儿监护系统

目录

一、项目成品图片

二、项目功能简介

1.主要器件组成

2.功能详解介绍

三、项目原理图设计

四、项目PCB硬件设计

项目PCB图

五、项目程序设计

六、项目实验效果 ​编辑

七、项目包含内容

一、项目成品图片

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1vPVJ6EEsp/?spm_id_from=333.1387.upload.video_card.click

资料分享看文章末尾

二、项目功能简介

1.主要器件组成

本设计由STM32F103C8T6单片机+WIFI模块ESP8266-01S电路+OLED屏幕电路+GY906非接触测温传感器电路+声音传感器电路+心率传感器电路+JQ8400语音播报模块+蜂鸣器电路+按键电路+电源电路。

2.功能详解

1、环境采集:GY906温度传感器对婴儿的体温实现高精度监测、声音传感器检测婴儿是否啼哭、心率传感器检测婴儿心率数据。

2、屏幕显示:OLED屏幕显示当前体温、是否啼哭、心率数据信息

3、体温检测:GY906温度传感器对婴儿的体温实现高精度监测。

4、心率检测:心率传感器检测婴儿心率

5、啼哭检测:声音传感器检测婴儿是否啼哭

6、阈值设置:可以设置体温和心率阈值

7、体温报警:当婴儿体温过高时发出警报

8、心率报警:当婴儿心率过高时发出警报;

9、远程控制:通过WIFI连接手机APP,APP可以查看当前环境信息数据,可调节阈值范围

三、项目原理图设计

四、项目PCB硬件设计

五、项目程序设计

复制代码
#include "stm32f10x.h"
#include "delay.h"
#include "usart.h"
#include "USART2/usart2.h"
#include "oled.h"
#include "timer.h" 
#include "menu.h"
#include "key.h"
#include "modules.h"
#include "beep.h"
#include "MAX30102/max30102.h"
#include "MAX30102/algorithm.h"
#include "IIC/myiic.h"
#include "MLX90614/mlx90614.h"
#include "cry.h"


/****************破晓电子工作室*******************
		              
***          破晓单片机											
***          项目:STM32智能婴儿监护系统
***          BILIBILI:破晓单片机
***          小红书:破晓单片机
***          授权IP:破晓单片机
***          淘宝:破晓单片机 
***          淘宝:破晓电子 
***          版本:V01.01
***          MCU:STM32F103C8T6

******************破晓单片机***********************/

//显示界面
CaiDanJieGouTi  KeyTab[SIZE_CAIDAN]=
{
    {0 ,0 ,0 ,0 ,0 ,Main_Menu0}, 
	{1 ,1 ,1 ,1 ,1 ,Main_Menu1},  
	{2 ,2 ,2 ,2 ,2 ,Main_Menu2},  
	{3 ,3 ,3 ,3 ,3 ,Main_Menu3},   
	{4 ,4 ,4 ,4 ,4 ,Main_Menu4},
	{5 ,5 ,5 ,5 ,5 ,Main_Menu5},   
	{6 ,6 ,6 ,6 ,6 ,Main_Menu6},  
    {7 ,7 ,7 ,7 ,7 ,Main_Menu7},	 
	{8 ,8 ,8 ,8 ,8 ,Main_Menu8},   
 
} ;

//传感器变量声明
typedef struct
{
	uint16_t cry;//
	uint16_t heart;//	
	uint16_t value;//
	float titemp;//
	uint16_t yuyin;
 
}SensorModulesValue;

typedef struct
{
	uint8_t titempTV;
	uint8_t heartTV;
}SensorThresholdValue;

typedef struct
{
	
	uint8_t BEEPFlag;
	uint8_t BB1Flag;
	uint8_t BB2Flag;
 	
	uint8_t stateeeFlag;				
}DriveFlag;

int main(void)
 {
			delay_init();
			TIM3_Int_Init(9,7199);//定时器初始化
			OLEDGUI_Config(); 				//OLED 	
			OLEDGUI_DispString(30,16,"Init...",16,1);	  	 
	 		key_Init();//按键初始化
	 		Adc_Init();//Adc初始化
			beep_Init();//beep初始化
			SMBus_Init();//SMBus初始化
			CRY_Init();//CRY初始化
			MP3_Init();//MP3初始化
			max30102_init();//max30102初始化
		 
			SensorThresholdSet();//阈值初始化
			uart1_init(9600);
			delay_ms(100);
			uart2_init(9600);
			delay_ms(100);	
			memset((uint8_t *)&currentDataPoint, 0, sizeof(dataPoint_t));	 
			gizwitsInit();
			OLEDGUI_Clear();				//OLED清屏
	while(1)
	{	
            //获取按键值     
			key_scan();		
            //进入菜单界面显示处理数据
			GetKeylnput(&Keystatus); 
            //获取传感器数据
			SensorDataGet();

            //数据上传	
 
			currentDataPoint.valuetitemp=(int)SensorData.titemp;
			currentDataPoint.valueheart=SensorData.heart;
			currentDataPoint.valuecry=SensorData.cry;
			currentDataPoint.valueBB1Flag=DriveFlagData.BB1Flag;		
			currentDataPoint.valueBB2Flag=DriveFlagData.BB2Flag;
 			
  
			gizwitsHandle((dataPoint_t *)&currentDataPoint);
             //数据下发
				Sensorthreshold.titempTV=currentDataPoint.valuetitempTV;
 
				Sensorthreshold.heartTV=currentDataPoint.valueheartTV;
 
			delay_ms(100);	
 
	}	
 }

六、项目实验效果 ​

​​

七、项目包含内容

​​​