基于单片机的运动手环设计

系统简介

随着社会经济和科学技术的快速发展,智能化已成为普遍趋势,智能电子产品已经广泛应用于各个领域,深入到人们的日常生活。于此同时,人们的生活水平不断提高,对于健康的需求也日益增强。智能手环作为一种智能化、便携式的产品,不仅能够实时监测和追踪人们的运动健康数据,而且能够通过数据分析从而指导人们健康生活,满足大众需求。基于此原因,本设计根据当今社会发展需要,设计一款基于单片机的多功能运动健康智能手环。
本设计的智能手环采用单片机STM32F103C8T6作为主控系统,并结合DS18B20温度传感器、MPU6050加速度传感器、MAX30102心率血氧传感器,实现对人体体温、运动数据和心率血氧的实时监测,并将数据通过OLED显示屏呈现。本文详细介绍了智能手环的软硬件设计和实现,对系统的整体功能进行了测试,并对数据进行分析和处理,通过实验验证了智能手环的功能和性能。最终结果表明,该智能手环具有较好的稳定性和准确性,能够满足用户的生活管理和运动健康管理需求,具有一定的市场前景和应用价值。

关键词:单片机;智能手环;运动;健康;传感器

1 引言

1.1研究目的和意义
当今社会经济和科学技术飞速发展,智能化的趋势让人类的生活变得更加多姿多彩。而近几年,作为一种新兴的可穿戴式电子产品,智能手环逐渐融入了人类的日常生活。
智能手环是一种可佩带的多功能装置,能够监控使用者的身体状况,跟踪使用者的行动等。它的出现是随着科技的发展而逐渐成熟的,也是人们日益增长的对自己的健康管理的需要。
一方面,随着科技的不断进步和技术的不断提升,各种智能电子产品应运而生,智能手环也随之出现。智能手环的核心技术主要是传感器技术和数据处理技术。传感器技术可以通过感应人体的各种数据,如心率、血压、步数等等;数据处理技术能够分析,处理和统计数据,从而实现各种功能。例如,如今的智能手环可以利用PPG传感器或结合心电图以及特定数据处理算法来估算被测者的血压[1]。能够实现更加精准的感测、更快速的响应以及更为丰富的操作,这使得智能手环的功能不断增强,备受欢迎[2]。
另一方面,由于生活质量的不断提高,人们对健康的认识也日益加深,随着社会的发展,人们对自身的健康问题也日益重视,通过综合分析身体数据,更好地预防相关疾病并进行健康管理[3]。这能让人对自己的身体有一个更好的认识,这样就能更好地控制自己的健康,满足了人们对于健康管理的需求。
本设计的目的旨在根据目前的市场需求,结合操作简便、价格低廉的特点,采用主控系统和传感器的组合方式,设计一款多功能的运动健康智能手环。本设计为人们提供一种新的生活和健康管理方式,它不仅可以帮助人们更好的管理时间,提高工作效率,改善生活质量;此外,它还能够对每日的运动量、体温、心率等健康数据进行监控,向用户提出运动健康的建议,帮助人们更好地了解自己的身体状况,进而帮助人们更好地管理自己的健康,对改善人民的生活质量,增强人民的身心健康有着十分重要的作用。
1.2国内外研究现状
智能手环是一种集健康监测、运动追踪、信息提醒等多种功能于一身的便携式设备。最近几年,随着科学技术的进步,人们对健康的重视程度越来越高,智能手环的研发与应用也受到了越来越多的重视,并逐步成为一种受欢迎的健康管理工具,已经变成了现代人生活中必不可少的一部分。
在20世纪60年代,可穿戴式智能设备的发展思想和产品原型已经初见端倪,七八十年代也有相关产品问世,但当时人们对此并没有太大的兴趣。随着科技和经济的发展,进入二十一世纪,可穿戴式智能产品逐渐被广泛认知,发展势头迅猛,呈现爆发式增长[4]。近几年来,智能手环市场呈现出多样化的趋势,成为智能穿戴设备领域的核心产品[5]。可穿戴式智能设备指的是能够直接穿戴在身体上的设备,包含智能化理念,可以是集成到衣物中的便携式设备,也可以是嵌入到配件中的便携式设备[6]。在智能穿戴设备方面,国外已经开始了相关的研究工作,并且已经有了很多的成果,比如索尼,苹果等。索尼的智能手环还提供了一些额外的功能,例如查看时间,运动记录,睡眠监测,但是它的操作对老人们来说有点麻烦。现在最先进,也是最全面的一款智能可穿戴设备iwatch,除了拥有一般的智能手环,还有通话、微信同步等功能,被称为“智能运动手表”。
随着互联网、物联网等技术的快速发展,可穿戴式移动终端技术得到了快速发展。尽管国内对可穿戴式电子产品的研发相对滞后,但随着技术的进步,目前已有不少可穿戴式电子产品被广泛应用,甚至还出现了医疗可穿戴式电子产品。该装置可以对人体的某些参数进行实时、动态地监控,例如心率、血压等。例如,周聪聪设计了一款可穿戴式监测装置,能够实时监测心率、体温、血压和血氧饱和度等指标[7]。随着网络时代的到来,智能手机的迅猛发展,各类智能终端也随之诞生。随着苹果官方公布了 iWatch,可佩戴的智能装置的概念也在普通民众中渐渐深入人心。小米、华为相继推出的智能手环,更是加快了这个势头。在中国,这种产品有着很大的发展空间,现在,随着市场的发展,智能手环也逐渐适应了市场的需要,它的目标人群是年轻人和中年人,可以跟智能手机一起使用,它的主要功能有:测量体脂、心率、计步、睡眠状态等。智能手环市场份额从2014年的66.2亿元增长到2015年的112.7亿元,到了2017年销售数量更是超过1亿件,这充分说明智能手环有着巨大的市场潜力[8]。
智能手环已经成为可穿戴设备领域的主流产品,市场上涌现出许多品牌,尽管它们实现的功能大同小异。综合国内外智能手环产品的设计,大多数品牌都针对年轻人,主要关注运动和健康监测。目前,大部分的智能手环产品都是围绕着动作传感器而设计的,它的构成一般都是由显示屏幕和陀螺构成。这类手环的作用也仅限于睡眠监控、心率监控、步数测量以及身体状况分析。另外,为了达到智能显示的目的,还采用了蓝牙技术与移动电话APP进行同步[9]。为了快速占领市场,各大厂商推出了琳琅满目的智能手环产品,但有些功能设计仍有缺陷,研制出性能稳定、价格合适、功能齐全的智能手环仍然需要改进,更多的功能也有待研究[10-12]。
由于硬件及芯片的高速发展以及数字图像处理技术理论的逐步完善,使用图像技术对叠层纸张图像进行计数成为发展趋势。国外的成果多以专利的方式出现,例如丹尼斯・佩特克的用于堆叠的基底,但对被测量的纸张的捆绑状态有一定要求,但是不需要直接接触计数的方法和系统申请了专利;吉田达司、中岛明、山田伸生三人共同研究的的MFP动态纸张计数方法,在打印的同时也测量了纸张数量,具有很强的现实意义;池田发明的专利是造纸机纸张计数装置,可以固定造出自定义数量的纸张,这是基于图像处理技术所实现的。
1.3论文主要研究内容
本文通过对智能手环的国内外发展状况进行分析,设计出一款以单片机为核心的智能手环,旨在综合记录运动和健康管理。本设计以STM32F103C8T6单片机为主控,以DS18B20为温度传感器进行人体体温的采集,MPU6050加速度传感器测量倾斜角度对步数等运动量进行计量,用MAX30102对人的心跳和血氧进行实时监测,OLED显示屏显示各项功能数据。传感器收集的数据将传送到主控芯片,经过分析和处理后,结果数据将通过OLED显示屏和串口调试助手进行显示。
主要工作为进行单片机智能手环的硬件设计,包括电路设计、外设选择、硬件结构设计等;进行软件设计,包括程序设计、算法设计、数据采集和分析处理等;进行功能实现,包括时间显示、健康监测、运动记录等;对系统进行测试,具体包括了硬件系统测试、软件系统测试、功能测试等。
系统总体设计图如1-1图所示:
在这里插入图片描述

