《电子技术应用》

基于CC3200及微信公众号的云家居交互系统

2018年电子技术应用第3期
高世皓1,2,王立华2,朱吉芳3,周松江4
(1.北京邮电大学 泛网无线通信教育部重点实验室,北京100876; 2.山东科技大学 电子通信与物理学院,山东 青岛266590; 3.阿里巴巴集团,浙江 杭州311121;4.北京邮电大学 信息光子学与光通信研究院,北京100876)
摘要: 为了实现家居智能化,基于CC3200无线Wi-Fi微控制器、微信公众号及阿里云服务器设计了一款智能云家居交互系统,用户可通过微信公众号远程控制家居设备,并可获取传感器的状态。提出了系统总体设计方案,介绍了系统硬件组成,给出了CC3200微控制器、微信公众号和阿里云服务器的软件设计。实验测试表明,该系统运行稳定,用户体验较好,具有较高的应用价值。

Interactive system of cloud home based on CC3200 and WeChat official account

Gao Shihao1,2,Wang Lihua2,Zhu Jifang3,Zhou Songjiang4
(1.Key Laboratory of Universal Wireless Communications,Ministry of Education, Beijing University of Posts and Telecommunications,Beijing 100876,China; 2.School of Electronic Communication & Physics,Shandong University of Science and Technology,Qingdao 266590,China; 3.Alibaba Group,Hangzhou 311121,China; 4.Institute of Information Photonics and Optical Communication, Beijing University of Posts and Telecommunications,Beijing 100876,China)
Abstract: In order to achieve home intelligence, this paper introduces an interactive system of intelligent cloud home based on CC3200 Wi-Fi microcontroller unit(MCU), WeChat official account and Ali cloud server. Users can not only control household equipment by WeChat official account remotely,but also get the status of sensors. The paper provides an overall design scheme and introduces the hardware component of system. It also gives the software design of CC3200 MCU, WeChat official account and Ali cloud server. Experiments results show that the proposed system runs steadily, has better user experiences,and has high application value.

    中图分类号: TP277

    文献标识码: A

    DOI:10.16157/j.issn.0258-7998.173614


    中文引用格式: 高世皓,王立华,朱吉芳,等. 基于CC3200微信公众号的云家居交互系统[J].电子技术应用,2018,44(3):52-55.

    英文引用格式: Gao Shihao,Wang Lihua,Zhu Jifang,et al. Interactive system of cloud home based on CC3200 and WeChat official account[J]. Application of Electronic Technique,2018,44(3):52-55.

0 引言

    随着科技的发展,人们对居住条件的要求逐渐提高,传统的只有居住功能的家居已经不能满足人们对居住环境的要求,智慧化和数字化是未来家居的发展趋势。随着物联网技术的不断发展,智能家居成为新的研究热点和应用领域[1-2]。近几年,微信已经被广泛普及使用,它可以保证用户的真实性,所以可以将微信与智能家居相结合,通过密钥进行身份认证,认证通过后用户便可与智能设备之间进行数据交换[3-4]。基于此,本文将微信公众号和CC3200芯片相结合,使用云服务器存储数据,实现了用户远程操控家居设备、获取家居环境状态的功能,系统可靠性高、实用性好、控制方便,具有较好的应用前景。

1 系统设计方案

    系统框图如图1所示。用户首先需要接入网络并且关注云家居公众号,之后通过密钥绑定家居控制系统,就可以在公众号中发送文本、语音消息,或者点击公众号中的菜单实现以下功能:远程控制家居设备,例如台灯、风扇、空调等;查询设备状态,例如获取台灯状态、风扇转速、空调温度等;获取传感器数据,例如室内温湿度、天然气浓度值等。

