智能家居中用户行为跟踪的设计与实现

1. 引言

许多系统专注于通过手机或互联网进行设备操作的过程,例如控制家庭照明和空调(制冷与制热)系统;这就是一个智能家居[1]。我们可以进一步发挥想象,例如在回家前一段时间自动开启空调,使室内温度达到所需程度,或者在回家前启动热水器加热,又或者电视机根据典型系统行为自动开启。这些功能可以通过研究人们的日常重要活动并将其转化为设备指令来实现[2]。智能家居主要由微控制器、传感器和执行器设计而成。传感器数据本身包含行为数据,其目的是推断健康与福祉愿景、节约能源或便利生活方式[3]。萨特帕蒂提出了一种智能家居概念,更侧重于借助电气、数字和机械设备帮助家庭用户独立且舒适地生活[4]。加文·钱德提出了一种系统,该系统在单个房间内利用超声波传感器和机器学习技术来预测人的行为,例如监测人的位置和状态(坐、站或躺)。所提出的系统仅适用于一个长期占用的单户住宅,以及一位可以偶尔介入的看护人员。该系统采用ESP32微控制器、超声波传感器和本地MQTT服务器(Mosquitto);旨在监测居住者的行为,包括压力、超声波、电流和水流。通过使用Weka应用数据挖掘算法来确定行为[5]。

用户行为有多种类型,但每种行为的日常基础是必须能够被识别。如果人类活动能够被正确且自动地识别,则将有可能实现各种各样的应用和服务,例如按时打开音乐或电视设备,或在房主回家前冷却房间。本文所提出的系统旨在跟踪用户行为,并从家庭内部做出适当决策,以改善居家生活方式。本文展示了所提出系统的完整结构,包括用于分析行为数据的算法、数据收集过程的确定,以及利用深度学习技术从日常传感器数据中提取复杂且多变量的模式。该系统有助于构建高效且适当的监控服务,在减少能源消耗的同时提升智能家居的生活便利性。

监督学习算法分析训练数据并生成推断函数,以映射新实例。其依赖于一组标注过的训练数据,即标注训练数据,这些数据由特定时间的实际示例(如传感器案例)组成。每个案例表示一对内容,包括一个输入对象(通常为向量)和期望输出值(监督信号)。该算法分析训练数据并生成推理函数,用于映射新样本。最优情况是我们能够正确识别样本类别或未见实例,这些实例完全是新的,未在训练阶段使用过。这需要合理地利用新样本训练数据案例对学习算法进行泛化[6]。

2. 智能家居与机器学习

由于微处理器已经小型化,计算能力已被集成到移动和家用设备等常见物品中;然而,这项技术正逐渐进入社会的各个领域。普适计算技术和机器学习已经成熟,能够在我们的日常环境中提供自动化的上下文支持。智能家居是该系统的物理体现[7]。环境传感器在智能家居中有多种应用。传感器数据隐含地包含了行为数据,这些数据可能有助于间接推断健康状况洞察[3]。在家庭环境中,计算机程序充当智能代理的角色,通过使用人工智能(AI)技术的传感器来理解物理环境、居民行为及其行为原因,并据此做出决策以实现特定目标。

在机器学习和人工智能中,监督学习指的是系统和算法的一部分,其利用已知结果的数据点定义预测模型。该模型通过训练来学习,通常通过某些改进措施来减少误差或误差函数。监督学习过程的第一阶段是收集标注训练数据。标注数据是输出部分,并为算法提供反馈。在获得足够数据后,下一阶段是将标注数据分为三组:训练、测试和验证。算法使用训练数据包来调整模型以减少误差。

2.1. 决策树 (DT) 学习

决策树学习是数据挖掘中常用的一种算法。通过使用树形表示来解决问题,该算法相较于其他分类算法更容易理解。树的每个内部节点可以表示每个特征或属性,每个叶节点对应一个类别标签。该算法的目标是创建一个模型,根据多个输入变量预测输出变量的值。决策树算法既可用于分类问题,也可用于解决回归问题。决策树是一种简单且有效的分类算法,其最重要的优势之一是能够提供人类可读的分类规则[8][6]。

3. 系统设计

所提出的系统的架构如图1所示。该系统包含一个通过串行端口连接到ESP32微控制器的树莓派微型计算机,一个设备通过继电器与ESP32连接,同时还有一个开关控制设备连接到ESP32。

示意图0

4. 组件信息

4.1. ESP32 NodeMCU

它是最流行的开发板之一,可以作为完整的独立系统使用,也可以作为主控MCU的从设备。它是一款支持通过单芯片2.4 GHz Wi-Fi实现Wi-Fi功能的低成本设备。它具有34个可编程通用输入/输出引脚(GPIO引脚),如图2所示,可用于连接不同传感器和设备。其特点是在工业环境中工作能力出色,工作温度范围为-40 °C至+125 °C[9]。图2显示了本系统中使用的ESP32模块。

