基于树莓派和机器学习的家庭自动化

示意图0

摘要

可持续能源的理念促使人们思考一种新的现代方式来节约能源。随着技术和互联网的发展,一种被称为物联网(IoT)的革命性技术应运而生。本文主要关注通过家庭自动化实现节能,为此使用了传感器和微处理器。利用树莓派对电器进行感知和控制,以实现建筑物内电力的优化使用。通过移动应用程序远程识别并控制由于用户疏忽造成的电力浪费。采用机器学习算法进行精确的负荷预测,从而实现有效的家庭能源管理。在TensorFlow中实现了K最近邻(KNN)、决策树回归(DTR)、支持向量回归和随机森林等机器学习算法用于负荷预测。

索引词 ——树莓派,家庭自动化,物联网(IoT),能源管理。

I. 引言

物联网已成为实现智能生活理念最重要的概念之一[1–3]。已在医疗、农业、工业、交通等领域广泛应用。物联网最主要的应用体现在智能电网和家庭自动化中[4–5]。

家庭自动化旨在通过传感器[6]来检测和控制温度、照明、空调和运动。这些传感器连接到一个微处理器,从而构成家庭自动化系统,该系统由用户通过应用程序[7]进行控制。此处使用Blynk作为服务器,用于接收来自树莓派的数据并远程显示数据[8–9]。所提出的系统主要基于家庭使用,但也可应用于商业建筑、实时监控、执行等场景的自动化需求。电力负荷预测在[10]中进行了研究。负荷管理策略在[11]中进行了研究。用于负荷预测的机器学习算法在[12–14]中进行了研究。

本文提出了一种利用树莓派作为微处理器、多种传感器和一个应用程序实现节能家庭自动化的方法,该应用程序使用户能够控制电器,从而控制能耗。在我们的家中。本文讨论了所提系统的组成、设计和实施细节。为了监测和制定有效利用策略,负荷预测至关重要。

本文对一天内以及未来几天内的实际负荷进行了模拟。基于收集的负荷数据,采用机器学习算法实现了未来负荷预测,使用的算法包括神经网络、支持向量机(SVM)、随机森林和决策树回归(DTR)。比较了各种算法在短期负荷预测中的性能。

本文的结构如下。第2节讨论了所提系统的主要组成部分和设计框架。第3节讨论了硬件实现细节。第4节讨论了家庭自动化中的传感器与执行器。第5节讨论了使用蓝牙的家庭自动化。第6节讨论了家庭自动化系统的测试过程。第7节讨论了家庭自动化中的物联网实现。第8节讨论了用于负荷预测的机器学习。

II. 基于物联网的能源管理系统

A. 家庭能源管理

所有家用电器都可通过远程控制来帮助节约电能的使用。我们发现,由于人们的疏忽,造成了电能的浪费。节约一单位电能相当于生产了一单位电能,因此可以帮助我们节约能源,也可以减少为满足日益增长的电力需求而进行的发电设施建设成本。本文重点讨论了如何在家庭环境中有效利用电能。

B. 框图

在此系统中,树莓派3 B+被用作控制整个自动化过程的微处理器。树莓派连接传感器、执行器、服务器和移动应用,如图1所示。传感器检测光、温度等物理量、电力、运动等,并将数据传输给树莓派。树莓派接收数据后响应并控制执行器(即电器),从而实现电器的开关操作。控制方式可以是自动控制,也可以是用户手动控制。

在自动控制模式下,树莓派根据预设条件自主控制电器;而在用户手动控制模式下,用户拥有对电器的完全控制权。各个电器的能耗被测量,并通过移动应用程序显示给用户。用户可以在任何时候通过智能手机查看当前的能耗情况。传感器发送给树莓派的数据被服务器(此处为Blynk)接收并远程显示。我们可以利用机器学习算法对收集的数据进行处理,建立预测模型,告知用户家中未来时段的能耗情况,未来时段可以提前规划用电,从而优化能源使用。

III. 硬件实现

通过整合必要的传感器和执行器来构建硬件系统。在此我们使用了主动红外传感器和被动红外(PIR)传感器。

A. 使用红外传感器的自动化

如图2所示,系统包括树莓派、红外传感器、LED、直流电机和电机驱动器。

使用了两种红外传感器——一种用于检测物体,另一种用于电机驱动器。电机驱动器L293D作为执行器,红外传感器主要用于物体检测。当检测到物体时,它会向树莓派发送高电平信号。此处使用的是一种反射式红外传感器。为了演示系统对应,可假设检测物体为人,LED为照明,电机为风扇。红外发射器持续发出红外光,当前方存在物体时,红外光会被该物体反射回来。红外探测器接收到反射信号后,会向树莓派发送高电平信号。因此,当有人进入房间时,红外传感器会向树莓派发送高电平信号,树莓派随即向电机驱动器和LED发送高电平信号。高电平信号使LED发光,同时使L293D的使能引脚变为高电平,从而驱动负载,即直流电机。

当无人在房间内时,红外传感器会向树莓派发送低电平信号,树莓派随即向LED和电机驱动器L293D发送低电平信号。由于L293D的使能引脚为低电平,因此没有输出。因此,当无人在房间内时,LED和风扇都会关闭,如图3所示。

