郭丽霞,杜 丘,吴新峰
(1.安阳工学院 电子信息与电气工程学院,河南 安阳 455000;2.中国联合网络通信有限公司徐州市分公司,江苏 徐州 221000;3.天津环安科技有限公司,天津 301726)
本设计实现了一款基于STM32 和窄带物联网NB-IoT(Narrow Band Internet of Things)的可穿戴式老人摔倒监测装置。装置终端具有多种传感器,能够采集穿戴人的身体姿态、心率等多个参数;装置通信端通过NB-IoT 把采集的数据实时上传到云平台,云平台对数据进行处理,并把身体健康数据及摔倒报警信息推送到相应家庭人员的手机里。本装置还能在摔倒时进行本地蜂鸣器报警,并且获助后可一键消除报警。
本设计主要具有4 个优点。一是多传感器。该装置具有检测身体姿态、心率等多个参数的传感器,能够实时地对多个参数进行采集,通过算法优化,当穿戴人摔倒时,能够第一时间报警,并推送摔倒信息。二是低功耗。本设计采用NB-IoT 技术,NBIoT 又称为低功耗广域网,支持低功耗设备的蜂窝数据连接,该设计的无线传输模块采用N21 模组。三是低成本。由于NB-IoT 资费很低,大大降低了整体系统运营成本。四是数据完整。每秒均进行数据采集,数据存储在本地EEPROM 里,当无线信号不好时,数据也能保存下来,信号好时,再进行数据传输,从而保证了数据的完整性。
该装置的结构组成如图1 所示,包含数据处理部分、无线数据传输部分、多参数数据采集部分、显示部分、报警部分和程序下载接口部分等组成部分。它采用STM32F103 处理器进行数据处理;利用NBIoT 的N21 模块传输无线数据;采用MPU6050 陀螺仪和MAX30102 分别进行姿态检测和心率检测。
图1 装置的结构框图
该装置采用STM32 作为处理器的原因是STM32单片机工作性能稳定可靠,软件和硬件资源能够很好地满足当前设计要求,并且方便以后扩展应用;相对于通用无线分组业务GPRS(General Packet Radio Service)技术,NB-IoT 技术进行无线传输资费低、功耗低,NB-IoT 相对于远距离无线电LoRa(Long Range Radio)技术所受的干扰小并且通信更安全。基于以上原因,本文以STM32 和NB-IoT 为关键技术实现这款可穿戴式老人防摔监测装置。
2.1.1 STM32F103的特点
整个装置的数据处理由STM32F103[1]来完成。STM32F103 是32 位ARM 微控制器,芯片是意法半导体公司出品,内核是Cortex-M3,适用广泛的通用和低功耗应用,主频72 MHz,具有12 位AD 转换器,多串口,具有IIC 接口和SPI 接口,方便对外设进行控制。
2.1.2 MPU6050 介绍
姿态检测通过MPU6050[2]来实现。MPU6050是整合性6 轴运动处理组件。与多组件方案相比,它有2 个优点,一是可以避免组合陀螺仪与加速器时间轴之差的问题,二是可以缩小封装空间。当连接到三轴磁强计时,MPU-6050 提供完整的9 轴运动,数据通过IIC 或SPI 端口输出。
2.1.3 MAX30102 介绍
心率检测由MAX30102 生物传感器来实现。它集成了脉搏血氧仪和心率监测仪,包含660 nm红光LED、880 nm 红外光LED、光电检测器、光器件和带环境光抑制的低噪声电子电路。因为它可通过软件关断模块,待机电流为零,可实现电源始终维持供电状态,所以该模块适用于低功耗产品。
2.1.4 NB-IoT 无线传输模块N21 介绍
数据的无线传输由NB-IoT[3]无线传输模块N21 进行。它是一款超小封装的NB-IoT 工业级无线通信模块[4]。因为它的功耗超低,所以适用于低功耗的物联网通信设备。此外,它还具有覆盖域广、外围电路简单、客户易于开发等优点。因此,本系统选择它作为无线传输模块。
整个装置的数据处理由STM32F103 单片机来完成。它的IO 口可模拟IIC 总线,同时IO 口具有中断功能,可接收外接芯片的中断信号;程序通过SWD 两线进行程序下载;内部具有RTC 实时时钟,配置外置晶振,可实现万年历功能。数据处理单元电路图如图2 所示。
图2 STM32F103 单片机及其外围电路图
NB-IoT 无线传输模块N21 通过串口的RXD和TXD 与STM32F103单片机相连接,通过SIMCLK、SIMRST 和SIMVCC 与SIM卡连接。N21 电路设计和SIM 卡电路设计分别如图3 和图4 所示。
图3 N21 外围电路图
图4 SIM 卡外围电路图
该装置需要采集身体姿态、心率和温湿度多个参数,这些参数分别由MPU6050 陀螺仪、心率检测模块MAX30102 和温湿度传感器SHT20 来完成,它们均与STM32F103 单片机进行连接。
MPU6050 陀螺仪和STM32F103 单片机通过IIC 接口进行连接。STM32F103 的IO 口PB5和PB4用软件模拟IIC 的SDA 和SCL 接口,PB3 用IO 口中断来接收MPU6050 的中断信号。MPU6050 的连接电路图如图5 所示。
图5 MPU6050 外围电路图
心率检测模块MAX30102 和STM32F103 单片机的通信通过IIC 来进行,用单片机的IO 口PA7 来模拟SCL,用PB0 来模拟SDA,用PB1 来接收MAX30102的中断信号。 MAX30102 连接电路图如图6 所示。
图6 MAX30102 外围电路图
温湿度传感器SHT20 通过IIC 接口和STM32F103单片机进行连接,单片机STM32F103 的IO 口PB13模 拟SCL,PB12 模 拟SDA,通 过 这2 个IO 口 和SHT20 进行通信。SHT20 连接电路图如图7 所示。
图7 SHT20 外围电路图
硬件设计决定着整体电路的性能和可靠性[5]。在进行硬件设计时应着重考虑以下2 个方面,才能保证电路可靠运行。
电源方面:电源的负载能力和纹波大小是电源最重要的2 个参数,它们会直接影响电源的性能和稳定性。无线模块在弱信号情况下,可能会以最大功率发射,此时瞬时峰值电流可达1 A 左右,而此时如果电源负载能力达不到,则会造成模块电压跌落,而如果电压跌落到 3.3 V 以下,又会造成模块重启等异常;电源的纹波会对数据采集产生干扰,电源浪涌会对模块产生损坏,所以需要平滑供电电源的电压波动,还应降低高频干扰。电源走线需要远离射频部分。主电源走线的宽度要求大约为2 mm。
PCB 设计方面:PCB 设计方面主要应注意PCB 的走线方式、元器件布局和隔离措施。其中PCB 的走线方式对射频线提出了一些要求,它要求射频线自身的宽度为0.8~1.0 mm,射频线与铺地之间的距离为1.0~0.8 mm,射频线应该完整包地且需要多打地孔,射频线对应的背面层应该挖地掏空,射频线走线应该尽量短(不超过15 mm为宜),射频线还应该尽量圆滑等;元器件布局方面考虑大功率模块的电源和其它电路电源做隔离处理;隔离措施采用 DC-DC 或者电感搭建的LC 滤波电路。
软件开发以KEIL5 为开发平台,按照模块化进行设计。下面图8~图10 是该装置设计中的部分关键流程图,包括主控制流程图、跌倒算法流程图和控制无线传输模块N21 进行数据传输的配置流程图,其中单片机主要是通过AT 指令对NB-IoT 模块N21 进行控制[6]来实现数据的无线传输。
图10 配置N21 流程图
完成上述硬件和软件设计后,该装置实现了其预期功能。该装置检测到摔倒和未摔倒2 种情况的结果如图11 所示。
图11 摔倒和正常情况检测结果
目前,可穿戴式老人防摔监测装置已设计完成,它以 STM32F103 单片机为主控单元,采用多种传感器获得数据,不仅可以检测出老人的姿态信息,还可以通过心率对老人的身体状态进行监测,并实现远程数据显示与报警的功能。最终该装置各个器件都能够正常工作,实现了本设计的预期功能。该装置的应用将大大有助于摔倒的老人被及时发现并尽快得到救助,从而降低因意外摔倒导致的伤亡率。