嘉立创产业服务站群
发作品签到
专业版

分体式智能手环(久坐提醒版)

工程标签

224
0
0
0

简介

这是一个多功能的分体式智能手环。由两个部分组成——核心板以及测量手环。它有非常多的功能值得你去探索。我相信你会喜欢上它:>

简介:这是一个多功能的分体式智能手环。由两个部分组成——核心板以及测量手环。它有非常多的功能值得你去探索。我相信你会喜欢上它:>
智能便携电子设备设计大赛

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2025-02-11 05:50:26更新时间:2025-05-15 02:55:10

描述

装置概述:

这个装置由两部分组成,分别是测量手环以及运算核心板。

装置集成了多种传感器,可以实时监测心率、血氧、温湿度、姿态,并提供久坐提醒功能。无论你是硬件爱好者、程序员还是DIY玩家,这个项目都适合你动手实践!

测量手环部分:

负责测量使用者的心率、血氧饱和度以及姿态加速度。下面是测量手环上搭载的传感器:

测试传感器 传感器型号
心率、血氧饱和度 MAX30102
姿态加速度 MPU-6050

运算核心板部分:

运算核心板搭载ESP32C3作为主控,收集并且分析传感器的数据,并且输出到OLED上。

同时核心板具有电池智能充放电功能。可以离开充电线进行使用。

下图是装置的具体功能以及实现过程

扬声器功能还在开发中ing...

硬件连接:

以下是各组件与ESP32的连接方式(基于I2C通信和GPIO引脚):

组件

ESP32引脚

说明

MAX30102 SDA

GPIO 3

I2C数据线,地址0x57

MAX30102 SCL

GPIO 2

I2C时钟线

MPU6050 SDA

GPIO 3

I2C数据线,地址0x69

MPU6050 SCL

GPIO 2 I2C时钟线

AHT20 SDA

GPIO 3

I2C数据线,地址0x38

AHT20 SCL

GPIO 2 I2C时钟线

SSD1306 SDA

GPIO 3

I2C数据线,地址0x3C

SSD1306 SCL

GPIO 2 I2C时钟线

WS2812B DIN

GPIO 4  RGB数据输入引脚

上按钮

GPIO 7  

下按钮

GPIO 5  

OK按钮

GPIO 6  

VCC

3.3V

所有传感器和LED的电源

GND

GND

所有组件的公共地线

所有I2C设备(MAX30102、MPU6050、AHT20、SSD1306)共享同一I2C总线(SDA和SCL引脚),

功能说明:

智能健康手环提供以下五大核心功能,界面通过OLED屏幕显示,用户可通过三个按钮(上、下、OK)切换和操作。

1. 心率与血氧监测

功能:实时测量心率(单位:BPM,每分钟心跳次数)和血氧饱和度(SpO2,单位:%)。

操作

         将手指放在MAX30102传感器上,等待几秒。

         在心率与血氧界面(默认界面),

显示两种模式:

波形图模式:左侧显示“HR: 80”和“SpO2: 98”,右侧显示一个60x20像素的动态心率波形图(基于红外信号)。

详细数据模式:显示“心率: 80 BPM”、“血氧: 98%”和“信号: 良好/不佳”。

按OK键切换波形图和详细数据模式。

提示

       手指需贴紧传感器,确保信号良好(屏幕显示“信号: 良好”)。

       若显示“请放置手指”,检查手指位置或传感器连接。

2. 温湿度监测

功能:测量环境温度(摄氏度)和湿度(%),每2秒更新一次。

操作

       按上/下键切换到温湿度界面。

       显示示例:“温度: 25.5°C”和“湿度: 60.0%”。

提示

       确保AHT20传感器暴露在空气中,避免被手环外壳完全封闭。

3. 久坐提醒

功能:检测长时间坐姿(通过MPU6050判断手环姿态),并在设定时间后提醒用户起身活动。

操作

       按上/下键切换到久坐状态界面,显示:

       当前姿态(“坐姿”或“活动”)。

       久坐时间(例如“久坐: 15分30秒”)。

       提醒时间设置(默认30分钟)。

       按OK键进入子菜单,用上/下键调整提醒时间(1-60分钟),再次按OK保存退出。

       久坐超过设定时间后,屏幕闪烁显示“久坐提醒!请活动一下”,LED橙色闪烁。

       按OK键关闭提醒并重置久坐计时。

提示

      手环需佩戴在手腕上,MPU6050才能准确检测姿态。

      可根据需要调整SITTING_PITCH_THRESHOLD和SITTING_ROLL_THRESHOLD(代码中)以优化坐姿检测。

4. 姿态数据

功能:显示手环的俯仰角(前后倾斜角度)和横滚角(左右倾斜角度),单位为度(°)。

操作

      按上/下键切换到姿态数据界面。

      显示示例:“俯仰: 10.5°”和“横滚: -5.2°”。

用途

      帮助开发者调试MPU6050,或用于需要精确姿态的应用(比如运动分析)。

5. 历史数据

功能:每小时保存一次心率、血氧、温度和湿度数据,最多存储24组(24小时)。

操作

      按上/下键切换到历史数据界面。

     显示最近6小时的心率趋势图(简单点线图)。

     底部显示最新数据,例如“心率: 80 血氧: 98%”。

提示

     数据存储在内存中,断电后丢失。未来可添加EEPROM或SD卡保存。

 

软件与代码说明:

软件代码基于Arduino平台,使用C++语言编写。以下是代码的结构、依赖库和关键功能实现。

库名称

作用

Wire

I2C通信,内置于Arduino

MAX30105

控制MAX30102传感器

heartRate

心率计算算法

spo2_algorithm

 

血氧计算算法

U8g2

控制SSD1306 OLED显示屏UI

Adafruit_MPU6050

控制MPU6050传感器

Adafruit_AHTX0

控制AHT20传感器

Adafruit_NeoPixel

制WS2812B LED

久坐提醒功能演示:

见附件视频

Q&A:

1.Q:为什么要用两个部分?一个部分不是更好吗?

A:因为两个部分的话可以有效控制戴在手上测量装置的体积。我设计的测量手环仅为1.7cm*2.5cm。用户不会因为体积以及重量感到不适,适合长期佩戴。当然,核心板设计的也不大,同时适合携带在身上,随时测量。因为核心板也可以由电池供电。同时这样还有一个好处就是核心板可以更换升级。更加方便。

2.Q:还有改进的点吗?

A:肯定有的,等有时间再优化功能(赶论文ing......)

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
smart_watch.ino
3
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航