ZigBee与Android的智能家居控制系统设计

智能家居是在传统住宅的基础上,利用现代科学技术,诸如网络通信、安全防范、自动控制、音视频等技术将家居生活有关的各种家居设施集成,构成的高效、便利、舒适、节能环保的家居环境。随着无线移动网络的快速布局,现代的智能家居只要有一个无线智能设备,即能通过客户端实时查看到住宅中的一切动态。在目前,智能家居控制系统中,有基于面板和红外遥控器或蓝牙的智能家居控制终端解决方案,也有完全基于PC机的智能家居控制终端解决方案,同时还有采用手机作为家居控制终端,利用GSM电话网络通信,实现短信或者语音控制。而以上多种技术的应用,催生了各种智能控制模块的研究和生产,因此导致了当前智能家居控制系统的标准无法统一,各个系统和模块之间难以实现互联互通。针对以上问题,本文提出了一整套的智能家居控制系统解决方案,该方案采用Android智能手机作为控制终端,在STM32F107移植μC/OS-II操作系统和LwIP协议栈搭建嵌入式服务器,通过搭建ZigBee无线传感网络,采用改进的ZigBee路由算法,制定完善的通信协议,提高网络通信性能,最终实现手机对智能家居的远程和本地的实时监控。

1 系统总体设计

本文所设计的智能家居控制系统主要包括嵌入式服务器,Android客户端和ZigBee无线模块节点。移动控制终端和ZigBee无线模块节点通过嵌入式服务器进行通信实现信息交互。即用户采用Android客户端程序发送指令通过互联网或局域网传输到智能家居嵌入式服务器,服务器在接收到控制命令后再通过ZigBee无线传感网络发送到对应的终端节点,终端节点接收到命令后进行相应的操作,比如采集温湿度信息并将信息反馈到服务器,服务器再将信息通过局域网或互联网发送到Android客户端进行显示。系统总体结构图如图1所示。

图1 系统结构图

2 系统硬件设计

2.1 设计原则

嵌入式服务器在整个系统中起着至关重要的作用,其实现的主要原则应从下面几点出发:(1)允许Android客户端远程登录到服务器,并能够保存登录用户的基本信息,实现多用户登录,为每个用户都能提供相应的服务。(2)能够正确接收客户端发送的控制命令,并能够返回相应信息。(3)能够与ZigBee协调器实现信息交互,完成命令传输和信息采集。嵌入式服务器启动后,采用socket通信方式接收客户端的登录命令,验证通过后为客户端提供相关服务。

2.2 服务器硬件设计

本次研究采用ST公司生产的Cortex-M3为内核的微处理器芯片STM32F107VC进行扩展搭建嵌入式服务器硬件平台,硬件结构图如图2所示。根据需求,外围需扩展的功能模块主要包括与ZigBee协调器通信模块和与控制终端实现网络通信硬件模块。其中与ZigBee协调器通信采用串口通信方式实现。而STM32F107内部集成了以太网MAC控制器,因此本次设计采用RMII接口连接以太网PHY(物理层)芯片DM9161。

图2 嵌入式服务器硬件结构图

2.2.1 网络通信接口

网络通信接口是服务器与控制终端实现网络通信的桥梁。STM32F107内部集成了一个以太网MAC,并有专用的DMA控制,实现内部数据的高速传输。STM32F107还同时支持MII和RMII两种物理层接口,因此只需外界一片物理层收发器,即可实现以太网帧的发生和接收,实现网络通信。所以本次设计采用高性价比的DM9161A作为10M/100M以太网PHY芯片,采用RMII接口与处理器STM32F107内部的IEEE1588 MAC连接,并与标准RJ45接口HR911105A连接,支持平行交叉网线自适应,实现以太网通信功能。网络接口硬件接口设计如图3。

图3 以太网通信接口

2.2.2 ZigBee无线模块节点

智能家居中,家居内部无线网络通信方式的选择至关重要。在本次智能家居控制系统设计中,家庭内部网络采用ZigBee数传模块组网技术。在智能家居网络中,ZigBee无线模块节点被分为主节点和从节点,主节点主要负责建立无线网络,分配从节点网络地址,并与从节点和嵌入式服务器实现指令的发送和接收。

ZigBee无线模块从节点主要嵌入到终端设备中用于采集检测信息发送到主节点,或者接收控制命令实现对终端设备的控制,ZigBee网络结构图如图4。

图4 ZigBee网络结构图

ZigBee无线模块节点采用TI公司的CC2530作为主控制器芯片。该芯片是用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统解决方案。它结合了领先的RF收发器的优良性能,基于51内核,系统内可编程闪存,8KB RAM和许多其它强大的功能。

ZigBee数据采集节点主要包括一些通过传感器实现的信号采集类模块,比如温湿度采集,可燃气体泄漏或者火灾发生时的信号ZigBee数据采集并报警。设备控制节点主要嵌入到家电设备中,以实现门禁系统、灯光控制、智能窗帘、智能热水器、智能空调、摄像头云台等的远程控制。

3 系统软件设计

本系统的软件主要包括3个部分:嵌入式服务器软件平台、ZigBee节点控制程序、控制终端的Android应用程序。

3.1 嵌入式服务器软件实现

嵌入式服务器软件平台的搭建根据以下2点需求来进行:(1)服务器要实现实时多任务操作。(2)服务器要实现TCP/IP网络通信功能。因此,本系统选择移植实时操作系统μC/OS-II作为服务器操作系统,移植LwIP实现TCP/IP网络通信。

3.1.1 操作系统移植

μC/OS-II是一个可移植、可固化、可剪裁、抢占式多任务实时内核。它适用于多种微处理器,微控制器和数字处理芯片,是和很多商业操作系统性能相当的实时操作系统。

在移植μC/OS-II系统过程中,需修改以下几个文件:汇编文件OS_CPU_A.ASM,与处理器相关C文件OS_CPU.H和OS_CPU_C.C,系统配置文件OS_CFG.H。

3.1.2 LwIP协议栈移植

LwIP是TCP/IP协议栈的一个实现。它的目的是减少内存使用率和代码大小,使LwIP用于资源受限系统,本次设计的嵌入式系统正属于此列。因此,为实现嵌入式服务器的TCP/IP网络通信功能,有必要移植TCP/IP协议栈,综合考虑,本次设计选择移植开源的LwIP协议栈。为移植LwIP,主要工作是需针对本次设计中的目标系统μC/OS-II修改模拟层实现。移植后的系统软件框架如图5。

图5 服务器软件框架

3.1.3 应用程序编写

本次设计中,嵌入式服务器实现对远程用户登录注销、用户信息管理和数据传输两大主要功能。服务器依据客户端指令分别实现客户端的登录注销、用户信息管理、终端设备控制三种功能。用户登录时服务器创建服务,注销时结束服务并切断与客户端的通信。用户信息管理允许用户通过客户端修改用户信息,终端设备控制功能允许用户使用客户端来实现远程监控家居环境。控制功能由服务器与ZigBee协调器通信实现。服务器工作流程图如图6所示。

图6 服务器主线程工作流程图

服务器启动后进行系统初始化,初始化主要包括设置STM32系统时钟、串口、以太网、GPIO、中断控制器NVIC、LwIP栈。系统初始化完毕创建2个任务,优先级为3的任务内容是实现socket通信,注册数据接收回调函数,当接收到数据时在回调函数中进行数据接收处理,其中要使用socket接口必须包含API头文件socket.h。优先级为4的任务完成串口数据的接收,在任务中不断查询串口数据接收完成或缓冲区溢出标志USART_Rx_Done,当数据接收完毕或缓冲区溢出时,此时在中断服务程序中设置全局变量USART_Rx_Done为1,即表示通知主线成串口数据接收完毕,主线程将接收到得数据以网络通信的方式发送的客户端。服务器中断程序流程图如图7。

图7 中断服务程序流程图

3.2 移动控制终端Android应用程序设计

Android客户端应用程序主要实现三个部分功能,程序功能界面、与家居服务器通信和处理相关信息。

3.2.1 功能界面设计

应用程序界面设计包括登录界面和功能界面。功能界面采用底部导航栏分栏显示,包括主页、设备控制、信息中心和系统设置四个方面。主页主要显示当前住宅内部温度和湿度以及安防信息;设备控制主要包括灯光控制、家电控制、门窗控制和情景模式,通过安检选项进行控制;消息中心主要显示住宅环境的一些家居状态消息,比如当住宅发生火灾时传感器检测到危险信号后服务器会发送信息到消息中心显示,并且手机根据消息命令会自动实现报警和提醒用户等;系统设置主要包括设置一些用户权限和网络通信配置。设计好的界面如图8所示。

图8 登录及主界面

3.2.2 网络通信实现

移动Android应用程序设计中主要涉及两个方面的数据通信,一个是界面Activity组建与后台Service组建间的通信,另一个是Android客户端与嵌入式服务器间的通信。在Android应用程序中,Activity主要负责前台页面的展示和用户指令的接收,Service则主要在后台负责长时间执行的任务比如监控任务。移动客户端应用程序中数据通信架构如图9。

图9 数据通信程序架构

在Android中,Activity主要负责前台页面展示,Service主要负责需要长时间运行的任务。在图9中, 参考And roidIPC通信机制,在Activity中通过Intent启动后台Service,Intent中传递了Activity从用户动作中接收到的数据。Service在后台启动后创建一个Socket服务子线程与嵌入式服务器实现网络通信,并将服务器返回的数据通过Binder对象传递给Activity。另一方面,Service在程序登陆后创建一个循环子线程实现每隔一分钟向服务器发送一次更新数据指令,以便实时更新主页面显示数据。

4 结束语

本文利用ZigBee数传模块对智能家居信息进行ZigBee数据采集,将Android客户端安装到手机,并搭建服务器平台,在实验环境下进行试验和调试。实验结果表明系统运行稳定,Android手机客户端可以通过无线网对家居设备实现远程控制,并且能够实时接收并显示住宅环境信息,当检测到异常时能够及时的发出警报。

本次设计的智能家居控制系统,采用了当下最流行也最实用的智能手机实现对家居环境的实时监控。这种方式通用性强,操作便捷,易于安装推广,运行稳定可靠。达到了对家居设备智能化管理的目的。同时,本次设计在功能上可以加以改进,比如可以在后续的工作中加入视频监控、智能服务等内容。

时间: 2024-12-23 15:15:11

ZigBee与Android的智能家居控制系统设计的相关文章

Android开发—智能家居系列】(二):用手机对WIFI模块进行配置

在实际开发中,我开发的这款APP是用来连接温控器,并对温控器进行控制的.有图为证,哈哈. 上一篇文章[Android开发-智能家居系列](一):智能家居原理的文末总结中写到: 手机APP控制智能温控器就两步:一是通过手机,让WIFI模块接入网络,而是通过网络,使用手机对模块发送指令.在这篇文章中,我们来介绍第一个步骤. [时序图] [概念] [两种模式]: AP:即无线接入点,是一个无线网络的中心节点.通常使用的无线路由器就是一个AP,其它无线终端可以通过AP相互连接. STA:即无线站点,是一

ZigBee技术将推动智能家居走进普通家庭

微软创始人比尔盖茨曾说:"未来,没有智能家居系统的住宅,就像不能上网的住宅一样,不符合潮流."中国有超过13亿人口,4亿多个家庭,智能家居有着无限广阔的前景. 今年以来,阿里巴巴.海尔.京东.美的.腾讯.TCL等互联网企业.家电企业,动作频频,均在不同的场合下表露出了逐鹿智能家居领域的野心. 在过去很长的一段时间里,对于智能家居,受制于行业智能通信技术不成熟,产品价格高昂,商业化模式不清晰等一系列问题,人们是只闻概念,未见产品,普通家庭更是知之甚少.因此,智能家居发展缓慢. 时至今日,

智能家居控制APPUI界面设计