图1.1系统总体设计图

2 系统开发技术和需求分析

2.1 C语言和Keil
C语言作为一种高层次的编程语言,其文法简洁、易懂、易用;该系统可移植性好,适用于多种 MCU平台;还可以直接访问硬件资源,如寄存器、内存等,方便进行底层编程。C语言具有丰富的函数库和工具,可以快速开发复杂的应用程序;它的编译器和调试工具都比较成熟,使用方便,可以提高开发效率,是一种非常适合单片机编程的语言,成为单片机开发的主流语言,被广泛应用于嵌入式系统开发领域。
Keil MDK-ARM为用户提供了一个包含编译器、调试器、模拟器和IDE在内的集成开发环境。主要被应用在 ARM架构的嵌入式系统开发中,它支持多种 ARM处理器系列,包括Cortex-M和Cortex-A等。Keil MDK-ARM的编译程序使用了独有的编译技术,使其具有高效,优化的代码生成功能。该调试程序和模拟程序支持JTAG、SWD、ETM等各种调试接口,实现了实时调试,断点调试,单步调试等功能。Keil MDK-ARM的IDE提供了丰富的开发工具,包括代码编辑器、项目管理器、版本控制、自动化构建等功能,可以大大提高开发效率。同时,Keil MDK-ARM还提供了一系列的软件库和代码示例,方便开发者快速开发出高质量的嵌入式系统。总而言之,Keil MDK-ARM是一款功能强大的嵌入式软件开发工具,能帮助开发者更快地开发出高质量的嵌入式系统。
2.2需求分析
功能需求:以单片机为基础的智能手环系统,其核心目标是通过对分布在系统中的传感器模块进行相关数据采集,再利用被软件设计后的STM32单片机对其进行分析和处理,最后将结果呈现给用户,让用户对自身运动健康状况有一个全面的了解,并指导用户在日常生活中的运动健康生活。
在进行设计工作前,首先要确定其功能要求,并与其核心目标相联系。按照需要选择硬件器材,查询相关资料,进行模块设计,完成各个模块的统一操作,从而实现对相关数据的呈现和运动健康指导。
本系统设计的功能需求主要有:
1、时钟显示功能:智能手环需要实时显示日期、时间、星期,帮助用户更好地规划和安排自己的工作和生活,以达到更高效、更有成效的生活方式。
2、运动监测功能:智能手环需要实时监测用户的运动状态,包括步数、路程、卡路里,同时还需要提供相关的数据分析和运动建议,以便用户了解和控制自己的运动量,并可以根据自身需要调整运动量。
3、健康监测功能:智能手环需要对用户的体温、心率、血氧进行实时监控,并及时反馈给用户,让用户能够对自己的身体情况有一个准确地了解,并及时采取有效的措施。
非功能需求:
本系统设计的非功能需求主要有:
1、可靠性:智能手环作为一种可穿戴设备,需要具备较高的可靠性。本系统可以长期稳定地运行,确保用户在使用的时候不会出现数据丢失、设备故障等问题。
2、稳定性:智能手环需要稳定地连接到用户的手机或电脑等设备,以实现数据的传输和同步。该系统能在长期运行中维持稳定的性能,不会出现频繁的卡顿、死机等问题,快速响应用户的操作和指令,以提高用户的体验和满意度
3、易用性:用户仍然高度重视智能手环的易用性和操作性[13]。智能手环需要具备良好的易用性,操作简单、界面友好、功能齐全,能够让用户轻松上手使用。本系统能够提供清晰、简洁和易于理解的用户界面,并提供适当的反馈和指导,以便用户能够快速了解其功能和操作方式。