示意图1

4.2. 树莓派

树莓派是一种非常廉价的单板计算机,可基于Linux操作系统运行。在所提出的系统中,它被用于通过串行端口接收来自ESP32的数据读取,并存储数据,同时实现所提出的机器学习算法以预测用户行为。

4.3. Henge 8A UBEC

用于将电源从7-25.5V转换为5V/8A,以及从6V/8A转换为7.4V/8A。Henge 8A UBEC的主要目的是为传感器和ESP32 NodeMCU提供所需电力。图(3)显示了Henge 8A UBEC。

示意图2

5. 硬件方面

在ESP32和树莓派初始化之后,ESP32将每分钟读取一次按钮的状态,以打开或关闭设备,并将结果发送给树莓派。该系统将根据用户行为控制设备。图4显示了所提出系统的框图。图5是所提出系统的一张图片。

示意图3

示意图4

6. 软件方面

使用Arduino IDE对ESP32微控制器进行编程,使用Python编程语言在树莓派上编写算法程序,以及使用 Orange进行数据可视化、探索、预处理和建模。Orange 是一个基于组件的数据挖掘程序。它包含一组用于数据可视化、探索、预处理和建模的技术。它具有友好且直观的用户界面。通过脚本编写和基于组件的设计,它注重简洁性和交互性。

  • Python代码
    在收集数据后,使用Orange应用决策树机器学习算法来分析结果,以获得更好且准确的分类结果。所提出的工作有助于识别设备状态,将结果分类到相应的类别中,并做出适当决策。
# Python代码步骤:
# 步骤1:导入库(time,Orange,sys)
# 步骤2:设备监听:ESP32每分钟读取一次设备状态并发送其值。
# 步骤3:每15分钟计算一次数据序列。
# 步骤4:将数值分配到一周中指定的时间段。
# 步骤5:对数据进行分类并使用决策树算法。
# 步骤6:学习网络。
# 步骤7:预测,在使用训练数据测试网络后,用新数据更新数据,并将数据添加到先前的数据中。
# 步骤8:设备控制,通过串行端口向ESP32发送值。
  • Orange工具设计
    通过插入两个训练数据文件和一个预测数据文件(首次为空),第一个数据文件用于选择时间数据序列和设备状态(以电视为例),然后应用决策树算法,输出数据即为新的预测数据,如图(6)所示。每次输入新数据和之前的预测数据后,训练文件都会更新。

示意图5

7. 设备开关的决策

所提出的系统可以使用机器学习算法控制多种家用设备,例如音乐设备和电视。它使用Python语言监测设备的状态,并首次将数据上传到树莓派持续一周。然后,程序每分钟收集一次设备状态,持续一周(每周10080分钟);它按时间段(例如十五分钟)对这些数据进行分类,并利用决策树学习算法获得预测数据。之后,系统会根据之前的行为在特定时间控制设备(开启或关闭)。

如前所述,该系统主要包含一个嵌入式系统。该嵌入式系统在真实场景假设下进行了测试,能够准确地实时发送结果、控制设备并发出实时通知。自适应轻量级家庭原型系统已在自然气候条件下进行测试,验证了其与自然气候及气候变化的兼容性,测试以电视设备为例。此外,系统将显示电视设备状态的实时数值。该算法应用于电视设备,但可替换为其他任何家用设备(如音乐设备、灯光等)。系统读取了一周内的用户行为,随后预测了在未来一周内可能发生的情况;若系统运行后用户行为未发生任何变化,则如图(7)所示。系统将实时读取设备数值,并根据实际情况进行更新,结果依据Orange的数据,如图(8)所示:用户每周日从7:15到7:44开启电视,而在当天的00:00至00:15也会在同一时间开启电视。

示意图6

示意图7

8. 结论

我们提出了一种智能家居用户行为跟踪系统,该系统是构建智能家居系统的一部分,旨在提供便于智能家居生活的服务。本研究旨在促进开发者和服务提供商在智能家居领域的开发与应用。为此,所提出的系统能够对用户活动进行分类,并具备每日更新的能力,因为我们每分钟、每天都在跟踪用户行为,从而使该系统可应用于多种用途和多种设备,例如供暖和制冷设备、排水以及跟踪青少年儿童进出家门的机制。在某些情况下,可以对该系统进行一些修改,例如跟踪儿童离家上学及回家的情况,若其回家时间延迟,则向父母发送警报信息。此外,我们还通过实际部署和利用每日数据更新系统,解决了其他系统的不足之处。同时,正确识别与特定活动相关的活动可显著提高发现的准确性。与其他系统相比,该系统还具有设置和安装的便捷性以及低成本的优势。

更多推荐