代亚坤,钱玥琳,刘正天,宋子涵,楼超宇,黄锐云,李吉功

(天津职业技术师范大学 自动化与电气工程学院,天津, 300222)

0 引言

物联网大数据与5G 的发展,为家居领域的发展带来了新机遇和新发展,使各类智能居民消费产品日臻成熟和完善[1-3]。随着健康已经成为近些年来的热点话题,人们对健康的重视程度越来越高,养成健康的饮水习惯就是其中重要的一环。但简单的饮水动作常常被人们忽视。因此,一个能够学习用户饮水习惯并提醒用户健康饮水的设备有着良好的应用前景[4-5]。目前的市面上,专注于辅助健康饮水习惯养成方面的产品类型相对较少,实现形式多是以水杯呈现,不仅样式单一,而且功能不够完善,只能保温而无法加热,同时不具备智慧特征等。

鉴于此,本文设计了一款硬件与软件相结合的便携式智慧水杯垫,可以通过硬件采集数据、手机APP 的数据分析,通过声音、灯光提醒和APP 显示来达到帮助使用者健康饮水的目的。除此之外,设计的智慧水杯垫还具有保温加热功能。

1 系统工作原理

系统的硬件框图如图1 所示。开启设备后,单片机通过称重模块检测是否放置了水杯并且记录重量,然后通过温度传感器检测温度,如果水温未达到温度的设定值将会开始加热并进行保温。当用户再一次放下水杯时,单片机将再次检测重量,得出差值,进而告知用户本次的喝水量,并且上报云端,以便于使用数据生成图表供用户随时查阅,并根据用户的喝水情况提醒用户养成良好的喝水习惯。除此之外,用户还可以通过APP 自定义喝水计划、水温、彩灯颜色等。

图1 硬件框图

2 硬件设计

本设计的硬件部分按功能可以分为单片机主控模块、数据云端上报、时钟模块、显示模块、报警模块、温度采集、温度控制、称重模块,硬件框图如图1 所示。智能杯垫以STM32F103C8T6 单片机为控制核心,然后由温度传感器LM35 测量水温,由两个全桥称重传感器测量饮水前后的重量。称重传感器将重量转成微弱的电压信号,再通过24 位的A/D 转换器HX711 转换成数字信号[6],控制器会对该数字信号进行滤波,并计算出水的体积;水温则通过LM35 检测杯底温度。水温和饮水量都将显示在屏幕上,并通过ESP 8266 无线通讯模块上传云平台,再由云平台下发到APP 中。语音模块SU-03T 将会负责提醒使用者饮水。

根据图1 所示的硬件框图,所设计的智能水杯垫的硬件电路图如图2 所示,其中各主要模块电路的设计详细说明如下。

■2.1 称重模块

称重模块使用了10 千克的小量程称重压力传感器YZC131,附带有HX711AD 转换模块。称重压力传感器的工作原理是金属柱体受压之后会产生轻微形变,通过与之相连的测量电路的电流变化反映金属柱体承受的外力。将得到的微小电压信号通过INNA、INPA、AVDD、BASE 等引脚传输给HX711 模块,通过该芯片来进行模拟信号的数字化处理。

HX711 是一款高精度ADC 模数转换芯片,由美国Avia Semiconductor 公司推出,广泛应用于称重传感器、压力传感器、温度传感器等模拟信号的数字化处理。HX711 工作电压范围广泛,可在2.7V ~5V 之间工作,具有低功耗、高精度、高稳定性等特点。该芯片具有24 位ADC,可以实现高精度的模拟信号转换,并且内置了程序可调增益放大器,可以通过程序设置不同的增益值来适应不同的传感器输出信号范围。此外,该芯片还具有内置的温度传感器和电源电压检测功能,能够对传感器输出信号进行自动校准,提高了测量的精度和稳定性。HX711 芯片的使用也非常方便,只需要将传感器的信号引脚连接到芯片的输入端口,然后通过输出DOUT 引脚以及SCK 引脚连接单片机,通过单片机读取芯片的输出数据即可。同时,该芯片还支持SPI 数字接口,可以与各种微控制器和单片机进行通信,提高了系统的灵活性和可扩展性。将该芯片用于水杯垫的称重计算,能准确有效地检测到水量的变化。

