掌桥专利:专业的专利平台
掌桥专利
首页

基于Arduino单片机的饮水数据检测方法及装置

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及饮水数据管理领域,尤其涉及基于Arduino单片机的饮水数据检测方法及装置。

背景技术

随着生活水平的提高,人们对健康愈来愈重视,科学的饮水习惯对健康的影响尤为重要,我们不仅要多喝水,更要科学饮水。维持良好的饮水习惯需要合理分配饮水时间,控制饮水量,并且需要及时获取自身的饮水数据,但是人们不易监测日常自己的饮水数据,导致较难养成科学的饮水习惯。

目前,市场上的相关智能产品主要通过称重传感器获取用户饮水前后的重力差值作为饮水量,并将其进行统计,该方法无法判断重力差是否为倒水量,或无法自动判断该重力差是否为真正的饮水量,导致计算用户实际饮水量时出现一定的偏差。

发明内容

本发明的目的在于公开基于Arduino单片机的饮水数据检测方法及装置,解决现有技术通过称重传感器获取的重力差值来计算饮水量出现的无法区分饮水量和倒水量从而导致饮水量测量不准确的问题。

为了达到上述目的,本发明采用如下技术方案:

一方面,本发明提供了一种基于Arduino单片机的饮水数据检测方法,包括

S1,通过倾角传感器实时获得水杯在Z轴上的倾角z,柔性压力传感器实时获取水杯的侧壁压力p;

S2,判断侧壁压力p和倾角z是否同时为0且稳定T秒,若是,则判定水杯为稳定状态,通过称重传感器获取此时水杯的第一重力;

S3,等待侧壁压力p和倾角z下一次同时为0且稳定T秒,通过称重传感器获取此时水杯的第二重力;

S4,基于第一重力和第二重力计算重力差,基于重力差计算水杯的变化水量;

S5,判断本次水杯重力的变化是否由饮水动作引起,若是,则将变化水量作为饮水量,若否,则将变化水量作为倒水量。

优选地,所述S5包括:

S51,获取饮水时间t

S52,利用t

S53,判断ρ是否大于预设的训练阈值ρ

优选地,所述T的数值为2。

优选地,所述训练阈值ρ

优选地,通过如下方式获取饮水时间t

S511,对倾角z进行中值滤波处理,获得滤波后的倾角;

S512,对滤波后的倾角求导,得到倾角的斜率;

S513,对倾角的斜率取绝对值,以一次完整的饮水过程中倾角最大值的20%作为阈值进行滤波;

S514,获取相邻极值点间隔最大的两个极值点的时间差值,即为饮水时间t

S515,获取高通滤波后倾角斜率绝对值中非零数值区域持续的时间作为动作时间t

另一方面,本发明还提供了基于Arduino单片机的饮水数据检测装置,用于实现上述的基于Arduino单片机的饮水数据检测方法,包括电源模块、传感器模块、Arduino单片机模块、通信模块和客户端模块;

电源模块用于为传感器模块、Arduino单片机模块、通信模块进行供电;

传感器模块用于获取水杯的倾角、侧壁压力和重力;

Arduino单片机模块用于基于水杯的倾角、侧壁压力和重力获取饮水量;

通信模块用于将饮水量发送至客户端模块;

客户端模块用于对饮水量进行管理。

优选地,所述传感器模块包括倾角传感器、柔性压力传感器和称重传感器;

倾角传感器用于获取水杯的倾角;

柔性压力传感器用于获取水杯的侧壁压力;

称重传感器用于获取水杯的重力。

优选地,所述通信模块包括蓝牙。

优选地,所述客户端模块包括微信小程序。

本专利提出了一种用于判断用户饮水状态并获取饮水数据的方法及装置,通过所提出的判断因子ρ可以区分倒水量和饮水量,即有效地降低了倒水量对计算用户实际的饮水量的影响。

本专利提出的算法大大提高了计算用户实际饮水量的精确度,并将其应用于基于Arduino单片机饮水数据检测装置,例如智能杯套中。

附图说明

利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。

图1,为本发明基于Arduino单片机的饮水数据检测方法的一种示例性实施例图。

图2,为本发明基于Arduino单片机的饮水数据检测装置的一种示例性实施例图。

图3,为本发明微信小程序的界面的一种示例性实施例图。

图4,为本发明的饮水倾角曲线图。

图5,为本发明第一种倒水情况下的倒水倾角曲线图。

图6,为本发明第二种倒水情况下的倒水倾角曲线图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

如图1所示的一种实施例,一方面,本发明提供了一种基于Arduino单片机的饮水数据检测方法,包括

S1,通过倾角传感器实时获得水杯在Z轴上的倾角z,柔性压力传感器实时获取水杯的侧壁压力p;

S2,判断侧壁压力p和倾角z是否同时为0且稳定T秒,若是,则判定水杯为稳定状态,通过称重传感器获取此时水杯的第一重力;

S3,等待侧壁压力p和倾角z下一次同时为0且稳定T秒,通过称重传感器获取此时水杯的第二重力;

S4,基于第一重力和第二重力计算重力差,基于重力差计算水杯的变化水量;

S5,判断本次水杯重力的变化是否由饮水动作引起,若是,则将变化水量作为饮水量,若否,则将变化水量作为倒水量。

优选地,所述S5包括:

S51,获取饮水时间t

S52,利用t

S53,判断ρ是否大于预设的训练阈值ρ

优选地,所述T的数值为2。

优选地,所述训练阈值ρ

优选地,通过如下方式获取饮水时间t

S511,对倾角z进行中值滤波处理,获得滤波后的倾角;

S512,对滤波后的倾角求导,得到倾角的斜率;

