基于Arduino的智能家居系统设计与实现

2018-03-29 03:36谢嘉王世明曹守启潘冬冬崔家庆
电子设计工程 2018年2期
关键词:上位串口智能家居

谢嘉,王世明,曹守启,潘冬冬,崔家庆

(上海海洋大学工程学院,上海201306)

随着人类社会的进步和经济水平的快速发展,人们开始追求快速高效的生活。二十一世纪是一个个性化、自动化、快节奏的时代。个性化的生活方式和高档次的居家环境逐渐进入人们的日常生活,现代人越来越追求家装人性化、智能化。由此,人们对家居要求的档次也越来越高,希望居住环境能达到舒适化、安全化、智能化和家居生活高效节能的要求[1-3]。这就促成了智能电子技术的快速发展和广泛应用,而智能电子技术的发展使得新型智能家居技术不断出现,这也是家庭生活方式的互联网+概念,将为人们的生活提供一种全新的体验。

智能家居(Smart Home)是指依托住宅平台,科学统筹管理家居生活的各个方面,让家居生活“智慧”起来[4]。这个管理过程的实现要依赖于计算机技术、网络技术、通信技术和综合布线技术等,把它们统称为智能家居技术[5]。在智能家居的设计规划中,其基本目标是“以人为本”。该设计将家庭中各种信息相关的通信设备,家用电器,照明设备和家庭安防装置等和家居有关的执行装置,通过有线或无线的方式连接到家庭智能控制系统上进行统筹的管理,或者通过与外界通信实现异地的访问、监视和控制,来进行家庭事务性的管理,并保持这些设施与住宅环境的和谐与协调[6-10]。

文中研究设计了基于Arduino的无线智能家居控制系统。本系统以AVR单片机为控制核心,利用Arduino MEGA2560开发板以及XBee无线传输模块,设计实现了一个基于Arduino的智能家居系统(SSBA,Smart home System Based on the Arduino)。其主要功能为用户可以通过PC上位机等设备来控制家中的家居执行装置,并且方便系统在控制端和设备执行端进行扩展,同时满足用户个性化、智能化的需求,系统要安全、稳定、可靠。

1 基于Arduino的智能无线家居控制系统的总体系统方案设计

Arduino具有突出的优点,它能通过各种各样的传感器来感知环境,然后根据感知到的环境信息在其内部进行处理,得到控制信号来控制灯光、马达和其他的家居执行装置,从而来影响、改变环境。Arduino对信息的处理通过微控制器实现,其软件通过Arduino的编程语言来编写,具体利用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现编程[11]。基于Arduino的系统,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间通过通信(比如Flash,Processing,MaxMSP)来进行协调。

从用户需求角度考虑,基于Arduino的智能无线家居控制系统(SSBA)的设计方案需要实现以下几个方面的功能:

1)可以通过手机、上位机控制界面实现对家居执行装置的开启和关闭等控制;

2)可以方便地使新的家居执行装置加入网络或者离开网络从而能够便于控制中心进行统一控制;

3)通过两种以上的方式完成对终端家居执行装置的驱动,从而有利于系统的扩展升级;

4)系统软件部分具有较好的开放性,为修改和扩展提供便捷,为客户参与产品修改提供接口,满足个性化需求;

5)系统要具有满足家庭应用要求的安全性、稳定性和可靠性。

为此文中给出的SSBA总体设计方案如图1所示。

图1 SSBA系统总体结构

SSBA系统中上位机用于编写命令控制界面,方便用户使用,是SSBA系统中和人交互的终端。主控芯片主要作用是接收上位机的控制命令,翻译处理后传输给数据发射器。数据发射器用于将数据发到空中,一个数据发射器可以给多个数据接收器发布信息。数据接收器用来接收从空中发来的控制信号,传输给执行装置。执行装置完成具体的工作,像开关灯、开关空调、开闭窗帘等。

文中设计的SSBA系统采用ZigBee无线网络系统[12-16],应用多路、星形拓扑结构。网络中有一个网络协调器与上位机和负载建立网络,并管理网络,这样用户就可以通过上位机控制界面轻松地发送控制指令。若干XBee模块以及Arduino Uno模块作为终端设备,也可以只用XBee模块作为终端节点,根据控制信号直接控制家电设备。