ck1-t1.gif

    系统分为服务器端和客户端:服务器端为微信服务器和阿里云服务器;客户端为微信公众号和CC3200 LaunchPad开发板,这两个客户端都可以向服务器提交数据和下载数据。

    微信服务器定义了公众号菜单,并且把微信客户端发送的消息以可扩展标记语言(Extensible Markup Language,XML)形式的数据发送到阿里云服务器;阿里云服务器根据指令更新数据库,同时接收开发板上传的传感器数据,将数据存入数据库。

    当微信公众号请求数据时,阿里云服务器将响应消息打包成XML数据,并通过微信服务器转发到微信客户端;当开发板请求数据时,阿里云服务器将请求的数据通过HTTP协议响应给开发板。

2 系统硬件设计

    系统硬件组成框图如图2所示。本系统采用CC3200作为主控芯片,该芯片是TI推出的集成高性能ARM Cortex-M4内核的微控制器,是业界首个具有内置Wi-Fi的MCU[5-6]。CC3200芯片包括3大子模块:MCU子模块内核运行频率为80 MHz,具有多种外设;Wi-Fi网络处理器子模块支持站点STA、接入点AP和Wi-Fi Direct模式;电源管理子模块可以启用低功耗模式[7]

ck1-t2.gif

    CC3200通过Wi-Fi连接到路由器,进而接入互联网,然后通过HTTP-GET的方式获取数据库中台灯等设备的状态,同时将传感器数据上传到阿里云服务器[8]

3 系统软件设计

    软件设计包含3部分:CC3200微控制器程序设计涉及将设备联网进行数据的上传和下载、传感器数据的采集和显示;微信公众平台程序设计包含微信公众号菜单界面设计;阿里云服务器程序设计包括微信请求接口、CC3200数据交互接口。

3.1 CC3200微控制器程序设计

    CC3200通过Wi-Fi连接到路由器,进而接入互联网,然后创建HTTP客户端,连接到HTTP服务器上,上传传感器状态并且获取最新的控制指令。

    其中,开发板上传状态并获取指令流程图如图3所示。首先设置HTTP-GET的请求头,主机名Host为139.129.9.166,通过sprintf函数设置请求URL:sprintf(acSendBuff,"/WeChat/cc3200/upload_and_get.do?sequence=number1&temperature=%.2f&humidity=%d&MQ2Data=%d",temperature,humidity,MQ2Data),温湿度和天然气浓度通过此URL进行上传;之后发送HTTP-GET请求到阿里云服务器,服务器接收到请求后定位请求资源,然后将资源响应给开发板。

ck1-t3.gif

    开发板收到HTTP响应后先判断状态行的状态代码是否等于200,若等于200就代表客户端请求成功,此时先逐行读取响应头部,直至到达响应头部的末尾,然后进行响应正文数据的处理。

    处理响应正文数据过程为:响应正文为“light=off,fan=on,airconditionState=cold,airconditionTemp=26”,以获取台灯状态为例,通过strstr函数寻找“light=”字符串在响应正文中的位置(pcIndxPtr),然后将pcIndxPtr加上“light=”的长度得到台灯状态字符串的起始地址,进而得到台灯状态并更新。

3.2 阿里云服务器程序设计

3.2.1 微信请求接口设计

    微信服务器把用户发送的消息(文本、语音、菜单)以XML代码形式转发到阿里云服务器,转发的URL为http://139.129.9.166/WeChat/wechat/index.do,微信请求接口程序流程图如图4所示。

ck1-t4.gif

    具体过程如下:

    (1)请求经过阿里云服务器的处理后分发到WeChatController.java文件中的index函数,此函数先将XML消息解析成Map,然后获取消息的类型MsgType:文本、语音、菜单消息分别对应text、voice、event。

    (2)根据消息的类型分别路由到不同的函数进行处理:文本、语音和菜单消息分别对应函数onText、onVoice、onEvent,在这些函数中获取不同类型数据中的微信消息wxMsg,然后判断wxMsg中是否存在命令信息,比如开台灯、风扇状态等命令,若存在则将其转换为关键字key,例如L_ON、F_STATUS等。

    (3)根据关键字调用WxAction类中相应操作函数:若关键字为L_ON,则调用函数do_l_on;如果关键字为F_STATUS,则调用函数do_f_status。

    上述操作函数分为两种处理方式:若操作为开台灯等类别命令时,操作函数首先把命令保存到数据库,然后把需要回复的文本及对应语音URL打包成XML格式回应给微信服务器;若操作为获取台灯状态等类型命令时,操作函数首先从数据库里读取状态信息,然后打包回应给微信服务器。

