朱诚 周楠
【摘 要】婴儿无规律、无前兆的排便行为,使得年轻的家长疲于应付、筋疲力尽。微处理器、传感器、无线网络技术的发展,以及智能家居概念的兴起,为婴儿用品的设计带来了变革。文章旨在设计一种能够在一定程度上对婴儿的排便行为进行先期预警的装置,介绍了采集节点主要部件的设计和相关的程序、流程,阐述了数据匹配与比较算法。经测试表明,该装置基本实现了预期的设计目标。
【关键词】智能家居;婴儿监控;时间序列;数据匹配
【中图分类号】R472 【文献标识码】A 【文章编号】1674-0688(2019)04-0072-05
1 研究背景
激烈的社会竞争和工作压力,使得很多初为人父母的年轻家长需要在育儿和工作之间寻找平衡点。他们希望能在工作之余有更多的闲暇时间,却往往被一个婴儿搞得筋疲力尽、疲惫不堪,尤其是婴儿无规律、无前兆的排便行为,更是让家长疲于应付。
微处理器、传感器、无线网络技术的发展,以及智能家居概念的兴起,为婴儿用品的设计带来了变革。本文旨在设计一种能够在一定程度上对婴儿的排便行为进行先期预警,及时通知家长处理的装置。
根据医学相关理论,人体在排便前夕,肠道蠕动亢进,振动幅度、频率同时上升[1]。牛顿第三定律表明:水平、垂直方向的移动将产生水平、垂直方向的震动[2]。通过高灵敏度传感器采集婴儿肠道蠕动所产生的震动信号,并将数据整合形成连续的时间序列。将一定周期内的序列数据与事先保存的基准数据进行匹配和模式识别。比较两条曲线在总体趋势上是否具有相似性,当相似程度达到阈值时,即可认为婴儿具有排便的倾向和可能性,再通过无线网络发送预警信息。
2 硬件架构
如图1所示,预警装置的核心是数据采集节点,它是由嵌入式处理器、传感器、WIFI芯片、串行闪存、实时时钟构成。图2为系统主要部件的连线原理图。
2.1 嵌入式处理器
系统采用“意法半导体”出品的STM32F101RFT6作为中央处理器[3],其内核为Cortex-M3、主频为36 MHz,拥有51个通用I/O接口、768 Kbytes闪存、80 KB内存、2个I2C接口、5个USART接口、3个SPI接口。由于其供电需求为2.0~3.6 V,能够实现在很小功耗的前提下,完成数据处理任务。
2.2 传感器
人体肠道微弱震动信号的数据采集工作是由日本村田生产的SCA61T加速度传感器完成的,图3为传感器芯片及其周边电路,其具有以下特点:同时支持模拟输出和数字输出;内置温度传感器,有效进行温度补偿;内置EEPROM存储器,保存补偿信息。
2.3 WIFI模块
为了能够实现无线数据传输,系统采用Espressif公司的ESP8266芯片作为无线局域网通信解决方案,其具有以下特点:支持802.11 b/g/n;内置TCP/IP协议栈;支持SPI、UART接口;待机状态消耗功率小于1.0 mW。
2.4 外部存储
为了满足保存监测数据和时间序列的需要,系统外部连接了一块Winbond出品的W25Q256FV串行闪存芯片,其具有256 M-bit的容量,通过SPI接口与MCU通信,工作电流只有4 mA,在掉电模式下,只有1 μA的电流[4]。
2.5 实时时钟
系统在进行采样时,需要同时记录数据及其出现的时间,以便对某些具有特殊意义的数据点进行标记,用于长时间连续检测结果的分析。因此,系统使用了美国DALLAS公司的DS1302实时时钟芯片,保证即使系统断电,日期时间依然是正确的[5]。
3 传感器模块
3.1 传感器的连接
表1说明了传感器模块与MCU之间的连接方式。
3.2 数据采集过程
SCA61T传感器采集到的数据首先经过内置放大器电路放大,将变化幅度较小的原始信号放大为变化幅度明显、易于识别的信号。然后经内置模/数转换器(ADC)将模拟震动信号转换为数字量,通过SPI接口传输给MCU[6]。MCU对数字信号进行数字滤波,以滤除各种干扰。
如图4所示,采集节点上电后,首先进行MCU各个相关功能部件的初始化,然后对传感器进行初始化。系统按照每秒钟采樣1 000次的频率读取SPI接口数据,实现传感器的数据获取,然后进行数字滤波,并将处理后的数据交给数据存储函数完成数据的保存操作。整个过程是连续的、周而复始的。
3.3 底噪处理
由于使用环境、各种无线信号等因素的影响,传感器会存在底噪。底噪在一定程度上影响信号采集的精确性,且很难通过硬件方面的优化和改进完全消除。所以,系统通过软件层面进行针对性调整。在数字滤波函数DigitalFilter()中,除完成必要的常规滤波工作外,还设置有一个子程序CorrectNoiseFloor(),利用表2中3个参数不同的变化调整检测窗口、有效滤除底噪,以使采集的数据更准确。
如图5所示,左侧图为传感器的底噪,通过设置修正参数,将右侧图检测窗口上移,避开底噪区域,有效地减小底噪影响。
3个参数中比较重要的是Level_Floor和Signal_Range,如果设置不当将影响信号准确性。Level_Floor过低,导致部分底噪被误认为是有效信号被采集。婴儿未在床上,依然能够采集到信号。Level_Floor过高,导致部分有效信号被误认为是底噪而被过滤掉。婴儿在床上,依然无法采集到信号。Signal_Range过低或过高,都能够采集到信号,但是有延迟。
3.4 采集节点的安装
如图6所示,传感器采用非接触式,无需直接安装于婴儿身上,只需安装于婴儿床、婴儿车上即可采集到数据。
如图7所示,考虑到加速度传感器x轴的有效工作方向,安装传感器模块时,其x轴的轴向要与婴儿身体轴向一致,且正方向指向头部。如果两个轴向不一致,将严重影响传感器的灵敏度。
4 WIFI模块
为了降低功耗和减小体积,采集节点没有设置任何人机交互界面。所有的控制和数据处理任务是通过WIFI网络发送至上位机软件或手机APP完成的。
ESP8266芯片专为移动设备、可穿戴电子产品和物联网应用设计,拥有3种模式运行:激活模式、睡眠模式和深度模睡眠式。在睡眠模式下,其消耗的电流小于12uA,处于连接状态时,其消耗的功率少于1.0 mW。只需简单的串口配置,即可实现WIFI数据传输[7]。表3说明了WIFI芯片与MCU之间的连接方式。
ESP8266支持STA/AP/STA+AP 3種工作模式。STA模式:ESP8266通过路由器接入无线网络,通过手机或电脑对设备的远程控制。AP模式:ESP8266作为WIFI热点。STA+AP模式:以上两种模式共存。
在STA模式下,可以设置3个子模式:TCP服务器、TCP客户端、UDP。本系统根据设计需要,使用了STA模式的TCP服务器模式。表4是通过AT指令进行ESP8266工作模式的配置。
系统通过Esp8266_send_cmd(uchar*cmd,uchar *ack,uint w)函数向ESP8266芯片发送AT指令。该函数带3个参数,cmd表示要发送的指令字符串,ack表示发送指令后期待得到的应答,w表示等待应答的时间。函数返回值0表示发送成功。如Esp8266_send_cmd("AT+RST","OK",20)表示发送指令AT+RST到WIFI模块,重启模块;期待的应答为“OK”;等待时间为20 ms。函数执行流程如图8所示。
5 数据保存与传输
5.1 数据格式
MCU对传感器采集到的数据完成滤波处理后,将每1秒钟、即1 000次的采样数据以帧的形式进行封装储存在内存中,格式见表5。
每帧长度为2 014个字节,能够携载1秒钟、2 000个字节的有效采集数据,起始标记和结束标记共占用2个字节。时间标签字段中数据是通过实时时钟芯片DS1302获取的当前系统时间,用于标记每一帧数据发生的具体时刻。系统数据传输使用“小端”模式,即最低有效位在前,最高有效位在后。
5.2 数据存储传输方式
考虑网络负载、数据完整性、系统执行效率、采集节点功耗,MCU并不是立即将传感器采集数据通过WIFI网络发送给上位机。而是首先在内存中创建一个“先进先出”队列,然后在将封装好的数据帧存入队列中。在队列中存储的数据量达到1 min时,MCU通过“中断”机制将数据帧依次从队列中取出,存入W25Q256串行闪存中。在此期间,ESP8266芯片时钟处于睡眠模式,有效降低了功耗。待W25Q256芯片中保存10 min数据后,MCU唤醒处于休眠状态的ESP8266并启动发送功能,通过WIFI网络将数据发送给上位程序。由于W25Q256的容量远大于10 min数据所需空间,所以W25Q256采取滚动更新数据的原则,当剩余空间不足2 MB时,删除最旧的10 min数据,腾出存储空间(如图9所示)。
这样,融合内存的存储高速性和海量的存储空间,保证采集工作的实时性和数据的完整性,同时实现系统的功耗控制,有效地延长系统待机时间。操作流程如图10所示。
6 数据匹配算法
上位程序将采集节点发送的数据与样本数据进行匹配和比较,判断婴儿是否有排便的可能性。但是需要比较相似性的两段时间序列的长度可能并不相等,而且两组数据在幅度、频率、峰值等关键数据也不可能完全一致。可能仅仅存在时间轴上的位移,亦即在还原位移的情况下,两个时间序列是一致的。所以,使用传统的欧几里得算法无法有效地求得两个时间序列之间的距离(或者相似性)。本系统采用动态时间归整(Dynamic Time Warping,DTW)算法解决这个问题,通过把时间序列进行延伸和缩短,计算两个时间序列性之间的相似性。
如图11所示,上下两条实线代表两个时间序列,时间序列之间的虚线代表两个时间序列之间的相似的点。DTW使用所有这些相似点之间的距离之和,称为归整路径距离(Warp Path Distance)来衡量两个时间序列之间的相似性。
设样本时间序列和比对时间序列分别为Q和C,长度分别是n和m[8]。
Q=q1,q2,……,qi,……,qn
C=c1,c2,……,cj,……,cm
构造一个n×m的矩阵,矩阵元素(i,j)表示qi和cj两个点的距离d(qi,cj),即序列Q的每一个点和序列C的每一个点之间的相似度,距离越小则相似度越高。算法的核心思想为在矩阵中寻找一条路径,路径通过的格点即为两个序列进行计算的对齐点。
路径的形式为D=d1,d2,……,DK,其中max(n,m)≤K≤n+m。
D中d(i,j)的i和j必须是单调增加的,以保证图11中的虚线不会相交,所谓单调增加是指:
dk=(x,j)
dk+1=(i’,j’)
i<=i’≤1,j≤j’ 归整路径D必须从d1=(1,1)开始,到dK=(n,m)结尾,以保证Q和C中的每个坐标都在D中出现。根据每个元素的代价找出一条最短路径,如图12中标出的黑色曲线。 D(n,m)表示长度为n和m的两个时间序列之间的归整路径距离。从(m,n)点开始,递归直到(1,1)点,最后求得的归整路径距离为D(n,m)。 D(n,m)=d(n,m)+min[D(n-1,m),D(n,m-1),D(n-1,m-1)] 当求得归整路径距离后,系统与匹配阈值进行比较,低于阈值说明比对时间序列与样本序列是相似的,意味着婴儿存在排便的可能性。 7 总结 该系统采用模块化设计,体积小、功耗低、重量轻,因为采用无线数据传输和锂电池供电,所以没有各种电线带来的不便。嵌入式处理器通过高灵敏度传感器实时采集婴儿的肠道震动信息,并进行归档、比对。当生理指标中出现预示有可能排便的线索时,及时通知家长做出相应的防范措施。经测试表明,该装置基本实现了预期的设计目标。 参 考 文 献 [1]徐巍,王建荣.胃肠音检测及其在疾病诊治中应用的研究进展[J].解放军护理杂志,2015,32(4):45-47. [2]闫赤元.牛顿第三定律与狭义惯性空间[J].办公自动化,2018(21):19-20. [3]曹利波.基于STM32数据采集器的设计[J].电子制作,2014(5):36-37. [4]苏海洋,谢军,徐凯琳.基于51单片机外置存储器字库系统的设计[J].电子世界,2017(2):72-73. [5]张丽红,张国祥.基于51单片机的电子钟系统设计与仿真[J].电子世界,2018(20):134-135. [6]谢华燕.可控摆角与周期的电磁单摆系统设计[J].自动化与仪器仪表,2016(2):36-38. [7]常欣,王琦.用STM32和ESP8266实现的可扩展物联网系统[J].单片机与嵌入式系统应用,2018(12):58-60. [8]陈乾,胡谷雨.一种新的DTW最佳弯曲窗口学习方法[J].计算机科学,2012,39(8):191-193. [责任编辑:钟声贤]