基于开源硬件的智能家居系统的设计与实现
2021-04-20冀毅星唐锦萍
冀毅星,毕 波,唐锦萍
(1.东北石油大学数学与统计学院,黑龙江大庆 163318;2.黑龙江大学数据科学与技术学院,黑龙江哈尔滨 150080)
随着社会的进步,人们的生活质量也不断提高,越来越多的人开始追求更高档的生活,智能家居作为现代智能化方向发展的重要组成部分,也逐渐在人们的生活环境产生更重要的影响。与普通住宅相比,智能家居不仅可以改善家庭生活环境,提高家庭生活的舒适性与便利性,还可以实现远程监控家中各种设备的状态。智能家居作为物联网技术的主要应用之一,在给人们生活带来便利的同时也产生了功耗、成本以及安全性等问题。该文主要研究基于开源硬件的智能家居控制系统,以Arduino UNO开发板为核心,结合具体需求搭建各部分电路,通过开源硬件嵌入式系统对智能家居中设备进行控制,具有方便、智能、低成本等特点。提高了家居的智能化水平,使操作更加及时、便捷、高效。
1 系统整体设计
该项目设计的智能家居系统主要包括照明系统、控制系统以及安防系统3 个子系统。
照明系统主要由Arduino 控制器、无线设备、红外发生装置以及传感器等组成,其主要作用是将所有控制开关一体化,由传感器红外装置感应室内情景变化,通过无线设备反馈到主控制器,主控制系统给出相应的指令反馈给子系统,令其做出相应的调整。
控制系统主要由esp8266WiFi 模块、无线设备、Arduino控制器、传感器、相应的电机与控制电路组成,其主要作用是由esp8266WiFi 模块进行联网,通过传感器检测室内开关各类家电状态进行实时信息反馈,接收由控制系统发送的命令,最后把执行结果返回。
安防及监测系统主要由Arduino 控制器、无线设备、传感器、监控设备以及相应的信号电路组成,其主要作用是检测室内温度、湿度、空气质量等变化并给出相应的指令,而且还能检测室内火情、水溢、有害气体泄漏、非法人员闯入等安全问题并及时发出警报。
对于以上的各个子系统的功能,该文主要采用了以Arduino UNO为控制核心,基于ZigBee协议的XBee模块为无线传输模块[1-2],并采用了基于WiFi的esp8266模块作为远程控制模块,智能家居系统具体结构如图1所示。
2 系统硬件设计
该文研究的基于Arduino 开发板的智能家居系统硬件部分主要包括主控制系统、照明系统、控制系统、安防系统4 个子系统[3-4]。
图1 智能家居系统具体结构
2.1 照明系统
智能照明系统的主要功能在于将所有的控制开关一体化,不再让人在想调整灯的状态时需要走到灯的开关处,在需要进行调整时只需要在手机上进行开关操作即可,实现了照明设备的远程控制。
照明系统中包含的硬件设备主要有Arduino UNO 开发板、继电器、人体红外线电子感应器,超声波传感器等。系统具体的电路设计如图2、3 所示。
图2 独立小灯的线路图
图2 设计的是照明系统在无人控制的状态下根据家居内部环境的变化按照设定的格式自动对照明设备做出调整。照明系统处于无人控制状态时也可以进行人为控制且人为指令优先于设定指令。
图3 人控小灯线路图
图3 设计的是在有人状态下照明系统通过一系列传感器感应人的活动状况从而对照明设备状态进行调整,此外人也可以通过手机端发出指令对照明设备状态进行调整。
2.2 控制系统
控制系统通过esp8266WiFi 模块进行联网。在同一局域网下,可以通过手机或电脑向esp8266 模块发送指令,esp8266 接收到指令后,可以传给Arduino控制板,进而对指令进行相应的判断,以此控制接入了Arduino控制器的家电。同时也可以通过各传感器给Arduino 控制器的反馈来实现Arduino 控制家电。控制系统中主要用到的硬件设备有Arduino UNO 开发板、esp8266 开发板、步进电机、温湿度传感器以及电位器等。其中esp8266开发板是WiFi串口模块,功能可简要概括为:从WiFi 接收到数据,串口输出;从串口接收数据,WiFi输出数据。实物图如图4所示。
图4 esp8266模块
控制系统利用esp8266 模块结合Arduino 开发板使家居中家电设备联网通过手机APP 实现家电的远程控制,该系统中主要实现的可控家电有智能窗帘、智能空调等[5-9]。其中智能窗帘主要是利用红外遥控设备、步进电机、传感器实现窗帘的定时开合以及遥控开合电路设计,如图5 所示。
图5 窗帘结构及电路连接结构图
智能空调利用温度传感器感应室内温度变化进行模式的自动切换以维持室内温度稳定,并且可以进行远程控制,电路设计如图6 所示。
图6 智能空调的连接结构图
2.3 安防监控系统
安防监控系统主要实现了火灾报警、室内实时监控等功能,其中火灾报警装置主要是利用火焰报警器和蜂鸣器,组成火灾报警装置,能够在家里产生明火的时候迅速报警,提醒居住者处理火源[10-12]。电路设计如图7所示。
图7 火灾报警系统电路图
实时监控功能利用基于TTL 通信接口的摄像头模块通过定时拍照并上传到连接在Arduino 控制板上的SD 卡上,人可以通过SD 卡实时观看室内摄 像[13-14]。电路设计如图8 所示。
图8 实时监控系统电路图
3 系统软件设计
根据系统的整体设计方案,系统在开始运行后由远程控制端向Arduino 发送数据,主控制端的Arduino 接收指令后进行处理通过XBee 向各个子系统发送指令,各个子系统通过XBee 终端接收控制信号处理后传给Arduino UNO,从而使Arduino UNO 驱动电路使各个装置按照指令运行,同时每个装置也可将运行状态实时反馈到远程控制端。整个系统软件流程图如图9 所示。
图9 系统软件流程图
3.1 照明系统软件设计
该部分程序主要实现通过红外、超声波、光敏等传感器检测室内光线以及人员活动情况从而对室内照明设备工作状态进行调整,具体算法流程如图10所示。
3.2 控制系统
1)智能窗帘
图10 智能照明系统执行流程图
通过esp8266WiFi 模块进行联网,通过网络获取当地区时间,进而反馈给Arduino 控制板。Arduino板判断获取的时间和设定的时间是否相等,如果相等,Arduino 板发送指令控制步进电机来进行开或关窗帘的操作。同时,将手机连入该IP 地址,进而可以通过向esp8266 板发送操作指令来控制步进电机转的圈数以实现窗帘的开合程度。红外和电位器作用机制是直接向Arduino 发送信息来控制窗帘。流程图如图11 所示。
2)智能空调
通过温度传感器模块获取环境温度,通过环境的温度与事先设定的温度进行比较,来控制红外发射模块向空调发射信号,来控制空调的工作模式。通过esp8266WiFi 模块进行联网,手机连入该IP 地址,可以实现对空调的远程控制,并且查看空调的工作状态。流程图如图12 所示。
3.3 安防监控系统
1)火灾报警
图11 智能窗帘运行流程图
图12 智能空调运行流程图
将火焰传感器与Arduino 开发板模拟信号输入接口连接,蜂鸣器与输出信号接口连接,Arduino 通过串口读取火焰传感器模拟值,有火焰靠近和无火焰时火焰传感器的模拟值分别为600 左右和50 左右,因此先存储一个没有火焰时模拟口的模拟值i。接着不断循环读取模拟口模拟值j,同存储的值做差值k=j-i,差值k与500 做比较。差值k如果大于500,则判断有火焰靠近,蜂鸣器发出声音报警;如果差值小于500,则蜂鸣器不响。流程图如图13所示。
图13 火焰报警器执行流程图
2)实时监控
摄像头与Arduino 连接,程序开始运行前首先检测摄像头、SD 卡是否正常工作,当程序检测到SD卡和摄像头都已经准备就绪时,开始执行拍照程序,该拍照程序每次拍照间隔10 ms。流程图如图14所示。
4 结束语
图14 实时监控系统执行流程图
文中设计的智能家居系统主要是以开源硬件Arduino UNO 为核心结合基于ZigBee 协议的无线通信设备XBee 模块、基于WiFi 技术的esp8266 模块以及一系列相关的配件构成的,该系统以Arduino 开发板以及XBee 模块构成了主控制系统,另外包括智能照明、智能控制和智能安防3 个子系统,实现了照明智能化、家电控制智能化、火灾报警以及实时监控等功能[15-16]。此外,采用ZigBee 无线通信技术[17-19]实现了低功耗、低成本、安全性以及可靠性等目标。