2017年,随着智能化产业进入新的市场格局,千家品牌实验室也迎来全新的升级,致力为智能产业生态链提供更全更新更深度的行业分析和品牌数据监测服务.本文为大家带来关于中国智能家居行业发展APP设计欣赏. 信息图在Gleb Kuznetsov的智能家居应用上的互动体验 Tomá?Sebastián Steinhübel的聪明之家 Ricardo Salazar的智能家庭恒温器 Paul Flavius Nechita的智能家居界面 Daniel Klopper的智能家居界面 Piko Rizky Dw

迅为4412开发平台Zigbee模块在物联网智能家居中的应用

  物联网智能家居的发展物联网随着互联网的发展,可以通过互联网实现物和物的互联,就有了物联网的概念.传统家居电器 有了物联网之后,在家居电器范围中,就是通过物联网技术将家中的各种设备连接到一起,家居中有了物联就可以称为智能家居.智能家居可以知道家居中的实时状态,远程控制等等. ISM频段 ISM频段, 无线频段都是受到管控,除了ISM频段. 常用的ISM无线频段, 433/868MHz的射频协议: 2.4G的WIFI.BLE和ZigBee. 智能家居协议选择判断标准 智能家居协议选择判断标准,对

Wifi在智能家居控制领域的应用

WiFi俗称无线宽带,全称Wireless Fidelity.它的最大优点就是传输速度高,有效距离长,兼容性强,具有国际先进性的通讯方式.IEEE([美国]电子和电气工程师协会)802.11b无线网络规范是IEEE 802.11网络规范的变种,最高带宽为11 Mbit/s,在信号较弱或有干扰的情况下,带宽可调整为5.5Mbit/s.2Mbit/s和1Mbit/s,带宽的自动调整,有效地保障了网络的稳定性和可靠性.其主要特性为:速度快,可靠性高. 2.4GHz的ISM频段为世界上绝大多数国家通用,

【Android开发—智能家居系列】(四):UDP通信发送指令

思路回顾 [1]手机连接WIFI模块 [2]UDP通信对WIFI模块发送指令,以和WIFI模块保持连接状态 [3]UDP通信对WIFI模块发送指令,让其搜索可用的无线网,返回WIFI列表 [4]发送指令,让WIFI模块接入指定路由 [5]手机连接路由 [6]发送指令,获得WIFI模块的动态IP地址 UDP通信线程类 package com.jczb.smartlife.common; import java.io.IOException; import java.net.DatagramPack

【Android开发—智能家居系列】(三):手机连接WIFI模块

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 概述 实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载.网上这些类似的工具类里的代码差不多是一样的.连接无线网主要有两个方法: 其中有一个Connect方法,还有一个connectSpecificAP方法,对于不需要密码就能链接的WIFI模块,我使用的是后者. 主要步骤 连接WIFI大致分为一下几个步骤: [1]打开WIFI openWifi [2]配置网络信息 createWifiInfo返回WIFiConfi

智能家居,让不智能的智能起来

近几年智能家居的需求不断增加.但是有的时候有部分人还是觉得"家居智能"只是一个概念或者噱头,其实,随着现在智能产品的研发投入增加,其技术也在不断成熟,现在的智能家居已经克服了很多障碍.当下的智能家居不再是大众消费不了的产品,反而几千元就能轻松搞定简单的全屋智能化,现在智能产品也可以选择无线连接,这样也不用破坏家庭墙壁.智能家居控制系统设计越来越简单,技术也不断成熟! 无需布线 在很多人的印象中,要实现智能家居必须从装修阶段就开始设计.布线.否则,普通的全屋灯光无法用智能控制,一开始选购

基于无线控制的智能家居技术探讨

谈到智能家居的无线控制方式,就不得不联想到与之相关的几大无线技术.目前,全球通用的无线技术主要包括红外.蓝牙.RFID.ZigBee.WIFI等.随着科技的不断发展,无线技术也进行着日新月异的改进.基于其灵活性.无需布线等优点,在市场上也得到相当广泛应用.智能家居产品的出现,更是为无线技术开辟了另一方新的应用空间.相比较传统智能家居系统采用的有线布网方式,无线技术的应用则可以减少布线带来的麻烦,具有更好的可扩展性.移动性.因此采用无线智能控制模式是智能家居发展的必然选择.下面小编就和大家共同探讨