■2.2 语音模块

语音模块采用了集成度较高的开发板SU-03 系列,高集成度有利于后续的开发与应用。对于本设计来说,可以使用户更加方便地制作只属于自己的提醒语音。SU-03 系列语音模块是一款基于AI 技术的多功能语音模块,由智能公元公司生产。它采用高性能的语音处理芯片,具有较高的语音识别精度和语音合成质量,能够实现语音识别、语音合成、语音播放等多种功能。SU-03T 语音模块还支持离线语音识别和在线语音识别两种模式,可以在不同的应用场景下满足不同的需求。

在使用SU-03T 语音模块时,将该模块的B0、B1 口与单片机的PA9、PA10 连接,然后通过控制指令,即可实现对语音模块的控制和操作,在计时结束后进行语音播报,用户可以使用内置的语音指令库,或者自定义语音指令,实现对其他设备的控制和操作。针对本设计,SU-03T 语音模块可以满足不同地区和不同语种的语音识别需求,以便于更多形式的语音提醒,在设定的时间倒计时结束时单片机会通过串口向SU-03T 发送设定好的字符串,模块识别到之后会根据收到的信息进行判断,选择播报内容,然后调用预先下载好的语音包进行语音播报,提醒使用者及时饮水。

■2.3 屏幕显示

本设计采用了较小的0.91 寸OLED 屏,该屏幕具有高对比度、高亮度、低功耗等特点,虽然尺寸较小,但仍然能够显示生动、清晰的图像和文字,与此同时,使用小尺寸OLED 屏能够将有效的空间进行最大化的利用,将本就较为紧张的空间留给其他器件的同时增大与加热片的距离以避免高温。该屏幕的驱动芯片使用了SSD1306,支持I2C 通信协议进行控制和操作。I2C(Inter-Integrated Circuit,I2C)是一种串行通信协议,可以实现多个设备之间的通信和数据传输。通过I2C 通信协议,用户可以将OLED 屏幕与其他设备(如单片机、微控制器、传感器等)进行连接,进行数据传输和控制操作。I2C通信协议具有传输速度快、占用引脚少、连接器材简单等特点,在本设计中使用了SCL、SDA 两个引脚与单片机的PB6、PB7 引脚相连,相对于SPI 通讯方式占用了更少的引脚资源。

■2.4 加热与水温检测方式

本设计采用了陶瓷加热片CT-JRP505020,其具有体积小、热效率高等优点。通过部署在水杯垫上表面的两块陶瓷加热片实现加热功能,能够在短短30s 内迅速升温到达50℃以上,并且最高温度可达80℃,这使得所设计的水杯垫在快速加热的应用场景中具备了较高的适用性。为了控制加热片的接通与关断,本设计采用了固态继电器PMA2D6132,其具有响应速度快、噪音小、寿命长等优点,能够有效地控制加热片的工作状态。水温检测方式为通过LM35 温度传感器在杯底进行接触式检测。因为该检测方式检测到的并不是直接的水温,所以需要根据获得的温度再进行一次计算,估计杯内的水温。为了使得水杯内的水温快速恒定在一个合适的范围内,本设计使用了PD 算法进行温度控制。

■2.5 无线通讯及云平台

本设计使用的无线通讯模块为ESP 8266 WiFi 模块。ESP 8266 是一款低成本、高性能、低功耗的Wi-Fi 芯片,由乐鑫科技(Espressif Systems)开发。通过在ESP 8266上运行的固件,可通过串口命令或与Arduino IDE 集成的编程语言(如C++)进行编程。ESP8266 可以作为微控制器来控制传感器和执行其他任务,同时还可以通过Wi-Fi 连接到互联网并与其他设备进行通信。在本设计中,只使用了该芯片的联网功能用于连接云平台,将引脚TXDO 以及RXDO连接单片机的PA4 以及PA5 引脚,进行数据通信。

