STM32系列
基于STM32的智能手环系统的设计
前言
随着科学技术的革新,智能化生活已经开始实现,更多的人们的目光聚焦在智能化产品上面,一方面是对自身健康的关注,另一方面是对便携轻松的生活的向往,智能手环就作为其中的一种代表性产物。其主要应用于运动显示比如显示行走及跑步的步数,距离,速度。同时可以实时健康监测比如心率,血氧,体温等。是一款突出个性与人性的智能化产物。
一、系统方案的设计
1.1系统功能分析
本设计是由STM32F103C8T6最小系统电路,DS3231时钟模块,ADXL345计步模块,MAX30100血氧心率模块,DS18B20温度模块,MPU6050体位检测模块,1.44寸TFT彩色液晶屏显示模块组成的嵌入式智能手环系统。
(1)通过DS3231时钟模块实现日期显示的功能
(2)使用传感器ADXL345检测人步数
(3)通过MAX30100传感器实时检测血氧心率;
(4)通过传感器DS18B20进行温度测量。
(5)通过MPU6050体位检测卧床病人是否跌倒或可以通过此功能蜂鸣器警报呼叫。
(6)通过1.44寸TFT彩色液晶屏实时显示日期,步数,距离,心率,血氧,跌倒状态以及温度值。
1.2系统总体结构
二、硬件电路的搭建
2.1STM32最小系统组成部分
2.2S硬件引脚连接
2.2S实物连接图
(1)STM32单片机实物图如下图所示。
(2)DS3231实物图
(3)ADXL345模块实物图如下图所示
(4) MAX30100实物图
(5)MPU6050实物图
(6)DS18B20温度传感器的实物图
(7)1.44寸TFT显示模块
整体系统实物图
手工焊接是一种常见的原始焊接方法。
三、软件设计
本设计采用轮询的操作方式,首先在系统中断中间隔不同的时间给相应的标志位置一,比如:计步每隔0.2s计步标志位置一,时钟每隔1s置一一次。然后在主循环中检测标志位,如果标志位置一。刷新相应的值。
3.1系统流程图
下面是更为详细的流程图
3.2主函数代码
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "uart.h"
#include "stdio.h"
#include "ds18b20.h"
#include "Lcd_Driver.h"
#include "TFT_demo.h"
#include "GUI.h"
#include "key.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h"
#include "math.h"
#include "MAX30100.h"
#include "MAX30100_Filters.h"
#include "MAX30100_PulseOximeter.h"
#include "MAX30100_SpO2Calculator.h"
#include "myiic.h"
#include "timer3.h"
#include "adxl345.h"
#include "myiic_2.h"
#include "DS3231.h"
u8 ReadAdxl345; //定时读取adxl345数据
u8 ErrorNum=0; //记录错误次数
u16 Normal_num=0; //正常次数
u16 Error_num=0; //倾斜次数
u16 BuShu=0; //步数脉冲量
u16 step_num = 0; //计数步数
float disJuLi = 0; //显示距离
signed short HeartRate_val=0; //心跳速率
u8 SPO2_val = 0; //血氧