3.2.2 CC3200数据交互接口程序设计

    CC3200数据交互接口程序流程图如图5所示,具体过程为:CC3200的HTTP-GET请求经阿里云服务器处理后分发到CC3200Controller.uploadAndGet函数进行处理,从请求的URL中取出CC3200上传的温湿度和天然气浓度值,存入MySQL数据库;之后从数据库中读取台灯等设备的状态,通过HTTP协议响应给CC3200,从而可以更新设备状态。

ck1-t5.gif

3.3 微信公众号程序设计

    微信公众平台上自定义菜单有助于丰富公众号的界面,让用户更好更快地理解公众号的功能。自定义菜单接口可实现多种类型按钮,比如click按钮、view按钮等[9]

    其中,用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给阿里云服务器,并且带上按钮中所填写的key值,比如台灯状态等;用户点击view类型按钮后,微信客户端将会打开在按钮中填写的网页URL,比如本设计中用户可以通过点击公众号右下角的“用户手册”查看该公众号如何使用[10]

4 系统测试

    液晶显示屏上显示的信息如图6所示,绑定设备和获取温湿度界面如图7所示,文本控制台灯和语音控制风扇界面如图8所示。

ck1-t6.gif

ck1-t7.gif

ck1-t8.gif

5 结论

    本文将微信公众号和内置Wi-Fi的CC3200芯片加以结合,并利用云服务器存储数据,设计了一款云家居交互系统,用户使用微信公众号即可远程控制家居设备并获取家居环境状态。

    系统优势在于:(1)数据处理代码部署在服务器上,系统更新升级只需在服务器上进行,用户不需要进行软件更新,体验性较好;(2)将家居设备联网,使用户随时都可以对家居设备进行控制,实现了智能化;(3)将微信和阿里云服务器巧妙地结合起来,为智能云家居提供了一个良好的范例。

参考文献

[1] 刘晓彤.嵌入式智能家居远程监控系统的设计与实现[D].北京:北京交通大学,2009.

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

[3] 戴晟辉.微信公众平台搭建、开发与实践指南[M].北京:中国铁道出版社,2014.

[4] 朱智星,白鹏飞,罗智杰,等.基于微信公众平台的云智能采集系统的设计[J].电子技术应用,2015,41(8):17-19.

[5] TI.e络盟供应TI针对物联网应用的LaunchPad与Booster-Pack开发平台[J].单片机与嵌入式系统应用,2014(10):25.

[6] Feng Chao,Mao Pengyu,Bian Tingting,et al.A medical image transmission system for Wi-Fi based wireless capsule endoscopy[C].International Conference on Computer Science & Education.IEEE,2015:601-605.

[7] 郭书军.ARM Cortex-M4+Wi-Fi MCU应用指南——CC3200 CCS基础篇[M].北京:电子工业出版社,2015.

[8] PALLE D V,KANCHI R R.Cloud-based monitoring and measurement of pressure and temperature using CC3200[C].International Conference on Intelligent Systems and Control.IEEE,2017.

[9] 方倍工作室.微信公众平台开发最佳实践[M].北京:机械工业出版社,2014.

[10] 刘捷.微信公众平台企业应用开发实战[M].北京:电子工业出版社,2015.



作者信息:

高世皓1,2,王立华2,朱吉芳3,周松江4

(1.北京邮电大学 泛网无线通信教育部重点实验室,北京100876;

2.山东科技大学 电子通信与物理学院,山东 青岛266590;

3.阿里巴巴集团,浙江 杭州311121;4.北京邮电大学 信息光子学与光通信研究院,北京100876)

继续阅读>>