因此,该系统实现了自动化,当有人进入房间时,所有电器自动开启,当人离开房间时,所有电器自动关闭。

B. 使用PIR传感器和继电器的自动化

树莓派3 B+是所使用的微处理器。PIR传感器作为传感器,通用继电器作为执行器,如图4所示。

PIR运动传感器和继电器模块连接至树莓派。照明和风扇的直流电机连接至通用继电器模块。PIR有三个引脚:VCC、GND和输出引脚。VCC引脚连接至树莓派的5V,GND连接至GND,输出引脚连接至GPIO引脚32。在此我们使用树莓派的GPIO引脚。相应地,我们将继电器连接至树莓派。继电器是一种电子开关,通过接收来自树莓派的控制信号来控制交流电源(此处为9V电池)的通断。

我们使用通用继电器,通过连接多个继电器模块形成一个多路继电器。将多个继电器模块的控制端分别连接至树莓派的GPIO 16和18。然后将负载(照明和风扇)连接至继电器。PIR传感器用于检测红外辐射的变化,可用于检测发出红外辐射的移动人体。当PIR检测到运动时,其输出为高电平;无运动时,输出为低电平。当PIR输出为高电平时,继电器的一个通道获得高电平控制信号,风扇通电开启,此时PIR处于高电平状态。

IV. 使用蓝牙的家庭自动化

在此我们使用应用程序控制来实现自动化。通过蓝牙,我们使用Android应用控制树莓派的GPIO引脚。在树莓派和智能手机之间,我们使用HC-05(蓝牙串行通信)模块进行串行通信。树莓派3 B+内置蓝牙模块,因此无需额外的硬件。HC-05模块由ATmega16微控制器开发而来,可替代标准的RS-232串行电缆,也称为无线串行电缆。目前的智能手机上可以从Play Store下载名为“Bluetooth Terminal HC-05”的免费应用程序。该应用程序包括BluetoothTerminal、BluetoothChat和BluetoothSPP(其中BluetoothChat用于搜索可用设备并管理和控制蓝牙模块,BluetoothSPP是鼠标蓝牙模块,支持所有蓝牙模块)。此外,我们还需要用于蓝牙通信的Python库。进入Raspberry Pi配置,启用蓝牙并将其与目标智能手机配对。现在,在树莓派上编写系统代码并启动蓝牙服务。

A. 智能家居的实现

树莓派连接一个通用继电器模块(执行器),该模块连接负载(照明和风扇)。电源为9V电池。我们分别为第一路和第二路分配GPIO引脚16和18。当在智能手机中按下开灯按钮时,通过将GPIO 16设置为高电平来打开照明。当按下关灯按钮时,通过将GPIO 16设置为低电平来关闭照明。当按下开风扇按钮时,将GPIO 18设置为高电平;当按下关风扇按钮时,将GPIO 18设置为低电平,并关闭风扇。智能手机中的命令如图5所示。

基于智能手机的照明和风扇控制流程图如图6所示。

因此,通过使用智能手机与蓝牙通信,我们可以使用手机控制家中的所有家用设备。

V. 智能家居中的物联网

A. 物联网

物联网是指在物理世界发生变化时,能够感知、响应并自动采取行动的技术。
它被部署在各种环境中,无需人为干预。物联网便利了我们的生活,并已广泛应用于各个行业的日常事务中。通过物联网系统,任何物理对象都可以被远程感知、更改和控制。在物联网系统中,传感器将感知到的数据发送到控制中心,控制中心处理数据并做出决策,再向执行器发出指令作为响应。在我们的系统中,两种传感器都将感知到的输入数据发送到树莓派,树莓派再将数据显示到服务器,进而传输到应用程序,用户可以通过该应用程序控制电器的开关。

B. 云计算:Ubidots

使用服务器,我们可以远程发送和接收数据,不是在本地设备上运行程序,而是运行在数据服务器中,从而可以从任何地方访问数据。在本系统中,我们使用Blynk服务器。Blynk是一种服务器,允许我们通过互联网将设备的数据发送到云端。在Blynk仪表板中,可以可视化多个设备参数,并将传感器感知到的数据实时显示在相应参数中。用户还可以通过应用程序与Blynk服务器连接,在应用程序中查看来自云端的数据。在Blynk仪表板中,创建了多个变量,传感器感知到的数据被实时更新到这些变量中。

C. 智能手机应用程序

树莓派连接传感器,传感器从环境中实时采集数据,并将数据发送到树莓派,树莓派再将数据发送到服务器。存储在服务器中的数据可由我们的应用程序获取。因此,该应用程序显示房间的当前状态,列出所有正在使用电力的设备及其各自的耗电量,并向用户提供实时数据。因此,用户可以根据获取的信息通过应用程序控制电器的开关。因此,我们实现了基于应用程序的用户控制。从而,我们可以优化家庭的能耗,并降低家庭的电费。

VI. 机器学习

