基于加速度传感器的低功耗居家用水行为检测装置

2020-10-10 16:49郑桂林游孟苏文鹏
关键词:微控制器震动中断

郑桂林,游孟,苏文鹏

(滁州学院,安徽滁州239000)

0 引言

目前我国已进入老龄化社会,未来20-40年将成为中国人口老龄化的高峰阶段[1]。国务院办公厅于2019年4月发布了关于推进养老服务发展的意见,意见指出要持续推动智慧健康养老产业发展,拓展信息技术在养老领域的应用,促进人工智能、物联网、大数据等信息技术和智能硬件等产品在养老服务领域深度应用[2]。分析居家行为习惯是智慧养老领域的研究热点,运用传感器进行数据记录,对数据分析进而得出居家行为习惯,以此可判断是否有异常情况发生。本文设计的家庭用水行为检测装置可用于居家用水行为分析的数据采集,能给智慧养老产业提供更多的选择。

1 系统整体设计

系统主要由ADXL362加速度传感器模块、MSP430F6989微控制器模块、CC2530 ZigBee自组网模块构成,使用两节7号碱性干电池直接为各模块供电。系统框图如图1所示。ADXL362传感器模块采集水管的震动信号,将震动信号转换为数字量送给微控制器模块。MSP430F6989对获取的震动数据进行处理、分析,判断水管中是否有水流,同时将水流状态送给CC2530 ZigBee自组网模块。自组网模块将水流状态通过ZigBee发送到网关,进而上传到后台进行处理,通过这一过程完成对居家用水行为的检测。

系统采用电池供电,电量有限。如何降低功耗以延长电池的使用时间,是系统设计面临的一个难题。本文提出了一种三级休眠机制,大大降低了系统功耗。三级分别指传感器模块、微控制器模块、自组网模块。系统上电后,各模块配置为休眠模式,等待组网以降低功耗。当按下组网按键后,CC2530 ZigBee自组网模块被唤醒,启动组网。组网完成后,组网指示灯闪烁发出完成组网信号,并通过中断唤醒MSP430F6989微控制器模块,微控制器模块对ADXL362传感器模块进行初始化配置,之后各模块进入休眠模式;若组网不成功则再次进入休眠模式等待组网。

图1 系统框图

传感器在休眠模式下,具有震动唤醒功能,即检测到震动时可自行唤醒,使之进入正常的测量模式。当组网成功且传感器初始化完成后,若有震动产生,传感器将被唤醒。唤醒后会发出中断唤醒微控制器模块。微控制器唤醒后,读取传感器的数据并进行处理、分析。若未检测到水流,则将传感器配置为休眠模式,之后微控制器也进入休眠模式;若检测到水流,则通过中断唤醒自组网模块,同时自身进入休眠模式。自组网模块将向网关发送水流开始信号,之后自身也进入休眠模式。传感器则进入静止检测模式,若一定时间内均未检测到震动,则认为水流停止,通过中断依次唤醒后级模块,向网关发出水流停止信号,之后系统再次进入休眠模式。后台结合水流开始信号和水流停止信号,即可完成一次用水行为的记录。在三级休眠模式下,供电电压为3V时,供电电流仅1.5μA,可满足电池供电对功耗的要求。

微控制器依据水管的震动数据判断是否有水流。装置初始化时,保持装置静止,获取加速度传感器一定数量的数据,由这些数据计算出静态的震动量,记为σ0。再结合阈值自适应设定法,设定一个阈值σT。当传感器检测到震动时,通过获取加速度传感器的数据,计算出此时的震动量,记为σt。若σt>σT,则认为有水流,反之则认为无水流。

2 系统硬件设计

2.1 电源

