基于可穿戴心率监测器项目开发介绍
扫描二维码
随时随地手机看文章
近年来可穿戴设备在多个市场呈现爆炸性增长,这很大程度上是因为它们提供的便利性以及大量的相关信息。运动跟踪器(比如三星的Gear Fit 2)、医疗设备(比如Qardio Arm血压剂)以及安德玛(Under Armor)推出的UA Speedform Gemini 3智能跑鞋就是其中一些例子。这些设备能够为用户提供各种反馈信息,包括睡眠质量、VO2水平(氧摄入量)、运动水平、步行和跑步节奏等数据点。
设计可穿戴设备需要添加外围设备来感应和显示各类数据,同时需要在云端存储和检索数据。本项目采用美信公司(Maxim)推出的Pegasus Rapid开发平台,开发板上集成了关键的外围设备以及Maxim推出的700-MAXREFDES117#心率监测器参考设计,这大大的简化了开发流程。此外我们采用了Mbed操作系统(OS)用于云编程,Ubidots云服务以及Android Studio软件实现云应用接口。
如果你是一名设计师(或“DIYer”),借助这些集成特性、参考设计和云编程工具会让你在起跑线上领先一步。下面的内容标注了必需的工程材料、帮助你进行编程、组装开发板卡、编译和下载安卓App、将数据传输的云服务。
项目材料和资源
我们建议在开始此项目前收集好如下材料和资源:
项目材料清单(BOM)
在Mouser.com官网上查看该项目需要的清单,包括各种组件:
Maxim公司推出的700-MAX32630FTHR#开发平台,集成了MAX36630 ARM Cortex M4F微控制器和MAX14690 PMIC电池管理器件
Maxim公司推出的700-MAXREFDES117#心率监测器,集成心率/脉搏监测传感器、降压型DC/DC转换器和逻辑电平转换器
锂聚合物电池
贸泽HRM Mbed repository
贸泽HRM Gihub repository
硬件:
电烙铁
跳线或普通导线
助焊剂
接头引脚
面包板
数字万用表(可选)
示波器(可选)
外围扩展设备(可选)
账号和软件
一个Ubidots云服务账号
Mbed.org官网账号
Android Studio开发软件
项目技术概述
这是一个针对于有编程和焊接经验工程师和DIY爱好者的高级开发项目,设计这个项目我们采用了如下技术:
Maxim(美信)MAX32630FTHR Pegasus开发平台
驱动这个项目的是Maxim公司全新推出的MAX32630FTHR Pegasus开发平台(图1)。集成了MAX32630 Arm Cortex M4F微控制器以及MAX14690 PMIC电池充电管理器件,这个平台会协助工程师进行快速的原型设计。该功能丰富的板卡包含多个集成外设,比如加速度计/陀螺仪、双模式蓝牙以及SPI、I2C、UART、66个GPIO接口等。MAX32630FTHR小巧的外观尺寸与几款现成的扩展板以及标准面包板相兼容,这带来了无限的可能性。如果你对某些内容好奇,我们提供了扩展外设的介绍链接。
图1:Maxim推出的MAX32630FTHR# Pegasus开发平台集成了Arm Cortex M4F微控制器和PMIC电源管理器件
Maxim推出的MAXREFDES117#心率模块参考设计
Maxim流行的MAXREFDES117#心率模块参考设计(图2)非常的小巧,它集成了Maxim MAX30102心率/脉搏、血氧传感器、MAX1921降压型DC/DC转换器以及MAX14595逻辑电平转换器。这种多功能设计可以用于Arduino和Mbed平台实现快速集成。示例提供的固件就适合这两种平台,给用户提供了非常基本的算法,可以确定心率、血氧饱和度等参数,帮助他们快速实现原型设计。
图2:Maxim流行的MAXREFDES117#心率模块参考设计非常的小巧,集成了心率、脉搏、血氧传感器、降压式DC/DC转换器和逻辑电平转换器
Mbed操作系统(OS)实现云编程
MbedOS提供了一个方便的基于云编程的工具,帮助简化和加速创建物联网(IoT)平台。Mbed提供的工具帮助实现代码协作、提交并且软件发布,同时帮助维护详细的修订历史记录。使用Mbed非常的简单,创建账号、寻找和选择期望使用的硬件。如果你已经拥有了账号,你可以去Mbed Repositpry(代码仓)将提供的代码导入你的编译器从而开始你的工程。
Ubidots实现云服务
Ubitots为所有希望想开展IoT或云项目的开发者提供了很好的起点。除了有多种开发平台的指导手册,Ubidots为在服务和安卓App之间搭建接口也提供了教程,信用系统能够让你以简单且经济的方式开发和维护你的项目,并且提供了多种方法可以获得更多的信用值。
Android Studio实现云服务接口
你需要相应的接口来实现将数据从Maxim板卡和传感器传输到云端,这可以通过一个移动设备(比如平板电脑、智能手机)来实现。对于这个项目我们使用的是安卓框架,并且借助Android Studio来创建App实现传感器数据的可视化。
开发心率监测器
如果你已经拥有Mbed账号,使用贸泽提供的 HRM Mbed代码仓并将其中的代码导入到你的编译器。
对于新手用户:
1. 访问Mbed.org网站
2. 点击Mbed OS链接会转到开发者页面
3. 点击“Log in/Sign up”,输入相关信息进行登录/注册
一旦注册你可以选择高亮的“Compiler”链接来开始一个新的项目或者访问Mouser HRM Mbed repository链接将其中的代码导入你的编译器。通过点击编译器右上角的按钮你可以进行选择、查看、添加或者改变相应的目标平台。在Mbed你会发现其他几种Maxim产品和软件示例也是有支持的。
连接开发板卡和参考设计
将MAX32630FTHR和MAXREFDES117连接起来只需要很少的连接线,使用面包板会更加的简单,为此请遵循如下步骤:
1. 将心率传感器的SCL和SDA管脚连接到MAX32630FTHR的P3_5和P3_4管脚,将INT管脚连接到P3_0(图3)
2. 心率传感器的VIN输入范围在2.5到5.5V之间,我建议从3.3V或电池的SYS管脚引入电源,在尝试使用5V时我已经遇到了多个问题。
3. 连接地线
图3:Maxim MAX32630FTHR#手册中提供的管脚说明
对开发板卡进行编程
对开发板卡进行编程就像将文件从一个文件夹拖放到另一个文件夹那样简单,当你将代码上传到板卡时,MAX32630FTHR模块还提供了调试接口。
我们按如下步骤开始:
1. 用10-Pin的连接器将接口板卡与MAX32630FTHR相连接,尤其要注意Pin1管脚。
2. 将标记有HDK的USB接口连接到PC的USB端口上,此时会自动安装驱动,根据你使用的DAPLINK模块的不同,它可能有多个接口或者只有一个接口(见图4或图5),当驱动程序完成安装后,在电脑文件资源管理器中会显示标记为DAPLINK的新驱动器。
3. 采用micro USB或者JST电源连接器为MAX32630FTHR模块提供电源。
图4:多个输入接口的DAPLINK模块
图5:只有单个输入口的DAPLINK模块
一旦你建立了与开发板卡的连接和接口,你就需要编译代码生成.bin文件,然后将其下载到MAX32630FTHR中,Mbed编译器操作如下:
1. 点击“编译”或者使用下拉菜单选择你的操作。一段时间后就会在Downloads文件下就会生成.bin文件。
2. 打开Downloads文件夹找到.bin文件
3. 打开一个新的资源管理器窗口,在这个窗口内你会看到一个新的DAPLINK驱动器的盘符,这就是开板卡的接口
4. 将新创建.bin文件拖动或者复制到DAPLINK驱动器上,这是就会开始向开发板下载程序
当我们在下载程序过程中,DAPLINK板卡上的LED灯应该会快速的闪烁,完成后LED灯会熄灭或者保持缓慢且稳定的闪烁
5. 按下MAX32630FTHR上的复位按钮重新启动执行新下载的程序
板卡复位时,板卡上红色的LED灯会亮起并且保持稳定。
云服务
登录后你会发现打开的是控制面板(Dashboard)页面,有很多选项供你选择,比如查看所有的设备、查看可用的事件、查看个人文件、查看账户有多少信用值。需要注意的是对于任何项目来说有些内容是必需的,比如API token、设备和变量ID。
查看API Tokens
想要查看API tokens,需要在页面的右上方点击“Profile”按钮,然后选择“API CredenTIals”,此时会在左侧下拉菜单显示所有的API token信息,对于每个用户API token都是唯一的,这是在创建账户时生成的,这是为了防止你设备的数据发送给错误的账户。
添加设备
当添加变量时会为每个新的设备创建变量ID,首先我们从添加设备开始:
1. 确认你在“设备页面”(图6)
2. 点击页面右上角的黄色的圆圈(内有加号)
3. 给设备重命名,从“My Data Source”改为任何你想要的名字
4. 点击页面的任意位置完成设备的添加,此时会弹出一个对话框提示创建成功
图6:从“设备”页面开始
这个“设备”代表你的一个项目,一个账号下支持多个项目。“变量ID”用来帮助每个设备来识别特定的传感器、数据输入源以及所处的位置。这有利于我们维护多个项目和以及独立的或者共享的传感器设备。
创建变量ID
创建变量ID与创建设备非常的类似:
1. 点击“新建设备”按钮,这时会打开此设备的详细页面,允许我们创建个人的变量
2. 点击页面右上方的黄色圆圈(内有加号标记)创建新的变量
3. 对变量进行重命名
4. 点击页面的任何位置,会弹出一个对话框表明你成功创建了ID
点击这个新的按钮会弹出“创建变量”页面(图7),在左侧会显示多条信息,你可以编辑左侧中大部分信息,其中包括API标签、允许的范围、测量单位和相似度(重要的一项就是ID,它用来标识你的程序应该放在的位置)。
图7:Ubidots “变量”显示
我强烈建议大家查看教程文档,当鼠标放在“Profile”按钮上时会有下拉菜单,其中就包括指导手册。文档中提供了非常多的信息和主题,涉及MQTT、HTTP API接口等物联网应用技术。
Android Studio软件
我们需要向的接口才能将数据从Maxim板卡和传感器传输到云服务,这可以借助移动设备(比如平板电脑、智能手机)来完成。对于这个项目我们采用的是安卓框架,使用Android Studio创建App应用,并将心率传感器采集的数据进行可视化处理。
为了节省时间,我使用“BluetoothLeGatt”这个示例进行演示,这个应用我们可以浏览可用的蓝牙设备,连接这些设备并且查看有哪些有用的资源。这对于创建自己的蓝牙应用有非常好的借鉴作用(如果你选择设计相关应用的话)。Ubidots同样提供了相关文档来说明如何使用App连接和发送数据到云服务,我建议大家查看API token和变量token相关的说明。
导入代码
1. 从Mouser的Gihub上下载BLEHR.7z文件,这对于导入Android Studio是必需的。由于文件大小的限制,这个项目的源代码被分为两部分,你需要将它们分别进行解压。
2. 通过在启动界面点击“打开已存在的Android Studio项目”或者点击“文件”菜单就可以将代码导入Android Studio,下面你可以看到我如何改变和实现Ubidots API接口的(图8)
(注:在编译程序前修改token密钥,前面已经提到过了,如果编译前没有进行修改,你的数据将不会显示在Ubidots上)
图8:安卓Studio Ubidots API token代码
编译App
为了测试和调试代码,你可以进行如下操作:
编译应用程序并下载到开发板卡中,如果你不想在更新API和变量token后修改代码可以此方法
使用“开发者模式”,这种方式支持USB调试,你可以将你的手机或者平板电脑作为虚拟测试平台,将其与你的开发PC进行连接,借助网络搜索或者Android Studio的教程你可以找到如何进入“开发者模式”的说明。
如果你决定使用一个设备作为开发工具,那么只需要点击菜单栏的“Run”按钮,然后选择你的设备开发编译和运行App。一旦加载完成应用程序就会在你选择的设备上运行起来。(注:你不可以在虚拟设备上运行这个应用,因为虚拟设备不支持蓝牙)
如果你打算进行安装调试,你需要先编译程序,选择“Build”然后是“Build APK(s)”,这会创建一个新的文件,你可将其拷贝到你选择设备上进行安装。
虽然如果你不打算对软件进行更改,那么安装应用程序是一个很好的选择,但是我建议选择一个设备作为测试平台。在“USB调试模式”下你可以进行更新、重编译、重复执行代码,这对于编程和调试非常有用。
进行系统组装
当你完成程序的加载并且启动后,在界面的右上方你会看到“Scan”按钮,点击它可以扫描查看附近范围内所有蓝牙设备,如果你对MAX32630FTHR和MAXREFDES117进行了正确的连接和编程,当设备启动后在设备列表中你会看到一个标有HRM的设备。
准备好查看结果了吗?
1. 确保启动了位置访问权限,如果你不确定此选项的位置,请参阅设备的在线帮助或者文档
2. 选择HRM打开一个新的窗口,你会看到一些数据:设备地址、当前状态、数据输出
3. 点击右上方的“连接”按钮允许连接到这个设备,在下拉菜单中你可以查看对应的服务列表
4. 最后选择“心率测量”,你会看到界面上开始显示数据(图9)
图9:当你选择“心率测量”选项时,你就会看到屏幕上显示数据
如果你更新了代码,包括正确的API和变量token,那么你现在应该能够登录你的Ubidots账户查看该设备上传的数据,点击“设备”选项。
现在你可以创建一个控制面板,根据你的要求可以按照不同的格式来查看数据信息(图10)。Ubidots最近推出了一个beta版本的Android App,你可以选择在智能手机或者平板电脑上进行安装来查看你的设备和数据(图11)。
图10:Ubidots安卓应用控制面板
图11:Ubidots网页控制面板总结
可穿戴设备是非常有用的工具,它可以为我们的日常生活添加很多的便利。这些设备能够提供给用户各种反馈数据,比如睡眠质量、最大摄氧量(VO2)、运动水平、步行和跑步节奏等数据。此外,它们还可以帮助你监测你的健康情况,并且可以将你的信息(比如每日血压、血糖水平)发动给医疗机构进行沟通。
设计可穿戴设备需要添加外围设备来进行感应、显示、存储和检索数据,Pegasus Rapid开发平台集成了关键的外设设备,大大简化了系统开发,700-MAXREFDES117#心率监测器参考设计也可以提供直接的借鉴作用。Mbed OS、Ubidots和Android Studio软件分别针对基于云编程、云服务和云接口等技术进行了完善。