所设计的智能水杯垫通过ESP 8266 模块连接OneNET云平台。OneNET 云平台支持海量设备的接入和管理,同时也支持多租户和多场景的应用部署,满足不同规模的用户需求。OneNET 支持多种连接方式,包括NB-IoT、2G/3G/4G、Wi-Fi、蓝牙、以太网等,以此来实现与云平台的通讯功能。在云平台上创建产品之后,选择通讯协议并将ID 与密钥等连接信息保存,将连接信息写入ESP8266 模块的初始化过程。这样当模块上电之后,将根据预置的信息连接云平台,并且验证产品ID 与密钥,验证正确之后将连接云平台并实现数据上传。

3 单片机程序设计

系统的软件流程图如图3 所示。水杯垫上电开启后,首先进行系统初始化,然后循环运行彩屏显示、按键扫描、时钟读取、重量采集、计算用户饮水量、饮水提醒、数据通信等功能。

图3 程序流程图

(1)PD 温度控制

由于陶瓷加热的稳定性较差,温度曲线不够平滑,并且在整个加热过程中,受到外界各种不确定干扰的因素较多,因此必须对水温的变化趋势做出预测,根据需要及时反方向抑制,以防止出现较大超调量的波动。在广泛使用的PID算法中,积分环节(I)具有很强的滞后效应,而微分环节(D)具有预见性,所以本设计采用了PD 算法,这样易控制超调,且稳态误差小。本系统将LM35 温度传感器采集的铝板温度作为输入,进而与设定的水温值比较得到水温偏差值,然后运用PD 算法,进而控制陶瓷加热片工作。

(2)水量监测与记录

用户饮水的监测是通过计算水杯里的水量变化得到的。通过比较测量的重量与校准的水杯重量,就能计算出水杯里的水量。另外,由于称重传感器的敏感元件形变恢复较为缓慢,因此,本设计采用多次滞回比较算法得出用户饮水量。滞回比较算法既能解决压力传感器形变恢复时间的影响,又能过滤部分采集误差,减少不确定因素对饮水量数据的干扰。

4 手机APP 设计

本设计采用OneNET 物联网实现手机APP 与水杯垫之间的数据通信。APP 通过水杯垫上报的数据分析用户的喝水情况,制定相应的喝水建议。用户也可以在手机APP 上设置喝水时间以及合适的水温,设定的时间到之后水杯垫会进行语音提示并伴随灯光闪烁,灯光会随着水温的升高而变色,呈现出动态的提示效果。

APP 的功能结构图如图4 所示。APP 的设计工具选用了简单易用的纯中文编程软件E4A。由于主要的目标用户是需要保持饮水量充足的人群,因此APP 设计了时间与饮水量的设置提醒功能。设计的用户界面如图5 所示。用户可以通过APP 设置提醒时间和饮水量。当设定的时间到达时,APP 会通过OneNET 物联网下发指令给水杯垫,提醒用户饮水,同时还会显示当前饮水量的情况。在保温方面,通过OneNET 物联网将APP 页面设定的水温下发给水杯垫,水杯垫再通过控制加热片确保水温。

图4 APP 功能结构图

图5 基于云平台的水杯垫手机APP 界面

在手机APP 上,用户除了可以较为轻松的设置自己的饮水时间以及饮水量外,还可以查看到自己的饮水记录。通过记录的每天的饮水量以及饮水时间,在水杯垫的饮水提醒功能的帮助下,调整自己的饮水习惯,达到监督自己改变饮水坏习惯的目的。

5 实际测试

所实现的智能水杯垫如图6 所示。经过实际测试,水杯垫能够按照预设的功能正常运行,实现饮水提醒和保温的功能。

图6 基于云平台的智能水杯垫实物照片

6 结语

本文给出了一款基于云平台的智能水杯垫的实现方案。通过硬件电路设计、单片机程序设计和移动端APP 设计相结合,实现了饮水提醒、饮水规划及水温保持等功能,以达到培养使用者健康喝水习惯的目的。