本文所设计装置需安装在各用水点位的上水软管处,通常情况下这些安装环境没有市电接入端口,不方便采用适配器供电方式,因此选用电池供电。一般折中考虑容量和成本,选择干电池供电。查询器件手册可得,ADXL362的供电电压范围为1.6V-3.5V,MSP430F6989的供电电压范围为1.8V-3.6V,CC2530的供电电压范围为2.0V-3.6V。一节7号碱性干电池的电压初值约为1.5V,为覆盖三个模块供电范围,采用两节干电池串联为装置供电。在电源电路中,采用LDO或DC-DC芯片对电源进行稳压是通用处理方法。LDO芯片转换效率较高,经实测在供电电压为3.3V时,采用的一款LDO芯片会增加30μA的供电电流,如此大的静态电流很难做到低功耗。干电池在放电电流较小时,放电曲线较为线性[3],考虑到电压小幅度下降不会影响系统工作,因此装置采用干电池直接供电。

2.2 加速度传感器模块

具有加速度传感功能的传感器有很多种类,根据轴数可分为3轴、6轴、9轴的传感器。6轴传感器集成了3轴加速度计和3轴陀螺仪,9轴传感器又额外集成了3轴磁力计。轴数越多则功耗越大,3轴加速度计即可满足系统的数据采集需求,本装置选用了亚德诺半导体公司的ADXL362。

ADXL362是一款超低功耗、数字输出3轴微电子机械系统加速度计。提供12位数据分辨率,输出数据速率(ODR)从12.5Hz到400Hz可配置。测量范围可选择±2 g、±4 g和±8 g,其中±2 g范围内的分辨率可达1 mg/LSB。本装置ODR配置为200Hz,测量范围选择±2 g。表1给出了供电电压为2V、ODR为100Hz时ADXL362的典型供电电流,由此可见其非常适用于低功耗应用场景。

表1 ADXL362典型供电电流

在正常工作模式下,ADXL362具有静止检测功能。当加速度低于设定的阈值且持续设定的时间时,即认为检测到静止事件。在唤醒模式下,传感器以每秒6次的频率测量加速度以确定是否发生运动,检测到运动后可以通过中断唤醒微控制器并切换到正常工作模式。本系统中,ADXL362在唤醒模式、正常工作模式、静止检测模式中进行模式切换。

2.3 微控制器模块

微控制器采用了德州仪器的低功耗系列单片机MSP430FR6989。MSP430FR6989是基于RSIC架构的16位单片机,时钟频率最高可达16MHz。内部采用了超低功耗铁电RAM,非易失性存储器容量高达128KB。具有经过优化的超低功耗模式,待机模式电流低至0.4μA,与飞思卡尔公司的KL03 2.2μA待机电流相比功耗更低。工作模式约100μA/MHz,拥有四级低功耗模式(Low-Power Mode,LPM)可选[4]。本系统使用了LPM4模式,当中断唤醒微控制器时会切换至工作模式,为降低功耗,时钟频率设为1MHz。

2.4 Zigbee自组网模块

Zigbee是基于IEEE802.15.4标准的低功耗局域网协议。相对传统无线通信,Zigbee耗能低、复杂度低、自组织且安全可靠,非常适合短距离通信[5]。针对本装置应用场景,Zigbee低功耗、适用短距离的优点明显[6]。Zigbee自组网模块选用了易佰特公司的E18集成模块。模块采用德州仪器的CC2530射频芯片。芯片内部集成有8051内核的单片机和无线收发器,支持ZigBee以及IEEE 802.15.4协议。模块内含功放,增强了通信距离,且引出了单片机的I/O口,方便进行二次开发。

3 系统软件设计

3.1 MSP430FR6989软件设计

MSP430FR6989软件分为两个部分,主程序部分和中断部分。中断不宜用来做大量的工作,因此除了阈值设定部分在中断服务内完成,水流数据的分析、处理均在主程序中完成。

主程序流程图如图2所示。上电初始化完成了系统时钟初始化、通用I/O低功耗处理、SPI初始化。微控制器通过SPI与ADXL362通信,MSP430作为主机,对时钟精度要求较低。MSP430时钟均设置为1MHz内部DCLOCK;为尽可能降低功耗,将所有未使用到的I/O状态配置为低电平输出;SPI依据ADXL362传感器要求,配置为3-Pin、8-Bits、SPIMaster模式。系统如果初次上电,需等待组网成功后,微控制器被中断唤醒才能进行阈值设定,否则将进入睡眠模式等待组网。若是掉电后重新上电、则要判断是否已经完成组网,如果已经完成组网,则要重新进行阈值设定,之后微控制器进入睡眠模式,等待被传感器中断。传感器产生中断后,微控制器根据中断类型进行处理。若检测到震动且判断为水流,则唤醒ZigBee模块报告水流开始信号。若检测到静止事件则报告水流结束信号。完成后,重新开启中断进入睡眠模式,等待下一次中断。

