基于 STM32 的智能睡眠呼吸监测系统设计
本设计的硬件构成:
STM32F103C8T6单片机最小系统板(包含+3.3V稳压电路+时钟晶振电路+复位电路(上电自复位,手动复位)),心率传感器、气压传感器、液晶显示、按键、蜂鸣器、LED灯、蓝牙模块组合而成;
功能介绍:
1、检测呼吸状态频率、心率。LCD显示屏幕进行数据显示呼吸频率、心率值。
2、可以按键设置呼吸状态阈值,如果超过阈值,发生声光报警。按键1:设置键;按键2:加一键;按键3:减一键。
3、通过蓝牙模块通信连接手机 APP,显示呼吸、心率数据。
4、系统根据呼吸频率判断并且显示睡眠阶段:深度睡眠、浅度睡眠、清醒。
主要物料清单及型号:
显示屏:LCD1602-5V;
单片机:STM32F103C8T6;
蓝牙模块:JDY-31-SPP;
心率传感器:PULSE_SENSOR;
气压传感器:HX710-pressure;
蜂鸣器:5V有源蜂鸣器;
原理图:
实物图1:
PCB:
元器件清单:
程序:
int main(void) { u8 key_value=0; delay_init(); //延时函数初始化 UART1_INIT(9600); Lcd_GPIO_init(); Lcd_Init() ; Lcd_Puts(0,0," Initialzing"); HX711_GPIO_Init(); BEEP_Init(); RELAY_Init(); EXTIX_Init(); // 初始化外部中断 KEY_Init();//IO初始化 TIM2_Init(49,7199);//5ms beep=0; delay_ms(500); //上电瞬间加入一定延时在初始化 beep=1; To_Zero(); while(1) { key_value=KEY_Scan(0); key_handle(key_value); if(time_5ms>=100) { time_5ms=0; if(set==0) display(); APP_Update(); //向APP上传数据 if((setbreath=2) //采集呼吸值 { time_50ms=0; weight=get_weight(); count2++; if(weight>FullScale) { weight_data[count2]=(weight-FullScale)/100; } if(count2>=100) //采集达到100次,计算呼吸频率 { find_peak_value(); //计算峰值数据 interval=interval2-interval1; breath=interval*7/3; if(breath>500) //清空缓冲区数据 breath=0; for(count2=0;count2<100;count2++) { weight_data[count2]=0; } count2=0; } interval1=0; interval2=0; } } } })||(setheart
全部0条评论
快来发表一下你的评论吧 !