stm32单片机的智能手环-心率-步数-距离-体温-蓝牙监控

本文介绍了使用STM32F103C8T6单片机为核心的智能手环设计,包括LCD1602显示步数、心率和体温,ADXL345监测步数和距离,以及心率、温度传感器的使用。还详细阐述了主程序软件设计,实现通过蓝牙连接手机APP实时显示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一.硬件方案

         随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。智能手环作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。便携式智能手环是适应市场需求的设计,使用起来简单方便。
        主要由STM32F103C8T6单片机最小系统板+LCD1602液晶显示模块+ADXL345计步器模块+心率监测模块+DS18B20温度传感器+HC-05蓝牙模块+电源开关构成;

PCB图如下:

二.设计功能

  • LCD1602液晶显示屏显示当前测量步数、距离、心率和体温数据;
  • 心率传感器采集当前的心率数据,如果手指放置心率传感器,单片机采集传感器的数据,计算出当前心率数据;
  • ADXL345三轴加速度传感器监测实时空间位置,如果当前位置出现变化,并符合走路姿势,皆可算出当前步数和距离;
  • 温度传感器为接触式型传感器,如果将传感器握在手心,即可测量出当前体温;
  • 除了显示屏可显示当前的测量数据外,也可通过蓝牙连接手机APP,在APP上实时显示当前的数据。

三.软件设计

        主程序源码

/****************主函数***************/
int main(void)
{ 
  delay_init();         //延时函数初始化    
  uart_init(9600);     //串口初始化为9600
  TIM3_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 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值