3系统硬件电路设计

3.1 STM32主控芯片
STM32F103C8T6是一款32位的ARM Cortex-M3单片机,该单片机由 ST公司开发。它具有高性能、低功耗、丰富的外设以及容易开发等优点,可以广泛地用于工业控制、智能穿戴、医疗设备、智能家居等多种应用领域。
该微控制器的主要特点包括:
1、CPU频率高达72MHz,运算速度快。
2、内置64KB闪存和20KB SRAM,存储容量大。
3、支持多种通信接口,如USART、SPI、I2C等。
4、支持多种中断源和DMA控制器,实现高效的数据传输。
5、具有多种定时器和计数器,可用于实现各种定时、计数和PWM控制。
6、支持多种电源管理模式,可有效降低功耗。
7、采用LQFP48封装,易于布局和焊接。
综上所述,STM32F103C8T6是一款功能强大,性能优异,还有低功耗的单片机,可以满足各种应用的需要,在智能电子产品研发市场上具有十分重要的价值。这款主控芯片可以为我提供非常丰富的接口,为本系统的各实验项目提供了充足的外部扩展电路,可以满足我对本系统各种功能的需要,是本系统设计开发的最好的选择。
STM32F103C8T6单片机核心板CPU电路图如图3-1所示:
在这里插入图片描述