选用基于ZigBee协议的XBee模块来进行无线数据的传输,通过使用ZigBee无线通信协议来实现控制,相对于有线控制的形式其优点如下:

1)施工方面,没有了复杂的布线环节,安装简便,只需通过智能家居数据发射器发射的无线信号来控制家中的电器,灯光等家居执行装置。

2)后期维护方面,由于智能家居的各设备之间采用无线方式连接,通过相应设备可以快速检测出问题所在并及时修复。

3)在未来的设备扩展与更换方面,由于无线方式是整个区域的覆盖,并不是单纯的点与点之间的连接,使得新增的设备可以很容易添加进整个网络,从而整个系统具备了很好的扩展能力。

2 SSBA系统硬件设计

根据上节确定的SSBA系统设计方案,该系统硬件部分主要包括上位机人机交互系统、主控中心监控系统、无线通信系统和安装在执行装置上的微处理控制系统等4个主要组成部分。具体的硬件设备为上位机、Arduino MEGA2560、Arduino XBee扩展板、XBee模块、XBee适配器、Arduino Uno和执行装置及其配套的硬件电路。SSBA系统硬件系统图如图2所示。

图2 SSBA系统硬件系统图

2.1 上位机+Arduino MEGA2560

该部分硬件承担人机交互的功能,构成上位机人机交互系统。上位机与Arduino MEGA2560通过USB转串口数据线连接,选用CH340转接芯片的数据线。在串口方式下,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。

Arduino MEGA2560上有4个串口,其中一个串口用于上位机给网络协调器发控制指令,剩下3个串口一个预留用于接收手机发来的控制信号,另一个预留用于接收其他远程设备发来的控制信号,最后一个备用。此处,在上位机和网络协调器之间添加了Arduino MEGA2560,具有以下优点:一方面运用Arduino MEGA2560的4串口可以接收来自3个不同控制设备的控制信号,再将其传输给网络协调器,实现智能家居的多重化控制效果。另一方面Arduino MEGA2560可输出3.3 V电压,这样就能与用3.3 V电压进行供电的XBee模块进行兼容,简化了系统,提高了系统的稳定性和可靠性。

2.2 网络协调器(Arduino XBee扩展+XBee模块)

该部分硬件构成了整个系统的网络协调器,是SSBA的主控中心监控系统。主控中心监控系统的主要功能是:进行网络初始化,建立一个新的网络,在网络建成后运行新网络。然后,该系统的网络协调器随时监听、响应其它终端节点的加入网络请求。最后,在终端设备加入网络后,主控中心监控系统即可将上位机中的控制状态命令发送至终端设备,从而进行相关设备的控制。

文中加上了Arduino XBee扩展板,方便实现Arduino MEGA2560与XBee模块进行串行通信。这样通过Arduino XBee扩展板就可以直接将XBee模块装于Arduino MEGA 2560上,同时也解决了XBee模块的供电问题。

2.3 XBee adapter XBee USB适配器+XBee终端

XBee终端用来接收由网络协调器从空中发来的控制信号,这部分硬件最终实现无线通信系统的功能。该XBee终端可以配置成两种形式:即路由模块和ZigBee终端模块。当此XBee模块配置成路由模块时,其接收来自网络协调器的无线控制命令,该路由模块不会进入睡眠模式,这样有助于我进行硬件调试。而当此XBee模块配置成ZigBee终端模块时,它会自动进入睡眠模式,只有当父节点对它进行唤醒后才会进入运行模式,这样就能真正体现其低功耗的价值,同时增加了设备运行的安全性。

在XBee终端配置了XBee adapter XBee USB适配器,给XBee模块供电、引出模块A/D和串口管脚,方便XBee终端模块与其他MCU模块进行通信以及进行相关控制的执行。

2.4 Arduino Uno+执行装置及其配套的硬件电路

