一.硬件方案
随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。智能手环作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。便携式智能手环是适应市场需求的设计,使用起来简单方便。
主要由STM32F103C8T6单片机最小系统板+LCD1602液晶显示模块+ADXL345计步器模块+心率监测模块+DS18B20温度传感器+HC-05蓝牙模块+电源开关构成;
PCB图如下:
二.设计功能
- LCD1602液晶显示屏显示当前测量步数、距离、心率和体温数据;
- 心率传感器采集当前的心率数据,如果手指放置心率传感器,单片机采集传感器的数据,计算出当前心率数据;
- ADXL345三轴加速度传感器监测实时空间位置,如果当前位置出现变化,并符合走路姿势,皆可算出当前步数和距离;
- 温度传感器为接触式型传感器,如果将传感器握在手心,即可测量出当前体温;
- 除了显示屏可显示当前的测量数据外,也可通过蓝牙连接手机APP,在APP上实时显示当前的数据。
三.软件设计
主程序源码
/****************主函数***************/
int main(void)
{ delay_init(); //延时函数初始化 uart_init(9600); //串口初始化为9600TIM3_Int_Init(49,7199);//50ms EXTIX_Init(); // 初始化外部中断LED_Init(); //初始化与LED连接的硬件接口KEY_Init(); //初始化按键Lcd_GPIO_init(); //初始化lcd引脚Lcd_Init(); //初始化lcd屏幕delay_ms(200);Init_ADXL345();if(Single_Read_ADXL345(0X00)==0xe5) {delay_ms(5);}else{delay_ms(3);}while(1){if(ReadAdxl345== 1) //定时读取adxl345数据{ReadAdxl345= 0;ReadData_x(); //三轴检测函数CheckNum++;if((temp_Y>450)||(temp_Y<-450)) //查看正常次数 {Normal_num++; //正常次数++}else{Error_num++;//倾斜次数}if((Error_num!=0)&&(Normal_num!=0))//检测到步数{BuShu++; //步数脉冲量++Error_num=0; //清除一个周期检测Normal_num=0;}}if(disFlag==1) //显示标志{disFlag = 0;readTemp++; //定时计数if(readTemp >= 8)//约800ms处理一次数据 温度{readTemp =0;//重新计数temperature=(float)DS18B20_Get_Temp()/10; //缩小10倍为实际值 }disBuShu = BuShu/2; //显示步数disJuLi = disBuShu*0.45;//显示距离sprintf(dis0,"X:%03d/min %4.1f C",xinLv,temperature);//打印Lcd_Puts(0,0,(unsigned char *)dis0); //显示Lcd_1Put(14,0,0xdf);//显示符号sprintf(dis1,"BS:%03d JL:%4.1fm ",disBuShu,disJuLi);//打印Lcd_Puts(0,1,(unsigned char *)dis1); //显示APP_Update();} }
}
链接:https://pan.baidu.com/s/1yaqX9xToSgFOcXJmkAMfrQ?pwd=a7h1