图3.1 STM32最小系统电路原理图

3.2温度模块
在温度数据采集方面,选用了单列三个管脚的DS18B20数字温度传感器。该传感器采用单总线通信协议,连接方便,操作简单,拥有属于该传感器本身的数据帧格式,通过数据线DQ完成MCU微处理器和 DS18B20传感器的读或写数据操作。MCU管脚采用推挽输出,是为了访问传感器的时候能保证遵循单总线的数据帧。该单总线输出数据的高电平应该有上拉电阻提供,所以,需要在数据线上增加一个上拉式电阻器,使DS18B20传感器的DQ数据线与输入输出端口连接STM32F103C8T6。
DS18B20电路图如图3-2所示:
在这里插入图片描述

图3.2 稳压模块电路原理图
3.3 OLED模块
OLED作为一种新兴的显示技术,在对比度、响应速度、视场范围以及功耗等方面,与LCD相比有很大的优势。
OLED的工作原理是在两个电极之间放置一层有机薄膜,当施加电压时,有机薄膜中的电子和空穴会结合并释放出能量,这些能量就会以光的形式发射出来,形成图像。
OLED显示器可以制造成非常薄的显示器,因为它不需要背光源,而是直接发射光线。此外,由于OLED可以制造成柔性显示器,因此可以应用于更广泛的场景,如可穿戴设备、汽车显示器、灯具、广告牌等。
SSD1306是一种低功耗的单色OLED有机发光二极管显示驱动芯片,它可以控制128x64、128x32、64x48等多种分辨率的OLED显示屏。该芯片采用I2C或SPI接口通信,支持图形和文本显示,具有高对比度、快速响应和低功耗的特点,广泛应用于智能手表、智能家居、智能穿戴、便携式医疗设备、工业控制等领域。SSD1306还具有内置的RAM,可以存储显示数据和字形数据,支持多种字体和语言,方便用户进行个性化定制。
本系统使用的是基于SSD1306驱动芯片的OLED显示屏,该屏有以下特点:
1、0.96寸OLED;
2、分辨率为128x64;
3、背景为黑底蓝字;
4、SPI通信协议。
OLED实物图如图3-3所示:

在这里插入图片描述

图3.3 OLED实物图

4系统软件设计

4.1主程序
该方案首先对STM32F103C8T6系统时钟、定时器、串口及发光二极管进行初始化;然后,通过对有无按下按钮的动作进行判断,来控制各个功能模块的工作顺序。在芯片中设置了一个计时器来控制温度、步数、心率、血氧饱和度的采集。同时,温度检测模块DS18B20、步数检测模块MPU6050、心率血氧检测模块MAX30102将检测到的数据传送给STM32F103C8T6,并对其进行处理和分析。最终,在OLED屏幕上显示出最终的数据,并使用串行接口进行调试。
主函数如下:

int main(void)
{
	u8 ret;
	//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
	//配置RCC,复位和时钟控制
	RCC_Configuration();
	//系统滴答中断,1ms
	SysTick_Interrupt_ms(1);
	Led_Init();
	//串口初始化
	UART1_Init(115200);
	//按键初始化
	Key_Init();
	//OLED初始化
	OLED_Init();
	//RTC初始化,实时时钟,定时器
	ret = RTC_Init( );
   if(ret)
     printf("RTC初始化失败\r\n");
   else
     printf("RTC初始化成功\r\n");
	while(1)
	{
		switch((u8)menuIndex)
		{
			//时钟显示功能
			case 0: DateTime();break;
			//测温
			case 1: ds18b20();break;
			//运动(计步器)
			case 2: mpu6050();break;
			//健康(心率、血氧)
          case 3: max30102();break;
			default:break;
		}
	}
}

主程序设计图如图4-1所示:
在这里插入图片描述

图4.1 主程序图

4.2子程序设计之温度模块
1、初始化:在读取温度值之前,需要初始化DS18B20传感器。这包括配置系统时钟和相关GPIO。
2、重置与检验:发出重置命令及应答命令,检验DS18B20的出现。
3、传送跳跃ROM指示:该指示为0xcc,是将跳跃 ROM指示传送到DS18B20。
4、温度变换指令的发送:将温度变换指令发送到DS18B20,从而启动该传感器的温度测定。
5、等待转换完毕:DS18B20进行温度转换所需的时间与传感器的分辨能力有关。
6、温度值读出:转换完毕后,可读出DS18B20的温度值。数值为16位,要获得真实的温度,必须经过一定的运算。
7、温度的计算:DS18B20是16个位数,高八个位数是整数,低八个位数是小数。需要将这个数字转换为实际的温度值,这个过程包括将数字转换为有符号整数、将小数部分转换为实际的温度值等。
8、输出温度值:最终,计算出的温度值被输出到显示屏、串口等设备中。
测温程序流程图如图4-2所示:
在这里插入图片描述

图4.2 测温程序流程图
4.3子程序设计之温度模块
SPI是20世纪80年代由Motorola公司发展的系列外围设备界面协议。这是一个高速,全双工,同步通讯协议,可在单片机与外部装置间传送数据。
SPI通讯的基本原则为:主从间以四条线连接,两条数据线用于传送数据,两条控制线用于控制传送,两条数据线为 MOSI/MISO,一条时钟线为 SCLK,一条选择线为 CS。
时钟线SCLK:用来传输时钟信号,用来控制主从机之间相互通信的同步。
片选线CS:用来控制主机和从机的通信,由主机发出,从机接收,当片选线为低电平时,从机处于可接受数据的状态,当片选线为高电平时,从机处于空闲状态。
双向数据线MOSI/MISO:用来传输数据,MOSI是主机发出的数据,MISO是从机发出的数据。
SPI通讯的流程为:首先,由主设备将片选线 CS设置为低,这样,从机设备就可以接收到数据;其次,由主设备发送数据;再次,由主设备接收到数据;最后,由主设备将片选线 CS设置为高,这样,从机设备就可以进入空闲状态;这样,一个通讯就可以完成了。
在OLED显示模组的设计中,最重要的是SPI通讯协议。SPI总线共有四条线,由于许多 MCU中都有SPI控制器,可以用SPI控制器来编写与 SPI相关的软件。SPI通讯模式是将 SPI通讯模式划分为主从模式。通常情况下,有一台主装置和一台或多台从装置。在SPI通信中,因为是同步串行全双工,所以要求至少有3条线路,分别为MISO主机数据输入、MOSI主机数据输出、SCLK时钟,而SPI通信最多可选择16个从机,所以还需要一条片选线CS。但是,由于SPI的单向传输,需要一条MISO或MOSI的线。在此系统中,OLED显示屏采用了SPI通讯方式,通讯方式必须符合SPI通讯原则。
OLED显示程序流程图如图4-3所示:
在这里插入图片描述

