面向基于树莓派的智能家居LED控制的响应式Web服务。一种初步方法
摘要
如今,技术的不断发展使人们能够获取以前无法获得的信息。物联网(IoT)是信息技术处理的一个新阶段,它使人们能够了解自身所处的环境,并掌握影响其生活的各种变量。其中一个变量就是处理住宅内部发生的事件。本文提出了一项大学项目,旨在通过网页技术和树莓派实现对不同LED设备的控制,作为构建智能家居系统的初步尝试,该系统支持模块扩展,可成为实施智能家居的一项切实可行的替代方案。我们的方案为广大家庭用户提供了控制基于LED技术的家庭应用程序的智能家居环境替代选择。此外,我们还对学生进行了测试,以获取最初未考虑到的新指导方向;通过实际用户测试,我们发现了与本研究相关的重要非功能性特性。
关键词 — 智能家居,物联网,树莓派,LED技术
一、引言
通过技术实现工具、流程和元素的自动化是人类需要实现的目标之一,这促成了物联网(IoT)这一概念的诞生。广义而言,物联网指的是配备了智能[14]的日常物品之间的相互连接。物联网日益加强了物体之间以及物体与人类之间的交互。得益于技术的巨大进步,物体与人类之间的通信催生了大量新的应用程序,有望提升生活质量[9][16]。
其他作者如[14]提到:“......任何对象都将很快拥有唯一的识别方式,并且可以被寻址,从而使每个对象都能连接。互联网将演变为物联网。通信形式将从人与人、人与物扩展到物与物(也称为机器对机器通信)。这将带来一个全新的普适计算与通信时代,并极大地改变人们的生活⋯⋯”。从上述思考中,物联网衍生出了许多新的研究领域,这些领域被转化为日常任务,例如智能家居。
这一新概念涉及住宅中具有照明技术、传感器和电子设备的元素,这些元素可实现远程控制[2]。这引发了一个想法:我们发现了人们在需要远程控制家中某些元素(如家庭照明)时可能面临的日常问题。因此,在本文中,我们将介绍作为大学课程最终成果所完成的项目。该项目旨在初步构建一种工具,以实现并简化通过网页对家庭照明网络的访问,该网页可从同一网络中的任何设备进行访问,从而允许通过计算机、智能手机、平板电脑甚至游戏机来控制灯光(在第一阶段,我们使用了LED灯)。为完成此项目,我们进行了文献系统映射,从中获得了一些关于利用智能设备控制家庭照明的方案替代方法,但这些研究在实践中并未被视为真正可行的替代方案[2],[5],[10],,原因是缺乏与所采用技术相关的时间响应信息(基于电子邮件的自动化[8]和基于短信的自动化[3])以及资金预算方面的信息。因此,我们在综述中观察到的这一缺失促使我们开发一个初步原型,利用开源技术操控住宅照明网络,并提供一种低成本的解决方案。
本文的结构如下:第二节将描述我们工作的背景,然后在第三节中,我们将说明如何开展并推进我们的方案,并详细描述一次用户测试。最后在第四节中,我们将讨论从本次实践中得出的结论,并表达我们对未来工作的想法。
第二节 背景
目前,研究显示全球设备数量是人口数量的三倍[4]。物联网的概念基于连接到互联网的工具、流程和对象,以便能够相互沟通、学习和交互,从而实现无处不在、互通和互联的感觉。这些技术使得信息和流程能够通过云技术进行传输,推动智慧城市[6]或超互联城市概念的实现。这类城市使所有信息都可用且透明,有助于提升居民生活质量。例如,可轻松访问城市地图数据、公共交通系统的运行频率,以及通过短信接收可能的通知,或查询各项服务的状态。
根据Gartner[7], 2015年的数据,全球约有3亿个智能家居,且预计在未来几年这一数字还将继续增长。如上所述,这些新挑战促使我们研究并提出一种针对智能家居的经济、快速且高效的解决方案。在本文中,我们将聚焦于一个具体问题:当人们由于某种原因忘记关闭家庭灯光时所面临的问题。在此背景下,我们的挑战是利用大多数人日常使用的设备,提供一种解决家庭灯光问题的方案。
为了解决该问题,微型计算机的概念成为了一种解决方案[6]。目前,存在许多这类微型计算机及其相关变体,但其中最著名、且因其理念和社区而广受认可的是树莓派[8](见图1)。
鉴于其众多的应用,该微型计算机将被用于我们的方案中。接下来,我们将描述将在本工作中使用的树莓派 B型版本的最重要技术方面[11]。
- 700MHz ARM11 核心
- 512MiB 内存
- 2个USB端口
- 26GPIO 引脚
- 1HDMI 接口
- 1 10/100 以太网接口
- 3.5毫米音频输出插孔,RCA输出
- Micro SD卡插槽
- VideoCore IV 3D图形核心
上述数据是树莓派版本所具备的特性,使得我们的项目能够满足低成本解决方案的条件,因为所有组件均由该技术提供。
III. 提案
在本节中,我们将描述构建原型的步骤。此外,我们还将详细介绍我们与一组测试了我们解决方案的人员所进行的实验,并阐述有关可扩展性、完整性和安全性的最重要反馈。我们的方案基于使用免费硬件技术,具体包括:
- 树莓派B型
- 线缆
- LED
从软件的角度来看,使用了以下技术:
- Lighttpd 作为网页服务器,它是一个异步服务器,这意味着在硬件环境有限的情况下,其性能优于 Apache2 等基于进程的服务器,因为它具有内存占用小的优势。
- PHP 5.3
- PostgreSQL 8.3:支持 Lighttpd 的关系型数据库,且拥有庞大的社区。
- Raspbian:由树莓派基金会官方支持的基于Debian的发行版。
使用PostgreSQL的目的是获得更好的可扩展性,因为它允许将多个Raspberry Pi或任何代理连接到中央数据库,遵循模块化模型且彼此之间相互独立。总结我们的工作,通过网页控制房屋LED灯的 proposed 架构如图2所示。
接下来,我们将描述图2中所示的模型,总结需要考虑的最重要要点:
- 手机和台式机:显示网络中可以访问网页服务器的不同设备。
- 路由器:负责维护家庭(无线或有线)网络的对讲机。
- 树莓派:负责互连设备的网页服务器,用户可通过网页界面访问,该界面可在网络内的任何设备上查看。
- LED:通过树莓派及其Web界面进行控制的硬件。
架构流程如图3所示。该流程采用树莓派作为中央单元,实现对终端、设备和潜在的交换代理的控制,以促进相互通信并协调信息处理。
安装过程的描述如下:
1) 按照官方手册[11]中的步骤在树莓派上安装Raspbian。
2) 然后,我们需要开始安装和配置Lighttpd网页服务器和PHP。
3) 软件配置的最后一步是按照官方手册[12]安装PostgreSQL数据库。
4) 最后,在所有软件安装完成后,我们必须将GPIO(通用输入输出)接口与LED连接起来(见图4)。
5) 为了用较少的GPIO引脚控制多个LED,我们采用了称为LED矩阵的方法,也称为多路复用[1]。
6) 在将LED矩阵连接到树莓派GPIO后,我们开始测试,将树莓派连接到局域网。
7) 然后使用智能手机访问树莓派的IP地址(互联网协议)。这一步骤中的主要问题是控制用于开关LED的按钮访问权限,因为如果多个已登录用户同时点击同一个控制按钮,将触发竞态条件,导致网站状态错误。该问题通过使用一个互斥锁得以解决,因此当某个用户点击按钮改变LED状态时,该操作会被锁定。这样,当其他用户同时尝试点击同一按钮时,系统会检查该请求的状态,并通知用户无法更改状态,或提示用户并取消操作。
作为本项目的结果,我们为系统升级奠定了坚实的基础,可添加更多设备,如传感器、电机、安全性以及任何可以通过GPIO、无线、蓝牙或系统支持的任何协议与树莓派通信的设备。此外,我们还可以使用继电器设备(参见图5)操作家中的任何设备。
在这次实践中,我们认识到在这种项目中应考虑非功能性特征,例如安全性。在本次初步尝试中,已考虑了基本的安全需求。为了保护服务器并防止任何未授权的访问,我们决定使用用户名/密码配对访问控制[15]。该数据对存储在数据库中,用于密码哈希的算法是 Bcrypt。Bcrypt 是一种跨平台文件加密工具。加密文件可在所有支持的操作系统和处理器之间移植[13]。
IV. 结论
互联网和物联网的不断发展使我们能够创建新的解决方案来解决人们面临的常见问题。互联网和计算机技术的获取已成为一种切实可行的选择;如果说最初几乎无法接触这些技术,那么如今对这些技术的访问已变得极为普遍。
此外,诸如Arduino和树莓派等开源硬件项目的发展,使得实现智能家居解决方案的成本更加低廉。在本文中,我们描述了我们的初步尝试,该方案包含一个Web应用,任何用户都可以使用它来控制家中的LED照明,以满足其需求。本项目的主要特点是:利用现有技术和硬件环境,将该解决方案转化为低成本选择。此外,我们还进行了用户测试,结果揭示了一些有趣的改进方向,可用于优化我们的应用程序。可扩展性和安全性等概念是我们在初期未予考虑的方面。我们注意到,与解决方案测试相关的证据为项目的下一次迭代开辟了新的研究视角。
A. 未来工作
由于我们的应用程序表现出的良好性能,我们未来的工作将基于:
1)构建一个更强大的平台,将代码发布到GitHub仓库或其他代码仓库;
2)创建一个强大的API,以便将其集成到更复杂的系统中,使用诸如Arduino、学习算法、活动模式等硬件;
3)检查伺服电机和门、电子锁、视频监控摄像头或任何能够通过网络或GPIO端口通信的电子设备,以创建一个具有统一中心平台的真实智能家居。
2万+

被折叠的 条评论
为什么被折叠?