Arduino Uno在系统中是命令的执行装置,它为系统的扩展留下了很大的空间,该部分硬件实现安装在执行装置上的微处理控制系统的功能。SSBA系统执行装置部分组成如图3所示。

图3 SSBA系统执行装置部分组成

图3中Arduino Uno将获得的针对执行装置的控制命令发送给驱动电路,由驱动电路去控制主电路,主电路上连接着执行装置,从而使执行装置按照指令的要求运行。主电路和执行装置中的电压和电流一般都较大,而Arduino Uno及其前面的其他SSBA系统电路都只能承受较小的电压和电流,因此在驱动电路和主电路的连接处,设置了电气隔离,本文系统采用光电隔离方法来实现。

3 SSBA系统软件设计

根据上节的SSBA系统硬件设计,系统的软件运行流程如图4所示。系统运行开始后,由上位机给Arduino MEGA2560传输数据,Arduino MEGA2560接收上位机传来的控制命令,进行处理后传给网络协调器,网络协调器将控制信号播放到空中。然后XBee终端接收从空中传来的控制信号,处理后传给Arduino Uno,Arduino Uno将获得的控制命令发送给驱动电路,由驱动电路去控制主电路,从而使连接在主电路上的执行装置按照指令的要求运行。

图4 SSBA系统运行流程框图

3.1 SSBA系统各部分程序设计流程

Arduino MEGA和XBee模块(网络系统调器)的运行流程框图如图5和图6所示。Arduino MEGA作用是接收来自上位机的控制命令并将其传输给XBee模块(网络协调器),XBee模块(网络系统调器)作用是接收来自Arduino MEGA的控制命令并将数据发到空中。

XBee终端运行流程框图和Arduino Uno运行流程框图如图7和图8所示。

图5 Arduino MEGA运行流程框图

图6 XBee模块运行流程框图

图7 XBee终端运行流程框图

图8 Arduino Uno运行流程框图

在SSBA系统中,XBee终端作为无线数据透传接收端,接收透传数据并将其发受给Arduino Uno板。Arduino Uno用来对串口来的数据进行判断,然后将命令发送到执行装置的驱动电路,使设备按要求运行,由Arduino Uno来连接执行装置为系统的扩展留下了很大的空间。

通过上述4个部分的运行可以完成SSBA整个系统的运作,完成指令的传输、播放、接收和执行,以满足用户的要求。

3.2 XBee软件设计及配置

XBee模块支持AT固件(透传模式)和API固件两种模式,本文选用AT固件(透传模式)。当操作于AT固件模式时,XBee模块可以看作是串口线的取代,所有的串口数据通过DIN管脚排队等待XBee模块RF发送寄存器发送。当XBee模块RF接收寄存器接收数据后,数据就通过DO管脚发送出去。模块的参数是可以通过AT命令接口配置。本文设计直接利用Digi公司为XBee模块配备的X-CTU软件对模块进行的配置,简化了配置过程。在具体XBee模块配置时做到了如下几点:

1)同一个网络中的设备必须符合同一个协议栈规范,在设备加入网络之前,首先需要确认协议栈规范的ID。为此本文对“特定网络”规范ID、ZigBee协议栈规范的ID和ZigBee PRO协议栈规范的ID分别设置了不同的编号。

2)数据无线传送的方式可以设置为广播传送,也可以设置为特定设备数据传送,这需要对DH、DL中的数据进行确认设置。

3)XBee模块(网络系统调器)和XBee终端节点设置要一致,保证数据发送能够准确接收。

4)在AT命令中对EE、KY进行设置,为系统建立了一个安全机制,这样当有其他ZigBee网络中的设备进入网络时,将不能窃取网络中的相关数据,并且不会对网络造成干扰。

3.3 Arduino软件设计

Arduino语言建立在C/C++基础上,它把AVR单片机相关的一些参数设置都进行了函数化,这样更便于小系统的开发。可以用AVR-C代码直接在IDE中对Arduino MEGA或Arduino Uno进行编译下载。

以下是本文设计的系统应用到的函数解释:

pinMode(pin,mode),数字IO口输入输出模式定义函数,pin表示为0~13,mode表示为INPUT或OUTPUT。