S513,对倾角的斜率取绝对值,以一次完整的饮水过程中倾角最大值的20%作为阈值进行滤波;

S514,获取相邻极值点间隔最大的两个极值点的时间差值,即为饮水时间t

S515,获取高通滤波后倾角斜率绝对值中非零数值区域持续的时间作为动作时间t

具体的,以一次完整的饮水过程中倾角最大值的20%作为阈值进行滤波,包括:

绝对值小于倾角最大值的20%则将其置零。

另一方面,如图2所示,本发明还提供了基于Arduino单片机的饮水数据检测装置,用于实现上述的基于Arduino单片机的饮水数据检测方法,包括电源模块、传感器模块、Arduino单片机模块、通信模块和客户端模块;

电源模块用于为传感器模块、Arduino单片机模块、通信模块进行供电;

传感器模块用于获取水杯的倾角、侧壁压力和重力;

Arduino单片机模块用于基于水杯的倾角、侧壁压力和重力获取饮水量;

通信模块用于将饮水量发送至客户端模块;

客户端模块用于对饮水量进行管理。

对饮水量进行管理包括显示每日信息、每周信息、月趋势和个人信息等,界面如图3所示。

每日信息界面记录用户每日饮水量的数据,目标饮水量是用户根据经验值所填写的数据;每周信息界面将用户一周的饮水情况用曲线图的形式呈现,并且记录详细的一周饮水量;月趋势界面将用户一个月的饮水数据以曲线图的显示呈现给用户,让用户更加清晰地了解其一个星期的饮水情况。

优选地,所述传感器模块包括倾角传感器、柔性压力传感器和称重传感器;

倾角传感器用于获取水杯的倾角;

柔性压力传感器用于获取水杯的侧壁压力;

称重传感器用于获取水杯的重力。

具体的,Arduino单片机模块可以是Atmega328p;称重传感器可以是hx711;hx711称重传感器可以作用在被测物体上的重力按一定的比例转换成可计量的输出信号;倾角传感器可以是ADXL345倾角传感器,测量运动或冲击导致的动态加速度和静止加速度,用于测量水杯的倾角。

柔性压力传感器可以通过杯套设置在杯子四周,用于获取侧壁压力。

优选地,所述通信模块包括蓝牙。

优选地,所述客户端模块包括微信小程序。

蓝牙模块与手机进行通信,传输相应的饮水数据,微信小程序收到指令后接收数据并显示。

本专利提出了一种用于判断用户饮水状态并获取饮水数据的方法及装置,通过所提出的判断因子ρ可以区分倒水量和饮水量,即有效地降低了倒水量对计算用户实际的饮水量的影响。

本专利提出的算法大大提高了计算用户实际饮水量的精确度,并将其应用于基于Arduino单片机饮水数据检测装置,例如智能杯套中。

除此之外,市面上的相关智能产品普遍存在便携性不足、成本较高、以及不能将实际饮水情况和饮水计划相结合的问题,而本专利的基于Arduino单片机饮水数据检测的智能杯套,其能够根据用户的实际的饮水情况和饮水计划智能地提醒用户饮水,通过软硬件结合,用户可以采用多种方式监控饮水情况,即使脱离手机端,数据仍能保持记录,这使得其能够适用于一些特殊的群体,如老人、小孩等无智能手机的用户。同时,智能杯套在外型上,用户可以根据水杯的尺寸调节合适的水杯套尺寸,适合多种杯型。

为了验证本发明的准确性,对本发明的方式做了如下的验证:

基于Arduino单片机饮水数据检测装置获取数据,从而获取以下饮水数据和倒水数据的倾角曲线图。饮水倾角曲线图如图4所示,两种情况下倒水倾角曲线图分别为图5-6所示。

(1)饮水情况

根据测量结果,对于一次简单的饮水过程,由图4中饮水倾角图可以分析用户拿起水杯饮水后放下水杯,是连续性的一次动作,中间倾角变化较小的时间是饮水持续时间,并通过中值滤波,对倾角斜率进行滤波可以得到用户一次饮水的持续时间为22s,动作时间为40s;根据重力传感器可以检测到实际重力差为70g,标准重力差根据用户饮水经验值确定为200g。代入本算法构造的判断因子ρ,可以计算得到一次饮水的

(2)倒水情况

为了不失普遍性,将倒水情况分为两种情况进行分析,情况一是用户将水杯中的水全部倒完,情况二是用户将水杯中的水倒掉部分,测量结果如下:

情况一:

由于要将水杯中水全部倒完,倾角平缓时间持续较长,符合实际情况。根据测量结果,用户一次饮水的持续时间为11s,动作时间为33s;根据重力传感器可以检测到实际重力差为139g。代入本算法构造的判断因子ρ,可以计算出一次倒水的

情况二:

将水杯中的水倒掉部分,因此倾角平缓的持续时间较短,并且由于动作变换较快导致抖动比前两种情况更明显,符合实际情况。根据测量结果,用户一次饮水的持续时间为17s,动作时间为46s,实际重力差为141g。代入本算法构造的判断因子ρ,可以计算出一次倒水的

根据实际测得的上述数据,可以证明算法中根据数据测定的阈值ρ

尽管已经示出和描述了本发明的实施例,本领域技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变形,本发明的范围由权利要求及其等同物限定。

需要说明的是,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以是两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件功能单元/模块的形式实现。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解应当理解,可以以硬件、软件、固件、中间件、代码或其任何恰当组合来实现这里描述的实施例。对于硬件实现,处理器可以在一个或多个下列单元中实现:专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、设计用于实现这里所描述功能的其他电子单元或其组合。对于软件实现,实施例的部分或全部流程可以通过计算机程序来指令相关的硬件来完成。

实现时,可以将上述程序存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读介质可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

技术分类

06120114707695