聂旭辉,孙宗禹,韩明轩,段晓辉
(北京大学 无线通信与信号处理研究中心,北京100871)
基于mbed的无线体重计快速设计*
聂旭辉,孙宗禹,韩明轩,段晓辉
(北京大学 无线通信与信号处理研究中心,北京100871)
基于ARM公司的ARM mbed IoT云端软件平台和意法半导体推出的Nucleo开发套件,将HX711采集到的压感数据进行采集和处理,得到体重数据后,通过蓝牙BLE的GATT协议将相应数据进行传输,在安卓智能设备端编写支持蓝牙BLE的APP,接收并显示体重数据,这种无线蓝牙体重计原型的快速开发和验证显示了mbed平台易于开发和高效便捷的特性。
mbed;Nucleo;体重计;BLE;快速开发
随着经济的发展和生活水平的不断提高,加上不良的饮食习惯的积累,造成了肥胖人群的比例逐年上升,为此体重越来越被人们重视。具有无线功能的智能体重计使得体重的测量和管理变得更加简单和智能,获得了市场的青睐和认可。
无线体重计的实现方式有很多,连接方式主要是蓝牙和Wi-Fi,例如小米体重计采用蓝牙,Fibit Aria则采用Wi-Fi。测量方式均为桥式电路测量压力[1],有些体重计会再基于身高给出BMI值,也有基于生物电阻抗的方式进行体脂等人体健康参数测量[2]。市场上已经有专门用于身体成分测量的模拟前端[3],用于多功能体重计的快速开发。通过无线的方式将相关数据进行分析和存储,以达到对体重以及相关数据的记录和管理的目的。
本文介绍了一个包含体重传感器和蓝牙通信的无线体重计的快速原型开发方式,其可以实现体重的测量以及数据的传输和展示。
目前ARM公司推出的基于ARM架构的快速开发工具mbed在中国得到快速发展,其软件和大部分硬件设计都是以开源的方式提供给开发者。ARM架构的微控制器已经具有广泛的应用基础,这使得mbed一推出就吸引了开发者的大量关注。随着各个厂商对mbed的支持力度加大,基于mbed的开发平台、扩展模块和开发包也得到了很大的扩展和丰富[4]。
意法半导体(ST)加入mbed阵营后推出了支持mbed的硬件开发平台Nucleo,其涵盖了STM32的F0、F1、F3、F4、L1和L4系列微处理器;同时推出了一系列扩展板,包括蓝牙BLE、Wi-Fi、传感器和NFC等模块。对于有STM32微控制器开发经验的人来说,可以很容易地进行基于Nucleo开发板的开发。基于mbed和Nucleo,我们可以实现无线体重计的原型快速开发。
该系统的构架主要分为采集模块、处理模块、传输模块和显示模块。采集模块是基于半桥压力传感器组成全桥电路,其所受的压力不同导致阻值变化,通过测量电压差而计算重量。采集模块采用24海芯科技公司位A/D芯片HX711,该芯片集成度高、接口简单、成本低,具有很高的性价比和可靠性。处理模块采用NUCLEO-F401RE主控板,对数据进行计算和处理,传输模块采用X-Nucleo-IDB04A1蓝牙BLE模块,将数据传输到智能终端,通过智能终端实现数据的显示。整个系统的设计方案如图1所示。
图2 输入通道和增益选择的数据输出时序图
图1 无线体重计系统设计方案
系统的硬件设计主要由传感器桥式电路和HX711高精度A/D芯片、支持mbed的Nucleo主控开发板、扩展蓝牙模块以及安卓智能手机组成。将桥式电路产生的电压变化通过高精度模数转换芯片转换为数字信号,主控模块采集数据并进行处理,最后通过蓝牙BLE将数据传输到安卓手机端进行显示。
2.1传感器桥式电路和HX711A/D芯片
传感器采用高精度G型传感器,将4个串联在一起,形成桥式电路,有效量程为150 kg。通过测量桥两端的压差,可以计算体重数据。
HX711是海芯科技公司研发的一款24位A/D转换器芯片,该芯片集成了时钟振荡器、电源等。HX711芯片专为平衡器应用开发,具有响应快、抗干扰能力强的特点,降低了电子秤的整机成本,提高了整机的性能和可靠性。HX711的核心为24位ADC,A通道增益为64 dB或者128 dB,B通道增益固定为32 dB,在实际使用中,使用A通道,增益为128 dB。
HX711与主控板的通信接口为两根线,一根为数据线,另一根为时钟线,通过两根线实现对HX711的设置和数据的读取,其时序图如图2所示。
2.2Nucleo主控开发板
主控开发板选用Nucleo-F401RE,基于32位的高性能ARM Cortex-M4处理器,带FPU单元,最高能支持84 MHz主频,配备ST Morpho和Arduino-兼容排针,支持mbed,具有很高的扩展性,以利于灵活的产品开发。其与HX711的连接也很简单,我们将3.3 V、GND与HX711的电源和地相连,D8(PAG)与HX711的PD_SCK相连,D9(PC7)与HX711的DOUT相连,实现了对HX711的供电和数据采集。
X-Nucleo-IDB04A1蓝牙BLE扩展板采用ST 公司 Cortex-M0 内核的低功耗无线网络处理器BlueNRG,运算性能和功耗控制很出色。该处理器的功耗在+0 dBm时为8.2 mA (TX),睡眠模式下的功耗低至1.7 μA。模块通过SPI接口与外部控制器通信,ST公司提供基于STM32Cube开发的扩展软件包X-CUBE-BLE1,里面含有丰富的蓝牙开发资源和示例程序,同时实现了mbed的支持,使得蓝牙BLE的开发变得简单迅速。
X-Nucleo-IDB04A1整体系统架构如图3所示。
图3 X-Nucleo-IDB04A1整体系统架构[5]
3.1下位机软件设计
基于mbed的快速开发的主要工作是进行数据的采集、处理和传输,而mbed SDK提供了一个面向微控制器硬件的抽象层,从而使用户在开发具体应用时无需了解具体的硬件结构,其具体结构如图4所示[6],从而加快了原型验证开发的进度。
图4 mbed SDK的具体结构图
图5 下位机的软件流程图
我们先在0 kg的情况下记录电压值,以此作为校正参数。程序的流程图如图5所示。
体重计校正部分,在开机的时候进行数据的采集,采用10 Hz的采集频率采集5 s,将这些数据取平均,认为是0 kg时的基值。
数据处理部分,同样以10 Hz的采集频率采集1 s,将10个数据取平均,与基值相减,得到压差,转换为体重即得到结果。
3.2移动终端软件设计
智能移动终端软件为安卓系统下的APP,包含自动搜索设备、建立蓝牙连接、实时数据显示等功能,主要完成对体重数据的实时监控。系统通过蓝牙4.0通信,实现低功耗和长距离传输,每秒刷新一次实时体重数据;具备蓝牙自动配对功能,无需用户输入配对码。
系统使用蓝牙4.0的GATT协议,其中规定service选择为Weight Scale,characterister选择为Weight,从而获得与蓝牙4.0标准协议兼容的通信协议,从而保证了设备的兼容性。
安卓APP设计分为UI设计和后台逻辑,UI采用GridLayout布局,自适应性良好,后台共1个进程,实现蓝牙通信和界面刷新,运行该APP需要用户开启蓝牙权限。移动终端软件流程图如图6所示。支持GATT协议的APP界面如图7所示。
在开发过程中,主要是做归零校正和体重数据计算。负载为0 kg时,从HX711采集到的50个原始数据在8 256 228和82 560 11之间浮动,平均值为8 256 114,以此作为基准点。校正数据如图8所示。
图6 移动终端软件流程图
图7 支持GATT协议的APP界面
图8 校正数据显示
在实际测试的时候,基于校正数据原始体重以及压差的线性关系,可以得到体重数据,通过多次测量取平均值的方法,可以得到一个精度较高的体重数据。测量场景如图9所示,采集到的体重数据可以在手机端同步显示。
图9 原型连接与测试实物图
在对比测试中,将原来的商用体重计、小米体重计和快速开发的原型体重计三者进行对比,得到的测试结果如表1所列。
表1 测试结果对比
可以看到,自己做的原型体重计可以较为准确地得到体重数据,与用同样传感器的商用体重计相比,在实际测试中,结果更加接近小米体重计,且误差保持在很小范围里,测量得到的数据较为准确,具有很强的实用性。
本文实现了无线体重计原型的快速开发,使用拆自商用体重计的传感器与HX711连接进行数据的采集,用Nucleo主控板和蓝牙BLE扩展板将体重数据处理后通过蓝牙GATT协议发出,最后在安卓智能手机上显示。整个开发过程由于得到了mbed和Nucleo的支持,变得非常快速高效,从电路搭建到原型实现只花了几天的时间。
[1] 李嘉旺.基于安卓系统的婴儿体重计研制[D].上海:华东理工大学,2014.
[2] 祁朋祥.基于生物电阻抗的人体成分测试与研究[D].合肥:中国科学技术大学,2009.
[3] 韩霜.德州仪器推出首款体重计及体成分测量模拟前端[J].世界电子元器件,2012(9).
[4] 托尔森, 威尔姆斯特.ARM快速嵌入式系统原型设计:基于开源硬件mbed[M].1版.韩德强, 鲁鹏程,译.北京:机械工业出版社,2014.
[5] ST.Bluetooth Low Energy software expansion for STM32Cube,2015.
[6] ST.Bluetooth Low Energy software expansion for STM32Cube,2015.
聂旭辉(硕士),主要研究方向为无线医疗应用。
Rapid Design of Wireless Weight Scale Based on mbed
Nie Xuhui,Sun Zongyu,Han Mingxuan,Duan Xiaohui
(Wireless Communications and Signal Processing Research Centre,Peking University,Beijing 100871,China)
Based on the ARM mbed IoT cloud software platform and the Nucleo development kit,the design collects and processes the pressure sensitive data from HX711.After getting the weight data,it is transferred through the BLE.Then the APP is writed on the Android smart devices,which can receive and display the weight data.The wireless Bluetooth weight meter prototype shows the ARM mbed IoT has the characteristics of easy and efficient to develop.
mbed;Nucleo;weight scale;BLE;rapid design
863支撑计划“服务于群众健康的移动数字医疗系统集成示范工程”(编号:2013BAI05B07)。此项目还获得北京大学-ARM-ST-Nordic智能硬件创新联合实验室的大力支持。
TP216
A
(责任编辑:杨迪娜2016-03-16)