图4.3 OLED显示程序流程图
4.4 wifi通信程序
wifi模块的程序流程如下图4.4所示。

在这里插入图片描述

图4.4 wifi程序流程图

5 系统测试与总结

5.1系统实现和测试
将各功能模块与主控连接好线路,把运行程序烧录到主控。
系统实物图如图5-1所示:
在这里插入图片描述

图5.1 系统实物图
在系统上电和运行程序后,首先要实现的就是这个系统的主页面,这个主页面是用来显示时间的。时间显示功能图如图5-2所示:
在这里插入图片描述

图5.2 时间显示图
实现体温测量模块的功能,将手指对准传感器的测量区域,或将传感器握在手中,然后操作按键以运行体温测量功能。此时,传感器会进行采样,再以串口的形式输出并以 OLED显示的形式呈现出来。
体温显示功能图如图5-3所示:
在这里插入图片描述

图5.3 体温显示图

初步测试:
首先,检查各个硬件传感器模块与STM32F103C8T6单片机通信的IO口线路连接是否正确。其次,在智能手环上电的过程中,需要检查各个模块是否存在过度发热的情况。接着,进行模块与单片机主控的通信测试,以确保连接成功。首先,测试DS18B20温度传感器模块的温度读数。在DS18B20完成初始化后,等待一段时间直到温度稳定,然后将手指放在传感器上或握在手心,观察串口监视器或OLED显示屏上显示的温度数值是否有上升,并观察手撤离后数值是否下降。其次,测试心率血氧传感器模块,将手指放在MAX30102传感器上或将其置于腕部,观察串口监视器或OLED显示屏上显示的数值是否有变化。最后,晃动MPU6050加速度传感器模块,观察步数、路程和卡路里数值是否会发生变化。经过上述测试,保证了系统的稳定运行,各功能模块都能正常工作。
进一步测试:
在对各功能模块进行了初步测试之后,接下来就是精确而有针对性的测试了。这些测试主要包括使用显示屏和串口调试助手观察和检查从各个传感器采集到的数据,以及经过算法分析和处理后的结果是否符合要求。只有通过反复测试和调试,才能确保作品的功能达到预期目标。在进行初步测试的基础上,对数据和结果进行观察,发现各项数据结果均在合理的范围之内,实际结果达到预期结果要求。
5.2总结
本设计旨在开发一款基于单片机的智能手环,实现运动计步、心率血氧检测、体温检测等功能。在此过程中,我深入了解了单片机的硬件结构和软件编程,并成功地利用单片机实现了智能手环的功能。通过这个项目,我不仅拓展了对单片机的知识,还掌握了智能手环的基本设计方法,为未来的工作打下了坚实的基础。
经过从零开始的学习、参考文献和网上资料的查阅,以及老师和同学的帮助,最后,我决定采用以STM32F103C8T6为核心的主控系统、DS18B20温度模块、OLED显示屏模块、MPU6050步数模块、MAX30102心率血氧模块的硬件设计。同时,我完成了C语言编程和预期功能的软件设计与实现。这款智能手环可以显示基本时间信息,并实时监测人体运动健康状况,提供准确数据,帮助人们更好地了解自身身体状况,制定出适合自己的运动健康方案。
经过测试,该设计实现了预期效果,但也存在一些问题:测温、心率血氧、计步器采用的基本模块数据准确性不够高;开发板体积过大,虽然最初的设想是打造一款便携式手环,但由于基本模块过大,最终的作品无法成为一个真正的手环。
经过设计与实现,本文成功开发了基于单片机的智能手环,并实现了其基本功能。测试结果表明,该智能手环具有良好的功能表现。在综合考虑了优势和不足后,我认为该设计虽然已经基本达到了预期目标,但仍有很大的发展空间。总体而言,该方案是相对成功的,也是我在大学生涯中交出的一份满意的答卷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值