digitalWrite(pin,value),数字IO口输出电平定义函数,pin表示为 0~13,value表示为 HIGH 或LOW,比如定义HIGH可以驱动执行装置。

Serial.begin(speed),串口定义波特率函数,speed表示波特率,如9 600,19 200等。

int Serial.available(),判断缓冲器状态。

int Serial.read(),读串口并返回收到参数。

Serial.print(),串口数据输出。

3.4 Arduino执行程序

根据上面的设计思想,系统实现的Arduino执行程序如下:

4 结 论

SSBA系统利用Arduino MEGA2560开发板以及基于ZigBee协议的XBee无线传输模块实现了智能家居系统的功能,系统能够实现通过上位机来控制家中家居执行装置的目的。本文设计和实现的SSBA系统具有如下优点:

1)使用Arduino MEGA2560使得该系统更具简便性,可控性较强,预留两个串口,为系统添加其他外控设备做准备,提高了系统的扩展性能。

2)使用Arduino编程语言编程,该语言是模块化的编程,使得对程序流程的理解变得简易,同时为以后的修改和扩展提供较大的方便。

3)在系统中增加了ZigBee组网的安全机制,提高了系统的安全性和唯一性;

4)硬件连接简单,经多次测试证明系统具有良好的稳定性和可靠性,不会出现不定性受干扰现象。

SSBA系统具有较强的实用性和进一步扩展的功能,适合家居使用,通过扩展可以实现远程控制,同时将家居的所有设备都纳入控制范围。

[1]朱敏玲,李宁.智能家居发展现状及未来浅析[J].电视技术,2015,39(4):82-85.

[2]杨扬.智能家居系统应用的研究[J].电子测试,2016(14):108-109.

[3]吕莉,罗杰.智能家居及其发展趋势[J].计算机与现代化,2007(11):18-20.

[4]Bae CS,Yoo JH,Kang KC,et al.Home server for home digitalservice environments [J].IEEE Transactions on Consumer Electronics,2003,49(4):1129-1135.

[5]Lian KY,Hsiao SJ,Sung WT.Intelligent multisensor control system based on innovative technology integration via ZigBee and Wi-Fi networks[J].Journal of Network and Computer Applications,2012,36(2):756-767.

[6]林晶,王强.基于组态软件的智能家居监控系统研究[J].吉林建筑大学学报,2015,32(6):56-58.

[7]张博群.基于PLC智能家居系统的研究与设计[J].无线互联网科技,2016(10):60-61.

[8]徐爱明.基于PLC的智能家居控制系统[J].电子测试,2016(6):11-15.

[9]牟宏均.基于PLC的智能家居远程监控系统实现[J].自动化与仪器仪表,2016(7):266-267.

[10]罗昔柳,边洪瑞,秦迎梅.基于三菱PLC的智能家居服务系统设计[J].控制工程,2009,16(11):44-48.

[11]Michael MR.Arduino从基础到实践[M].杨继志,郭敬,译.北京:电子工业出版社,2013.

[12]乔季军,王德宇,李玉琳,等.融合ZigBee与WiFi无线技术智能家居系统的设计[J].自动化仪表,2015,36(12):48-51.

[13]井娥林.ZigBee路由算法的改进及在智能家居中的应用[J].计算机与现代化,2016(12):92-96.

[14]刘礼建,张广明.基于ZigBee无线技术的智能家居管理系统设计[J].计算机技术与发展,2011,21(12):250-253.

[15]王一棋,何丽莉,胡成全,等.基于ZigBee和Internet的无线智能家居网关系统[J].吉林大学学报:理学版,2015,53(2):302-306.

[16]李泊锋,王亚刚.基于ZigBee无线技术的智能家居系统设计[J].电子科技,2016,29(3):86-89.

猜你喜欢
上位串口智能家居
浅谈AB PLC串口跟RFID传感器的通讯应用
特斯拉 风云之老阿姨上位
基于Zigbee的无线通信技术在智能家居中的应用
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
关于智能家居真正需求的探讨
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
以新思路促推现代农业上位
智能家居更贴心