王 华
(河南工业贸易职业学院信息工程学院,河南 郑州 450012)
随着生活水平的不断提高,人们对日常生活自动化的需求不断增加,因而需要找到一种可以在所有类型家庭中实施的,基于物联网设备管理的可行性方案[1]。本文提出了一种节能的家庭自动化系统解决方案,以实现对日常生活中基本操作的自动化控制。该系统利用动态地址、各种传感器和机器学习算法等技术,实现系统功能优化。同时考虑到房屋安全方面的问题,该系统通过基于云的交互式网络界面即时地为用户提供监测和控制服务。以下将从硬件、软件和云界面等方面进行详细描述。
本文提出的智能家居自动化系统分为3 个主要部分:硬件接口模块、软件通信模块和一个基于云的用户界面模块。该系统的中心是一个Arduino Mega 2560 微控制器。该微控制器连接设备和传感器之间的所有通信,以实现系统的自动化功能。该系统可提供各种不同的功能,如温度控制、使用风扇/空调、自动照明、使用运动传感器等,以及多种安全功能,如激光线、烟雾和火灾探测和使用NFC 的用户认证。所有功能都可以使用一个专门的基于云的网络界面手动控制。用户可以使用智能手机或其他设备在本地或远程访问该系统,且远程访问基于云的软件系统可以不是静态IP,这点是非常方便的。软件系统和硬件模块的整合,使用户不需要具备专业知识就能在系统中添加任何设备。整个系统通过太阳能供电,可再生能源的使用有效降低了建筑能耗。目前家庭自动化系统已经成为一种必要的需求,用户希望通过智能手机或者其他设备动动手指就实现对设备的控制,以获得智能化、安全可靠、易操作的体验[1]。
现在多数系统都依托在Arduino 模块上,这对系统的全面发展造成了限制。通常情况下,基于Arduino 模块的系统与互联网连接,需要一个静态IP 地址,而目前多数家庭使用的是动态IP 地址,这就给系统的使用造成了很大的困难。
为了解决现有系统的问题,本文提出了一种基于Arduino Mega 2560 微控制器的安全智能家居自动化系统。由于使用了微控制器,该系统可以通过无线网络和蓝牙实现各个模块的单独化控制与管理,在云控制端实现整体化设置,即使没有连线也能独立运行。该系统还可根据使用情况进行自动控制。系统中不同功能的传感器用以完成相应的功能,在房屋入口处安装一个NFC 读卡器用来验证用户进入房屋的认证。如果有人在屋内,除了安全系统之外,整个系统都是关闭的。房屋内各房间的照明由PIR 传感器的运动检测来控制,当PIR 运动传感器检测到房间内有运动物体时就会打开相应房间的灯;检测到房间内没有运动物体时,灯光就会自动关闭。温度传感器用来测量环境温度、控制风扇和空调的运行,以保持温度在特定范围内。LDR 传感器检测进入房屋的光线,并控制窗帘的开合。如果雨水传感器检测到有降雨发生,系统就会控制可伸缩屋顶覆盖阳台或者露台,以防止雨水进入。车库门的闭合通过一个压力传感器来检测,当汽车出现时车库门打开,并在设定的时间段后自动关闭。
基于机器学习原理的一个重要安全功能是人脸识别。实现这个功能需要使用K-邻近(KNN)算法。该算法和它支持的功能被上传到Raspberry Pi微控制器,网络摄像头连接在微控制器上,用于捕捉人脸图像。当用户抵达房门时,按下按钮激活面部识别系统,在获得认证与授权后方可进入房屋。网络摄像头拍摄的图像被加载到Raspberry Pi中,并通过Haar 级联分类器进行预处理以提取相关面部特征,然后设置好的KNN 对图像进行处理,并给出一个二进制的输出,用于验证或拒绝认证用户。
此外,还可以在房屋所有可能的入口处使用激光线来防止盗窃行为发生。当房屋设置为安全模式或里面没人时,分布在各处的激光器就会开启,任何一个激光器被触发都会响起警报,并通过软件和电话通知房主或警察。除了激光线,也可以使用安装在入口处的PIR 运动传感器检测可疑运动,以提高安全性。该系统还有一个烟雾/火灾探测器,如有意外情况,将自动通知房主和消防部门。值得一提的是,该系统利用太阳能供电,不会增加房屋的用电量;在停电的情况下,还有一个备用电池组可用;蓄电池可以使用太阳能以及外部电源进行充电,以防止电力故障[2]。
Arduino 是一个开源的微控制器,可用来开发交互式平台,从各种开关或传感器获取数据,并控制各种灯、电机和其他部件的输出。Arduino 可以是独立的,也可以与运行在电脑上的软件进行通信。本系统中使用的所有传感器都与Arduino 进行了连接,这些传感器向Arduino 提供特定类型的输入,Arduino 在接收到这些输入后,通过Arduino 编程执行某些命令。
Raspberry Pi 3 Model B 是第三代Raspberry Pi,是一个和信用卡差不多大小的单板计算机,可用于许多应用。Raspberry Pi 可以实现无线局域网和蓝牙连接,这使它成为大多数项目设计的理想选择。
1)NFC 模块。NFC 指的是近场通信,用于诸如智能手机或NFC 卡等设备建立无线通信。这是一种短距离的无线通信,可以在设备之间进行非接触点的数据传输。该系统在SPI 模式下使用该模块,它安装在入口处供用户验证身份,用户只需将卡靠近NFC 模块,就可得到认证。
2)PIR 传感器。PIR 传感器内有一个热释电传感器,被一个圆顶形的菲涅尔透镜所覆盖。传感器的延迟和灵敏度可以通过传感器底部的电位器进行调节。当探测到人体出现在传感器范围内时输出“高”,否则输出“低”。这一原理在系统中被用来检测人是否在房间内,以打开/关闭各个房间的灯,达到节省能源的目的。
3)温度传感器。LM35 传感器的输出电压与温度成正比,用于测量房间的温度,并控制风扇/空调的运行,以确保房间温度保持在指定范围内。当环境温度超过阈值时,风扇/空调被打开;当温度恢复到设定温度时,风扇/空调被关闭。该系统仅在需要时驱动这些设备,有助于节省能源。
4)LDR 传感器。LDR 传感器用于检测或测量周围环境的光强度。该传感器在有光的情况下输出“高”,在没光的情况下输出“低”。传感器上的电位器用来调整传感器的灵敏度,以精确测量光强度,控制窗帘的状态(关闭/打开),优化室内光线强弱。通过RTC 可设置时间自动控制窗帘状态,以获得舒适的照明[3]。
5)压力传感器。压力传感器用于测量施加在传感器上的力,力越大,阻力越小。该系统用来确定是否有汽车接近车库,当有车接近时,系统会自动打开车库门,让用户进入并停放汽车,并在设定的时间段后自动关闭车库门。
6)激光模块和接收器。KY-008 激光模块用于发射激光束,检测器感应到激光的存在并给出数字输出。该模块用于检测激光束的跳动,以进行盗窃检测并发出警报。
该系统软件分为两个部分,第一部分是运行在Arduino 板上的软件代码,第二部分是基于云的应用平台。Arduino Studio 用于实现系统的逻辑和管理它们的运行,代码被上传到Arduino 板上,该板充当传感器、设备和托管在云端的用户界面之间的协调人。用户界面托管在云上,所有的自动化功能都被单独输入到Arduino 板上,这些功能包括自动照明、温度控制和安全功能。
一个ESP32 Wi-Fi 模块被连接到Arduino,以便与云平台连接。ESP32 模块承载了一个本地网络服务器,它将作为一个API(应用编程接口)接到云界面。该API 包含一些选项,用于手动覆盖每个功能,也可改变涉及安全的设置。本地网络服务器将定期ping 云平台以监听任何远程请求。云平台是一个网络应用,可使用个人电脑、智能电话等智能设备远程和本地操作、访问整个系统;访问云平台需要使用用户名和密码来验证,系统所有者可以添加或删除访问用户和NFC 卡授权。当盗窃检测系统激活时,如果检测到任何入侵警报会被触发,云平台将首先得到通知,然后按照所有者的指示执行必要行动。此外,还提供了添加或删除面部识别功能,可以将新的信息上传到RaspBerry Pi 设备数据库,作为用户验证的有效凭证[4]。
该系统借助物联网设备和传感器建立了完整的家庭自动化系统,如温度传感器(LM35),压力传感器,LDR,PIR,NFC/RFID 阅读器,烟雾/火灾传感器,雨水传感器等。这些传感器与Arduino Mega 2560 微控制器连接,并根据它们各自不同的功能被安装在合适的位置。
NFC/RFID 模块安装在房屋入口处,以确保只有被授权的用户才可以进入。NFC 芯片中包含一个特定的十六进制值,当该十六进制值与用户卡上的值相吻合,就能获得授权允许进入房屋。为了增强安全性,在入口处设置了人脸识别系统;该人脸识别系统基于Raspberry Pi 使用哈尔级联算法来检测人的面孔,如果人脸匹配,Arduino 就会打开房门;为实现人脸识别功能,还需要将一个摄像头连接到Raspberry Pi上,将捕捉到的数据与数据库中的人脸进行匹配、识别。在车库门前适当位置安装了压力传感器,当力的参数满足时,车库门将自动打开。温度传感器用于检测周围温度,如果温度超过了特定阈值,风扇将自动打开。烟雾/火灾传感器用来检测火情,在火灾发生时可立即通知房主;这个装置大多安装在厨房,因为厨房是最有可能发生火灾或类似火灾事件的地方。另外,光传感器可以感知进入房屋的光强度,如果光强度低于设定的阈值,房间窗帘会自动打开,使光线进入。雨水传感器检测到降雨后,可自动开启雨蓬以保护免受雨淋。PIR 运动传感器有两个作用,一个是安装在房间的适当位置实现自动照明,当它检测到有运动物体时将自动开启照明;二是安装在房屋入口处检测房屋入侵情况,防止盗窃发生。此外,为了增加安全性,在所有可能的地方使用激光传感器模块进行监测,并设置报警器,任何企图破坏房屋的行为都能被轻易发现[5]。
每一个设备都与Arduino 微控制器连接,并通过跳线将其相应的数字或引脚连接起来。Arduino板连接到一个Wi-Fi模块(ESP32)上,它将接收来自基于云的交互式网络界面,用于手动控制所有硬件。
太阳能是一种可再生能源,该系统使用太阳能电池板为Arduino 系统供电。太阳能电池板可作为锂离子电池的充电器和一个直流转换器,为Arduino 提供所需的5 V 电压,并有连接器用于电池输入、输出。一个迷你USB 端口和两个太阳能电池板连接器(6 V 和12 V)用于给电池充电,迷你USB 接口可在需要时用任何外部电源为电池充电;一个太阳能电池板由6 V 电池组成,可以积累足够的能量给电池充电。6 V 的太阳能电池板与太阳能板上相应的6 V 输入连接器连接,通过这样的设置,并有足够的阳光照射,太阳能电池板能够为电池充电。
本文设计并实施了一种低成本、高能效的智能家居自动化系统,该系统使用Arduino 和基于云的用户界面。基于云的网络服务器进行远程访问,本地网络服务器作为API,使用Wi-Fi 802.11n 标准作为通信媒介,任何有能力访问互联网的智能设备都可以访问用户界面。系统利用多种传感器提供用户认证,提高了使用的安全性。