机器学习是人工智能的一个分支。它通过训练模型,使系统能够基于数据集中的模式识别出解决问题的方法。通过使用合适的算法,可以利用已有数据提升系统的性能。机器学习使计算机能够在无需显式编程的情况下进行决策。机器可以识别、预测并采取行动。在智能电网中,要预测家庭在未来某一时刻的电力消耗,可以利用历史数据来实现。

机器学习的优点包括:
- 监督学习可以应用过去学到的知识,并利用它来预测未来事件。
- 无监督学习能够基于识别数据集中的潜在模式并提取有用信息。
- 强化学习是一种基于试错的系统,可最大化长期收益。它通过迭代过程学习并预测未来事件。

A. 决策树算法

这是一种树状结构算法,包含根节点(即最基本的判断节点)、决策节点(分支代表不同决策路径)和叶节点(最终结果)。树可分为分类树和回归树。当输出变量为连续数据时,使用回归树;当需要将输出变量分类时,使用分类树。

当输出为连续值且问题涉及多个输入变量时,决策树回归表现尤为出色。其基本思想是采用树状结构进行训练,用于预测数据并输出连续结果。叶节点的值即为输出结果,可在树结构中追溯得出。对于非线性数据,决策树回归能够提供高度精确的结果。它能有效处理数据的非线性特性,从而实现准确预测。相比线性回归,决策树回归在处理非线性数据时表现更优。然而,决策树回归的主要缺点是容易过拟合。因此,当输入数据波动较大时,更倾向于使用随机森林或Boosting方法。

B. 支持向量回归

该方法基于支持向量机(SVM),将数据映射到高维空间,通过寻找最优超平面来预测连续值。我们考虑决策边界内的样本点,并最大化边界以获得准确的预测结果。

C. K近邻算法

该方法属于监督学习,通过衡量新数据与已有数据之间的相似性,并将新数据归类到与其最相似的类别中。新数据与训练数据之间的距离可通过欧氏距离、曼哈顿距离或闵可夫斯基距离等方式进行度量。

D. 随机森林回归

这是一种集成技术(通过组合多个决策树算法来预测输出),能提供更精确的预测结果。它采用一种称为“bagging”的技术(即随机抽样,评估并提高输出的准确率)。随机森林,又称随机决策森林,是一种通过在训练过程中构建多个决策树来进行分类和回归的算法,最终输出为所有树预测结果的平均值,从而得到连续输出,因此适用于解决回归问题。

E. 机器学习算法实现

首先在系统中安装所需软件包“pip”,并使用“pip”命令创建一个新的虚拟环境。在此环境中安装TensorFlow,并通过“pip install”安装所需的库,如scikit-learn、pandas等。随后使用Jupyter Notebook作为代码编辑器,利用scikit-learn进行编程。

Jupyter Notebook 是用于 Jupyter(数据分析编程环境)、Python 和 R 的代码编辑器。实现步骤包括:创建新笔记本、编写代码、运行所有必要文本。各算法的参数可调整以提高预测准确性。家用电器负荷被用于负荷预测。一天(24小时)的负荷使用数据被采集,因此将该日的负荷用于未来一天的预测,并将其作为训练数据。负荷使用趋势进一步扩展以计算成本和节省潜力。通过多种智能控制,消费者可以预测当前用电费率并了解其使用情况。这使得消费者能够可持续地使用能源并优化用电。在收集的数据中,80%用于训练,20%用于测试。

所有算法均被实际实现,两种算法的准确率如表1所示。

使用的算法 准确率
决策树回归 99%
支持向量回归 98.51%
KNN 96.81%
随机森林回归 73.25%

示意图1

决策树算法在所有候选算法中具有最高的准确率。决策树算法的输出如图8所示。

示意图2

此处展示了使用决策树算法对数据集进行最优分离后得到的预测结果。考虑了温度、湿度和光照强度以提高计算的准确性。环境的输入值为0.17,温度为-0.10,光照强度为0.12。图中显示了这些变量随时间变化的趋势。准确率是评估预测性能的关键指标之一,反映了输出变量与预测变量之间的一致性,以便在预测模型中尽可能准确地反映真实数据。各种算法的准确率通过测量预测值与实际值之间的误差百分比得出。因此,准确率越高,说明该算法的系统性能越好。

VII. 结论

本文讨论了一种基于物联网的家庭自动化系统,该系统能够有效监控家庭中的能耗,并实现节能。节约能源等同于生产能源。我们的设计具有实用性、可再生性和高效性,通过基于物联网的电器监控与控制来节约能源。采用机器学习算法对电力使用进行精确预测,以实现电力的优化使用。由于负荷数据具有非线性特征,因此采用了KNN(K近邻)、随机森林、支持向量回归和决策树回归算法,以提高负荷预测的准确率。未来可引入更多变量,如天气状况、家庭人数等,进一步提升预测精度。我们的系统不仅有助于减少能源消耗,还能节约能源以备将来使用,从而在资源日益紧张的未来发挥作用,推动现有资源体系下的可持续发展。我们还可以进一步扩展系统,识别一天中用电高峰时段,提出相应的解决方案,在高峰时段减少和节约用电,确保在各种设备和应用场景中实现资源的最优利用。

更多推荐