怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器呢

发布者:TranquilVibes最新更新时间:2024-09-27 来源: elecfans关键字:STM32  单片机  智能手环 手机看文章 扫描二维码
随时随地手机看文章

一:功能

基于STM32单片机智能手环心率计步器体温显示设计

本设计由STM32F103C8T6单片机核心板电路+ADXL345传感器电路+心率传感器电路+温度传感器+lcd1602电路组成。

1、通过重力加速度传感器ADXL345检测人的状态,计算出走步数、走路距离和平均速度。

2、通过心率传感器实时检测心率,通过温度传感器检测温度。

3、lcd1602实时显示步数、距离和平均速度、心率以及温度值。


二:电路图

77f6f47a-4f39-11ed-a3b6-dac502259ad0.png?imageView2/2/w/1000

三:源代码


#include 'led.h'

#include 'delay.h'

#include 'sys.h'

#include 'usart.h'

#include 

#include 'timer.h'

#include 'key.h'

#include 'exti.h'

#include 'adxl345.h'

#include 'lcd1602.h'

#include 'ds18b20.h'



unsigned char ReadAdxl345;                                              /* 定时读取adxl345数据          */

unsigned char ErrorNum=0;                                               /* 记录错误次数                 */

unsigned char CheckNum=0;                                               /* 检测次数                     */



char dis0[16];                                                          /* 液晶数组显示暂存             */

char dis1[35];



unsigned int xlTab[5];                                                  /* 心率数组                     */

unsigned char count=0;                                                  /* 心率滤波计数                 */

unsigned int xinLater=0;                                                /* 心率延时处理                 */

unsigned int xinLv =0;                                                  /* 心率值                       */



unsigned int BuShu=0;                                                   /* 步数                         */

unsigned int Normal_num=0;                                              /* 正常次数                     */

unsigned int Error_num=0;                                               /* 倾斜次数                     */



unsigned int disBuShu = 0;                                              /* 显示步数                     */

float disJuLi = 0;                                                      /* 显示距离                     */

float temperature;                                                      /* 温度                         */

unsigned char readTemp = 0;                                             /* 读取温度标志                 */



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;

            }

[1] [2]
关键字:STM32  单片机  智能手环 引用地址:怎样去设计一种基于STM32单片机的智能手环脉搏心率计步器呢

上一篇:STM32G0系列多通道ADC的问题避坑速看!
下一篇:STM32软件运行过程,如何查看全局变量的实时数据?

推荐阅读最新更新时间:2026-03-25 10:59

基于单片机智能手环系统设计
本文主要研究了智能手表的硬件结构和软件结构的设计,并研究了安卓手机APP设计。手环需要从功能出发来定义其硬件和软件功能。硬件结构包括STC12C5A60S2单片机,三轴数字加速度计ADXL345、蓝牙模块HC-05。手环通过蓝牙向健康APP传递健康数据,并通过手机屏幕显示出来,也在关键时刻通过振动来提醒用户。 软件功能从电量监测、运动监测和睡眠监测三部分来体现,当手环处于运动监测的时候可以计算运动步数,并且在达到预先设定运动步数时,会震动提醒;在睡眠监测的时候可以统计出当天的总睡眠时间、轻度睡眠时间和深度睡眠时间;同时手环端也需要对移动终端应用程序进行发送电量监测。 01 系统运行流程 手机APP依靠蓝牙传输不同的控制字
[单片机]
基于<font color='red'>单片机</font>的<font color='red'>智能手环</font>系统设计
基于AMS AS7000动态心率测量智能手环
引言 随着移动互联网的发展、技术进步和高性能低功耗处 理芯片的推出等,智能穿戴设备种类逐渐丰富,穿戴式智能 设备已经从概念走向商用化,谷歌眼镜、苹果手表、三星智 能腕表、耐克的燃料腕带、传感器智能服、太阳能充电背包 等穿戴式智能设备大量涌现,智能穿戴技术已经渗透到健 身、医疗、娱乐、安全、财务等众多领域。目前在国内手环 市场上,自带高精度心率检测功能的智能手环也日趋成熟, 前不久小米还推出了了心率手环,其中心率模块用的就是 AMS的动态心率检测芯片AS7000。 1 系统总体方案介绍 如图1基于AS7000心率手环系统框架所示,手环主要由 充电管理系统、三轴加速度传感器LIS3DH的计步检测运动 量信息系统、AS7000的动态
[嵌入式]
智能手环的PCB设计的注意事项
  智能手环,作为近两年比较流行的产品形式,越来越多的受到人们的关注,虽然不能被全部人接受,但是它的产生,确实使电子产品市场产生了一些变化。   一个智能手环通常由射频电路单元、时钟电路单元、存储器电路单元、传感器电路单元和主控MCU单元等组成,而电路PCB通常集中在较小的范围内,进行单面或者双面贴片,电路板为4层或者6层为主。   既然那么多功能集中在一个较小的PCB板上,那么在手环的布局和布线中我们要进行格外的注意,现在总结一些注意事项,以供参考。      图 智能手环的PCB设计   首先,分区布局,注意走线保护。   从上面的PCB电路板中可以看出,智能手环的各个部分电路(不同颜色方框标记)有很好的分区:
[嵌入式]
<font color='red'>智能手环</font>的PCB设计的注意事项
【新品推荐】仁懋智能手环解决方案,助力智能穿戴产业发展!
今天为大家带来一款极具竞争力的智能手环解决方案——仁懋产品在智能手环上的应用。随着智能穿戴市场的持续火爆,仁懋电子紧跟行业发展趋势,为您精心打造高品质、高性能的马达电机驱动和充电IC产品,助力您的智能手环产品脱颖而出! 仁懋MOT2301适用于智能手环的震动马达驱动,为用户提供实时提醒功能,如来电、短信、闹钟等。同时,还可应用于其他小型电子设备的马达驱动。 马达电机驱动推荐型号:仁懋MOS管——MOT2301/SOT23 仁懋MOT2301是一款高性能的MOS管,采用SOT23封装,具有以下优势: (1)低导通电阻:有效降低功耗,延长电池续航时间; (2)高电流输出:满足智能手环震动需求,提升用户体验; (
[嵌入式]
【新品推荐】仁懋<font color='red'>智能手环</font>解决方案,助力智能穿戴产业发展!
智能手环或手表常用的睡眠监测原理
众所周知,苹果、华为、小米等知名品牌都推出有自己的智能手环/手表等智能穿戴设备,这些智能穿戴设备基本都具有睡眠监测功能,可以协助我们检测睡眠的时长和质量。那他们的睡眠监测功能是怎么实现的呢?其结果是否准确呢?今天小编就带大家一起了解一下。 目前市面上智能手环或手表常用的睡眠监测原理分为两种: 第一种根据体动原理进行的睡眠监测,这种方法原理比较简单,利用手环/手表中内置的重力传感器来监测你在一定的时间内(一般是20分钟或者更长)有没有比较大的动作,如果没有大幅度的动作或者比较少,那么手环就判断你处于睡眠状态,如果几乎不动,那么就判断你处于深度睡眠状态。 一般来说我们进入深度睡眠大部分器官也会进入睡眠状态,身体大概率会保持一种静止
[嵌入式]
<font color='red'>智能手环</font>或手表常用的睡眠监测原理
智能手环测温电路的PCB设计方案
一、产品思路 测温工具成了各个场所人员进出监测,以及工厂复工等的必备工具,对额温枪等测温工具的需求暴涨.(口罩期间)一度出现有钱买不到额温枪的局面. 除了非接触式的红外测量手段,对于体温,还可以采用酒精/水银等的接触式测量手段. 以及采用感温器件的电子式测量手段. 由此,我产生了一个想法,既然现在智能手环现在非常流行,说不定采用智能手环这种穿戴式设备也可以实现体温的测量. 这种测温方式有如下的好处: 1) 可以长时间佩戴,用于监控长时间的体温变化. 2)可以通过蓝牙将数据发送给显示屏幕,进行实时显示,或者将数据发送给上位机,进行统计分析. 3)在人员进出时,通过蓝牙即时连接其它设备,实现体温监测无感进出. 唯一的问题是,当手环与手
[嵌入式]
<font color='red'>智能手环</font>测温电路的PCB设计方案
疑似NIO WATCH设计图曝光,与智能手环相似
1月11日消息,网上曝光了一组疑似NIO WATCH设计图曝光,外观与智能手环十分相似。从设计图上来看,“NIO WATCH”或将在屏幕上可以对于蔚来车辆进行远程控制。 智能手表显示屏采用了长椭圆形设计,肯定会融入触控设计,可能还拥有智能互联能力,可以远程控制车辆的多种功能。 日前,上海 蔚来汽车 有限公司已经申请了“NIO WATCH”的商标,状态为“申请中” 蔚来 此前已正式宣布进军智能手机市场,新品将会在一年内发布。同时,去年底,蔚来汽车销售服务有限公司发生工商变更,经营范围新增移动终端销售、通讯设备销售等业务,资料显示,该公司成立于2017年,法定代表人为 秦力洪 ,注册资本15亿美元,由蔚来控股有限公司全资持
[汽车电子]
疑似NIO WATCH设计图曝光,与<font color='red'>智能手环</font>相似
无屏幕智能手环创新生物识别技术实现通信与非接触式支付
高科技与设计的结合:无屏幕智能手环以创新生物识别技术实现通信与非接触式支付 英飞凌科技股份有限公司 (FSE:IFX/OTCQX:IFNNY) 提供的物联网 (IoT) 构件已变得更强大、更节能,而且体积更小。如今,几乎所有日常用品都能通过智能功能丰富起来,让生活更加便利。位于意大利都灵的深度科技新创公司Deed®采用英飞凌系统解决方案,打造出一款无屏幕但功能丰富的穿戴式设备——时尚优雅的get®手环,它能解读人类手势并使用生物识别数据来接听电话或进行支付。 英飞凌安全互联系统事业部总裁 Thomas Rosteck 表示:“英飞凌半导体解决方案是数字化转型与物联网创新的核心,能够连接现实与数字世界。英飞凌以多角度的发展与
[手机便携]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved