基于CC3200的智能云家居系统*

2017-09-03 09:17阙鸣健盛庆华谢传官
网络安全与数据管理 2017年15期
关键词:网关云端家居

阙鸣健,盛庆华,谢传官

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

基于CC3200的智能云家居系统*

阙鸣健,盛庆华,谢传官

(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

随着物联网通信技术的高速发展以及云计算时代的来临,建设智能家居系统的进程逐步加快。针对智能云家居系统的设计逻辑提出如下解决方案:围绕集成WiFi模块的CC3200芯片设计智能云家居系统,利用ZigBee的组网技术搭建家庭网络并部署包括空调、音响、传感器在内的设备节点。采用串口标准的通信协议实现CC3200系统板通过ZigBee协调器间接对智能家居系统中的各个家庭设备的检测和管理。同时CC3200在应用层扮演了HTTP客户端的角色,定时访问云服务器上的数据库以获取用户最新需求信息,并且将用户的信息反馈到传感器节点上。用户能够通过微信公众平台发送需求信息对家居内的各个设备进行监控,该微信公众平台将会与云服务器通信以完成数据库的信息录入。

智能家居;CC3200;新浪云(SAE);ZigBee;微信公众平台;数据库

0 引言

智能家居是以住宅为平台,集成网络通信、自动控制、电源管理、综合布线、音视频/流媒体等技术的管理系统。目前,发达国家的智能家居已经获得长足发展。如:美国的x-10、CEBus和Lonwork,日本的HBS以及欧洲的EIB和EHS等在国际上影响深远。而国内对智能家居和家庭网络等产品的研制起步较晚。近年来,随着全球智能化趋势的快速发展以及国家出台相关政策的推动,物联网通信、云计算等技术得到大力扶持,创建高效、便捷的家庭环境有了更加坚实的技术基础。基于上述原因以及实际情况,本文提出了一种基于CC3200[1]和云计算平台的智能家居系统的解决方案,融合当下流行的微信(WeChat)平台技术和ZigBee家庭组网技术,以及具有海量数据处理能力的新浪云SAE(SinaAppEngine)平台来构建智能家居系统,以满足家庭智能的个性化需求,提高智能家居系统的决策能力和联动控制能力。

1 系统工作原理

本项目是基于CC3200设计的无线智能家居系统,系统框图如图1所示。家居客户端以CC3200+ZigBee协调器为核心组建家庭网关,CC3200工作在基站模式接入无线路由AP连接外网,同时利用ZigBee的组网技术连接家庭网络中安装的设备节点组建家庭内网。采用串口标准通信协议实现CC3200系统板通过ZigBee协调器间接对智能家居系统中的各个家庭设备(红外控制、温湿度监测、台灯控制、音频编解码控制)进行控制和管理。云服务器端以LNMP(Linux+Nginx+MySQL+PHP)为架构,Nginx作为轻量级的HTTP服务结合MySQL的存储功能存储用户通过微信公众平台发送的信息,并提供给家庭网关。

图1 系统原理框图

2 云服务器端设计

2.1 云服务器端软件架构

图2 服务器框架

新浪云(SinaAppEgnine,SAE)服务器端[2]采用LNMP(Linux+Nginx+MySQL+PHP)架构,操作系统选择红帽系统(Red Hat Enterprise Linux,RHEL)分支中的Centos7.0,并部署Nginx作为Web服务器,相比于传统使用Apache的方案,Nginx展现出了诸多优点,例如在使用更少资源的情况下支持更多的并发连接。Nginx通过服务内置的通用网关接口(Common Gateway Interface,CGI)寻找指定目录下的脚本语言解析生成静态页面并交付给客户端,程序使用PHP5.3版本作为云端的开发语言。数据库部分基于MySQL 5.6开发,可以快速实现主从节点、高可用服务、自动备份、在线扩容以及监控等各种管理功能。图2为服务器框架。

2.2 HTTP请求与响应

2.2.1 微信与云端

在微信公众平台[3]配置统一资源定位符(Uniform Resource Locator,URL)和Token用于消息发送及签名验证,当微信用户向公众号发消息时,微信服务器将该消息在应用层以超文本传输协议(HyperText Transfer Protocol,HTTP)封包并POST到填写的URL上,消息内容在封包中以扩展标记语言(eXtensible Markup Language,XML)存储,XML具有规范统一、可扩展性等多个优点,具体格式如下:

"

URL填写在云端针对微信编写的消息回复实例wx_response.php[4],Token使用weixin作为双方验证的令牌。云端wx_response.php的处理逻辑是在接收到微信服务器发送的消息后,首先进行令牌验证:

define("Token", "weixin");

验证通过后调用响应函数responseMsg();内容如下:

public function responseMsg()

{

$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];

//获取POST的原始数据

if (!empty($ postStr))

{

$postObj=simplexml_load_string

($postStr,′SimpleXMLElement′,LIBXML_NOCDATA);

//解析XML字符串并载入到对象中

{

//进行后续编码

}

//将记录存储至数据库中

$mysql = new SaeMysql();

//新建一个数据库对象

$sql = “insert into Weixin_IOT(MsgID,FromUser,CreateTime,MsgType,Content,ID)values(‘$MsgId’,′$fromUsername′,′$time′,′$msgType′,′$keyword′)”;

//填写Sql语句并赋值

$mysql->runSql($sql);

//运行Sql语句插入记录

$mysql->closeDb();

//关闭该对象

//后续处理

echo $resultstr;

//反馈处理结果

}

}

手机微信端在发送信息之后会收到相应的反馈,如发送“请打开台灯”,得到反馈“台灯即将打开”,相关代码如下:

if(strstr($keyword,"台灯"))

{

if(strstr($keyword,"开"))

{

$keyword = "LEDon";

$resultstr = "台灯即将打开";

}

else if(strstr($keyword,"关"))

{

$keyword = "LEDoff";

$resultstr = "台灯即将关闭";

}

}

2.2.2 CC3200与云端

CC3200会定时发送HTTPGET请求至云端以获取数据库中最新的信息。同样,云端部署了CC3200_response.php用以对接其访问。在收到主控板发起的请求后,网页登录数据库获取信息并反馈,代码如下:

$link=mysql_connect($db_host,$db_user,$db_pass);

//连接数据库

mysql_select_db($db_name,$link);

$sql="select * from Weixin_IoT;";

//进行查操作,遍历数据库表单

$result=mysql_query($sql,MYMlink);

while($row=mysql_fetch_array($result))

//提取表单原始内容

{

/**信息处理**/

}

echo "ID=".$id."&"."Msgid=".$msgid." &"."Fromusername=".$Fromusername.

"&"."content=".$content;

//回显内容至主控板

获取到最新用户请求后,CC3200进行局域网内的任务分配工作。

2.3 数据库存储

MySQL是一种开放源代码的关系型数据库管理系统(Relational Database Management System,RDBMS)。MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(Structured Query Language,SQL)进行数据库管理。MySQL因其提供的接口支持多语言、多平台的特征,具有极强的可移植性,同时其核心程序采用完全的多线程编程,可以灵活地为用户提供服务并不过多地占用系统资源,在实际工程项目中得到了广泛的应用。本项目中数据库部分使用5 GB存储容量,根据实际工程支持在线扩容、在线缩容等操作。数据库表结构如表1所示(记录创建时间以Unix时间戳表示)。

表1 数据库表结构

3 家居客户端设计

3.1 家庭网关软件设计

图3 智能家居网关软件架构

智能家居网关[5]的软件架构是与七层网络协议对应的分层结构,如图3所示。硬件部分由CC3200系统板和一个ZigBee协调器组成,CC3200运行实时操作系统FreeRTOS,集成的WiFi模块工作在Station模式连接无线路由器AP,至此,网关的IP成功被分配,网络层、数据链路层、物理层的配置工作完成。CC3200调用OS组件提供的相关应用程序编程接口(Application Program Interface,API)(socket相关)以完成传输层的配置,在成功与云端进行TCP 3次握手后,配置TCPSendBuff内容为HTTP格式,完成应用层的封包。

图4为封包程序流程图。CC3200通过串口协议控制ZigBee协调器并间接实现与各个ZigBee设备节点的通信任务。

图4 网络层及以上封包程序流程图

3.2 ZigBee家庭网络组建

ZigBee是基于IEEE802.15.4标准的低功耗局域网协议[6],也是一种介于无线标记技术和蓝牙之间的技术方案,主要用于短距离通信。方案中采用星型网的拓扑结构组件ZigBee网络。星型网是由一个PAN协调器和多个终端节点组成。选取与CC3200级联的ZigBee作为PAN协调器,其余设备节点各自部署ZigBee模块与协调器直接单独通信。家庭网络的通信逻辑图如图5所示。

图5 家庭网络通信逻辑图

3.3 设备节点

3.3.1 智能插座模块

智能插座内部由继电器和ZigBee芯片构成,通过ZigBee的IO口控制继电器的开启/关断状态。

3.3.2 红外发送模块

ZigBee通过串口控制红外模块工作在学习状态,学习传统遥控器发送的各工作模式对应的红外信号并保存。模块附带4个红外发射头以提高发射功率。

3.3.3 音频解码模块

音频解码模块搭载STM32最小系统板、8 G容量SD卡和以vs1003为核心的音频解码器SD卡存储*.mp3文件,通过STM32的SPI总线传输给vs1003用于音频解码,解码输出的模拟信号通过3.5 mm音频接口外接音响播放。模块程序流程图如图6所示。当用户希望播放某首歌曲时,通过微信公众平台发送歌曲名至云端,CC3200访问云端获取到实时信息并将信息通过ZigBee协调器传递给音频模块内置的ZigBee节点,模块收到指令后开始工作:初始化SD卡及文件系统并检索曲目,当找到了指定歌曲后传输给vs1003模块对mp3文件进行解码操作。音响开始播放歌曲并等待下一次指令的来临。

图6 音频模块工作程序流程图

3.3.4 传感器模块

传感器模块包含CO传感器、CO2传感器、温湿度传感器、光照传感器等子模块和STM32最小系统板。CO传感器用于煤气报警检测,CO2传感器、温湿度传感器用于火灾报警检测。两个气体传感器模块输出模拟信号,输入STM32单片机后通过内置ADC转换成数字信号。温湿度传感器通过配置单片机的通用输入输出接口(General Purpose Input Output,GPIO),使用单总线协议的工作时序完成数据的读取,IO口工作在漏极开路模式,已允许设备在不发送数据时能够释放总线。

4 结束语

本文设计并实现了一种基于CC3200和云计算平台[7]的智能家居控制系统。通过对整体通信方案的规划和软硬件的设计调试,成功达到预期的家居监控效果,实现了家居设备的智能化。同时此方案的设备终端不仅仅局限于文中所述,可根据不同的家庭智能化需求进行定制,在智能家居领域具有一定的参考价值。

[1] 郭书军,范玉强.基于CC3200的智能家居监控系统设计[J]. 物联网技术, 2016, 6(10):94-96.

[2] YE X,HUANG J.A framework for Cloud-based smart home[C]. Proceedings of 2011 International Conference on Computer Science and Network Technology (ICCSNT), 2011.

[3] 吴川环. 基于微信控制物联网设备的服务器系统[D].广州:广东工业大学, 2015.

[4] GILMORE W J. PHP与Mysql程序设计[M].北京:人民邮电出版社,2009.

[5] 高聚银.基于云平台的智能家居系统设计与实现[J].哈尔滨工业大学学报,2013,12(2):125-127.

[6] Zhou Xiaoyan, Huang Tinglei.Research on smart living technology based on WSN[C]. International Conference on Intelligent Computing and Integrated Systems, 2010: 938-941.

[7] 王鹏,黄华锋,曹柯,等.云计算——中国IT的未来战略[M].北京:人民邮电出版社,2010.

Smart Cloud home system based on CC3200

Que Mingjian, Sheng Qinghua, Xie Chuanguan

(School of Electronic Information, Hangzhou Dianzi University, Hangzhou 310018, China)

With the rapid development of Internet communication technology and the coming of age of cloud computing, the process of building smart home system is gradually accelerated. This paper presents the following solutions for the design logic of intelligence cloud home system: design of intelligence cloud home system based on integrated WiFi module CC3200 chip, use of ZigBee networking technology to bulid a home network and deploy equipment, including air conditioning, audio, sensors nodes. Through the serial communication protocol to achieve the CC3200 system board through the ZigBee coordinator to test and manage the household equipment of the smart home system. CC3200 plays the role of HTTP clients in appliction layer, and regularly accesses databases on the server to get the latest demand information of the users, and feedback to the sensor nodes. Users can send listings through the public platform to monitor various devices in the home,the wechat will communicate with cloud server to complete the database information input.

smart home; CC3200; SinaAppEngine; ZigBee; WeChat; database

2016年浙江省大学生新苗人才计划(2016R407012)

TP39

A

10.19358/j.issn.1674- 7720.2017.15.004

阙鸣健,盛庆华,谢传官.基于CC3200的智能云家居系统[J].微型机与应用,2017,36(15):12-15.

2017-02-15)

阙鸣健(1995-),男,本科生,主要研究方向:云计算、电子系统集成。

盛庆华(1978-),男,硕士,副教授,主要研究方向:电子系统集成、能量收集。

谢传官(1995-),男,本科生,主要研究方向:仪器仪表、无线传输。

猜你喜欢
网关云端家居
四海心连·云端汇聚
打造日常家居“氛围感”
云端之城
信号系统网关设备的优化
台北家居
云端创意
LTE Small Cell网关及虚拟网关技术研究
在云端
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计