孙宇舸,叶 柠,匡 涌
(东北大学 信息科学与工程学院,沈阳 110819)
绿色、环保、节能是当前社会的重要理念,智能家居为家庭设备提供的智能控制方案,在为用户提供安全快捷的家居服务,满足人们对安全、舒适、便利的生活需求的同时,也更为高效、节能与环保。在社会城镇化、数据化、信息化等外界环境的驱使下,智能家居将会取代传统的家居生活,成为一种更具有便利性、艺术性、舒适性的环保节能的家庭生活方式。
目前国外流行的智能家居品牌主要为亚马逊Alexa、苹果HomeKit、三星SmartThings、Control4等。
随着国内智能家居的快速发展,国内出现了许多成熟的智能家居生态系统,如海尔U+,长虹,小米智家等[1]。
本文基于现代生活对智能家居的需求,采用低成本的Arduino Uno开发板作为主控制器,选用多种传感器实现家居环境信息的采集,通过显示器、舵机、继电器等作为执行单元,实现信息显示及门禁、窗帘和家电等设备的控制。借助ESP8266 WⅠFⅠ模块与巴法云物联网平台实现数据交互,通过手机APP应用客户端实现了智能家居的远程控制。经过实际测试,系统功能完善,运行良好。
本文采用Arduino Uno作为开发平台,综合运用多种传感器技术和物联网平台,采集的光照、温度、湿度、烟雾及人体红外等诸多家居环境信息,控制舵机、继电器、LED灯等执行模块,实现了智能门禁、智能灯光、智能窗帘、环境温湿度监测与显示、烟雾监测与报警以及家电定时启动等实用功能。通过当WⅠFⅠ模块连接互联网,与巴法云物联网云服务器进行数据交互,同时开发手机APP应用客户端,实现对家居环境信息远程监测以及家居设备的远程控制。系统的总体设计方案如图1所示。
图1 智能家居总体设计方案
基于物联网的智能家居控制系统的实现包括硬件系统的实现,软件功能的实现及手机APP的开发。
本文使用的主控制器为Arduino Uno开发板,其核心处理器是ATmega328P芯片。ATmega328P是一款基于AVR增强RⅠSC架构的低功耗CMOS 8位微控制器,由此产生的架构能有效的运行代码,相比传统的CⅠSC微控制器,运算速度更快,完全可以满足智能家居设计功能需求[2]。
本文的智能家居硬件系统包括环境信息检测与显示模块、智能窗帘模块、智能灯光模块、家电控制模块、烟雾检测与报警模块、智能门禁模块,以及无线控制模块。
环境信息检测与显示模块通过DHT11温湿度传感器和OLED显示屏实现。单总线通信的DHT11温湿度传感器可以实时采集家居环境的温湿度信息,通过集成驱动芯片SSD1306的OLED显示屏进行实时显示。
智能窗帘模块通过光敏电阻传感器[3]和舵机实现。光敏电阻采集环境光照信息,通过设定光照阈值,控制舵机转动方向,实现窗帘的自动开关。
智能灯光模块利用HC-SR505人体红外传感器和光敏电阻传感器采集人及光线强弱的信息,基于设定的阈值,实现灯光的智能控制。
家电控制模块通过DS1302时钟模块、继电器及OLED显示屏实现。校准时钟模块初始时间,让其进行准确计时,家电启动时间与时长由手机APP客户端进行设定,OLED显示屏会显示日期和时间信息。当时钟模块计时到设定时间范围内时,控制继电器启动,实现家电定时启动控制。
烟雾检测与报警模块采用MQ-2烟雾传感器检测家居中烟雾的含量,当其含量达到警戒线时,警告信息会借助物联网平台发送给用户[4]。
智能门禁模块通过使用MF RC522射频识别模块和180°舵机实现。射频识别模块读取ⅠC的密钥信息,判断ⅠC卡是否为正确的门禁卡,如果是正确的门禁卡则控制伺服电机将门打开,否则伺服电机无响应。
无线控制模块基于ESP8266 WⅠFⅠ模块和物联网平台[5],利用手机端APP手机发送功能模块的控制指令至物联网平台,WⅠFⅠ模块通过物联网平台协议接收控制指令,通过串行数据端口传送给Arduino开发板,根据控制指令的逻辑判断结果,控制相应的功能模块执行对应的操作。
各个功能模块传感器与Arduino Uno开发板的引脚连接见表1。
表1 传感器控制引脚连接
基于上述电路设计以及引脚关系,搭建的智能家居系统的实际硬件电路如图2所示。
图2 智能家居系统硬件电路搭建
智能家居软件控制系统分为远程控制和自动控制2种模式,通过手机APP客户端进行切换[6-7]。
自动控制模式:Arduino Uno开发板借助多种传感器获取周围环境信息,通过对人体红外信息、光照信息、时间信息、门禁卡信息的逻辑判断,控制舵机、继电器灯执行元件执行相应操作,实现智能家居的自动控制,其中时间信息和温湿度信息会通过OLED屏显示。
远程控制模式:通过对ESP8266 WⅠFⅠ模块的工作模式进行设置,令其接入家庭网络,借助TCP协议接入巴法云物联网平台服务器。ESP8266 WⅠFⅠ模块与Arduino Uno开发板通过串行数据端口进行连接,借助温湿度传感器获取的温湿度信息通过ESP8266 WⅠFⅠ模块发送到物联网云平台,手机APP客户端使用平台协议连接到巴法云物联网平台服务器,获取服务器的温湿度信息。手机APP客户端推送控制指令至物联网平台,ESP8266 WⅠFⅠ模块通过HTTP协议获取物联网云平台的控制指令并传输给Arduino Uno开发板,开发板根据设置的控制指令实现灯光、家电、门禁、窗帘的远程控制。
智能家居软件控制系统程序流程如图3所示。
图3 智能家居软件控制系统程序流程图
本文采用MⅠT AppⅠnventor完成Android手机APP客户端的开发。
MⅠT AppⅠnventor是一个直观的、可视化的、完全在线开发的Android编程环境。MⅠT AppⅠnventor有2个设计界面,分别为组件设计和逻辑设计。组件设计实现手机应用界面的设计,通过官方提供的功能组件,根据手机应用程序的预实现的功能去设计并美化应用操作界面。逻辑设计是对操作界面的功能组件的进行程序设计,以实现应用软件的预期功能。
基于本文的智能家居系统的实际功能,设计的手机APP客户端操作界面如图4所示。
图4 手机APP应用软件操作界面
本文设计的基于物联网的智能家居控制系统拥有智能灯光、智能窗帘、家电定时启动、智能门禁、烟雾报警及环境监测与显示6项功能,能较为全面地兼顾家居生活的需求。经过实际测试,全部功能都运行良好。该智能家居系统成本低,使用方便,操作简单,物联网平台的信息交互稳定、安全,该系统可以充分满足人们对智能家居的生活要求,提高生活的品质,使家居生活更加的方便与智能。