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

news2024/11/16 15:52:58

 一.硬件方案

         随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。智能手环作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。便携式智能手环是适应市场需求的设计,使用起来简单方便。
        主要由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 
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1467590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javaweb day3 day4 day5

js 引入方式 写法 基础语法 写法 变量 写法 数据类型 运算符 与java相同 会判断类型是否相同 循环控制语句 和java相同 函数&#xff08;方法&#xff09; 写法 Array数组 写法 string字符串 写法 js自定义对象 写法 JSON 写法 BOM window 写法 location 写法 DOM 案例…

蓝桥杯DP算法——区间DP(C++)

根据题意要求的是将石子合并的最小权值&#xff0c;我们可以根据DP思想使用二维数组f[i,j]来存放所有从第i堆石子到第j堆石子合并成一堆石子的合并方式。 然后由第二个图所示&#xff0c;我们可以将i到j区间分成两个区间&#xff0c;因为将i到j合并成一个区间的前一步一定是合…

C++中的STL数据结构

内容来自&#xff1a;代码随想录&#xff1a;哈希表理论基础 1.常见的三种哈希结构 当我们想使用哈希法来解决问题的时候&#xff0c;我们一般会选择如下三种数据结构 数组 set &#xff08;集合&#xff09; map(映射) 在C中&#xff0c;set 和 map 分别提供以下三种数据结构…

利用LaTex批量将eps转pdf、png转eps、eps转png、eps转svg、pdf转eps

1、eps转pdf 直接使用epstopdf命令&#xff08;texlive、mitex自带&#xff09;。 在cmd中进入到eps矢量图片的目录&#xff0c;使用下面的命令&#xff1a; for %f in (*.eps) do epstopdf "%f" 下面是plt保存eps代码&#xff1a; import matplotlib.pyplot as…

win11修改网络算法为BBR2_提升网络环境质量

Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法&#xff0c;玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法&#xff0c;BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。 如果你日常网络经常丢包或者高延迟可以尝试切换为BBR2算法。…

给自己留个备忘,blender是右手坐标系

所谓右手坐标系&#xff0c;就是三个轴的方向和右手三根手指的方向一致&#xff08;当然&#xff0c;有要求的&#xff0c;这个要求是大拇指指向x轴方向&#xff0c;食指指向y轴方向,中指指向z轴方向&#xff09;。 不过blender默认是z轴朝上的&#xff0c;如下图。 右手坐标系…

AI:134-基于深度学习的社交媒体图像内容分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Vue3自定义组件v-model双向绑定

无能吐槽一下&#xff0c;虽然用了很多遍v-model&#xff0c;但是还是不得要领&#xff0c;每次看官网都感觉说的不是很清晰&#xff0c;在写的时候还是要查看文档&#xff0c;可能就是不理解原理&#xff0c;这次特意好好写一篇文章&#xff0c;让自己好好理解一下。 自定义一…

什么是IP地址,IP地址详解

在互联网的世界中&#xff0c;每一台连接的设备都需要一个独特的标识&#xff0c;这就是IP地址。IP地址&#xff0c;全称为“Internet Protocol Address”&#xff0c;即互联网协议地址&#xff0c;它是网络中进行数据传输的基础。下面&#xff0c;我们将对IP地址进行详细的解析…

EI论文联合复现:含分布式发电的微网/综合能源系统储能容量多时间尺度线性配置方法程序代码!

适用平台&#xff1a;Matlab/Gurobi 程序提出了基于线性规划方法的多时间尺度储能容量配置方法&#xff0c;以满足微电网的接入要求为前提&#xff0c;以最小储能配置容量为目标&#xff0c;对混合储能装置进行容量配置。程序较为基础&#xff0c;算例丰富、注释清晰、干货满满…

VoVNet(CVPR workshop 2019)原理与代码解析

paper&#xff1a;An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection third-party implementation&#xff1a;https://github.com/huggingface/pytorch-image-models/blob/main/timm/models/vovnet.py 存在的问题 DenseNet通过密…

泰山派学习笔记(二)一步一步编译SDK文件

上一节&#xff0c;我们安装了基于虚拟机的ubuntu系统&#xff0c;并且建立了samba服务打通了win10和ubuntu系统中的文件传输。本节课我们继续对立创官方提供的SDK文件进行编译&#xff0c;学习编译的方法。引用官方的话&#xff1a;如果只想下载别人编译好的固件并且做一些应用…

Linux系统运维:离线安装sar-性能监视和分析工具

目 录 一、前言 二、系统环境 三、安装sar &#xff08;一&#xff09;准备工作 1、下载 sar 工具的安装包&#xff1a; 2、将安装包传输到 CentOS 服务器 &#xff08;二&#xff09;安装工作 1、解压 2、配置安装 3、编译 4、安装 &#xff08;三&#xff0…

Ubuntu环境安装MySQL数据库

1.安装过程 打开终端&#xff08;Terminal&#xff09;窗口&#xff0c;使用以下命令更新系统软件包&#xff1a; sudo apt update ubuntu环境安装mysql-server和mysql开发包&#xff0c;包括mysql头文件和动态库文件&#xff0c;命令如下&#xff1a; sudo apt-get instal…

15万-20万选纯电车,真劝你不要买合资和新势力

文 | AUTO芯球 作者 | 雷歌 我是怕了&#xff0c; 在后台&#xff0c;不断有朋友要我推荐20万以下/15万以内的纯电车。 比如这位&#xff0c;真心“求”我推荐一下15万以内的车&#xff0c;然后顺带骂我一通“就知道黑”。 好家伙&#xff0c;一边求人办事&#xff0c;一边…

Freertos实时操作系统---基于STM32

一、Freertos简介 1.Freertos介绍 1&#xff09;RTOS指的是一类的实时操作系统 2&#xff09;rtos的使用&#xff1a;用户根据对任务来设置其优先级然后来使用调度器来决定哪一个任务来先执行。 3&#xff09;Freertos的文件数量远低于其他操作系统 4&#xff09;主要特点&…

力扣经典题目解析--两数之和

两数之和 题目地址: 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 简单来说就是在一个数组中找出两个数&#xff0c;这两个数相加要等于给定的target,下面是完整的题目: 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中…

按照指定的分隔符对字符串进行分割 numpy.char.partition()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 按照指定的分隔符 对字符串进行分割 numpy.char.partition() [太阳]选择题 请问关于以下代码表述正确的是&#xff1f; import numpy as np a np.array([12_3, 4_5_6]) print(&quo…

一次有趣的nginx Tcp4层代理转发的试验

nginx主配置文件添加配置&#xff1a; stream {log_format proxy $remote_addr [$time_local] $protocol status:$status bytes_sent:$bytes_sent bytes_received:$bytes_received $session_time upstream_addr:"$upstream_addr" "$upstream_bytes_sent" …

Java里常用的集合哪些是线程安全的和不安全的

最近在做一个业务的时候&#xff0c;需要考虑线程的安全性&#xff0c;然后选用集合的时候专门去整理了一下。 线程安全的是: Hashtable&#xff0c;ConcurrentHashMap&#xff0c;Vector &#xff0c;CopyOnWriteArrayList &#xff0c;CopyOnWriteArraySet 线程不安全的是: H…