图2 MSP430FR6989主程序流程图

图3 给出了微控制器的中断服务程序流程图。中断产生后,首先关闭中断功能退出睡眠模式,然后根据中断类型进行处理。若是传感器中断,则清除中断标志,退出中断服务,在主程序中进行处理;若是ZigBee模块产生的中断,则启动阈值设定,完成后打开中断再次进入睡眠模式。

3.2 自适应阈值法

阈值σT是影响用水行为检测效果的重要参数,不同安装点位的震动幅度不一致,因此需要设定不同的阈值。本文采用一种自适应阈值设定方法,针对不同的安装点位,可自动设定不同的阈值。

图3 MSP430FR6989中断服务程序流程图

在装置静态时,各轴获取一定数量的数据,数据量记为Average_Num。由公式(1)计算三个轴震动数据的均值Xˉ、Yˉ、Zˉ,

其中X_inact_valuen、Y_inact_valuen、Z_inact_valuen分别表示静止时加速度传感器X轴、Y轴、Z轴的原始数据。

求出各轴的均值后,由公式(2)即可计算出静态时水管的震动量σ0:

之后在家庭用水装置打开的情况下(即水管中有水流流动),各轴再获取Average_Num个数据。参考公式(2),可计算出有水流时水管的震动量σnom:

其中X_nom_valuen、Y_nom_valuen、Z_nom_valuen分别表示有水流时加速度传感器X轴、Y轴、Z轴的原始数据。

得到σ0、σnom之后,根据以下规则设定阈值

其中range1、range2、range3可根据工程数据进行调整,本系统分别设定为3、5、10。该方法中,不同点位的阈值由各点位的震动数据判断得来,大大提高了系统对不同环境的适用性。

3.3 自组网模块软件设计

ZigBee自组网模块在初始化后即开启中断进入睡眠模式等待配网,系统任务全部在中断中完成,图4给出了ZigBee自组网模块的中断服务程序流程图。中断唤醒后判断中断类型,若是配网中断,则启动组网,成功后唤醒MSP430;若组网不成功则进入睡眠,等待重新组网。如果是MSP430发出的中断,则依据中断类型向网关发送水流开始或水流结束信息,完成后重新进入睡眠,等待下一个中断事件。

图4 自组网模块中断服务程序流程图

4 测试结果

为了验证装置的实用性,选取了不同的点位对装置进行了测试,结果如表2所示。从表中可以看出在不同的位置,装置都能对σT进行自适应的设定,且能检测出水流。静态震动量σ0与环境相关,但整体都较小。用水时的震动量跟也跟环境有关,但不同的环境,震动量相差较多,因此阈值σT也相差较多。值得注意的是,虽然装置极少出现漏报的情况,但装置周边如有强干扰导致震动较为剧烈时,会被认为是用水行为发生误报。如测试中发现,在洗菜池附近的橱柜上快速大幅度连续剁菜,装置出现过误报情况。

表2 测试数据汇总表

5 总结

本文设计的居家用水行为检测装置功耗低且具有自适应环境的能力,使用方法简单,能有效地检测用水行为。但仍有改进的空间,如抗干扰能力有待增强,安装位置有一定的局限性,只能安装在上水软管外露的用水装置上,部分用水装置上水软管采用隐蔽式安装,会导致该装置不可用。对于干扰问题,一方面可尝试从频域角度对震动信号进行分析,另一方面可尝试多传感器相结合的方式来剔除部分误报,以提高抗干扰能力。

猜你喜欢
微控制器震动中断
震动减脂仪可以减肥?
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
振动搅拌 震动创新
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
跟踪导练(二)(5)
千里移防,卫勤保障不中断
伊朗遭“标志性攻击”震动中东