《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于CC3200及微信公眾號(hào)的云家居交互系統(tǒng)
基于CC3200及微信公眾號(hào)的云家居交互系統(tǒng)
2018年電子技術(shù)應(yīng)用第3期
高世皓1,2,王立華2,朱吉芳3,周松江4
1.北京郵電大學(xué) 泛網(wǎng)無(wú)線通信教育部重點(diǎn)實(shí)驗(yàn)室,北京100876; 2.山東科技大學(xué) 電子通信與物理學(xué)院,山東 青島266590; 3.阿里巴巴集團(tuán),浙江 杭州311121;4.北京郵電大學(xué) 信息光子學(xué)與光通信研究院,北京100876
摘要: 為了實(shí)現(xiàn)家居智能化,基于CC3200無(wú)線Wi-Fi微控制器、微信公眾號(hào)及阿里云服務(wù)器設(shè)計(jì)了一款智能云家居交互系統(tǒng),用戶可通過(guò)微信公眾號(hào)遠(yuǎn)程控制家居設(shè)備,并可獲取傳感器的狀態(tài)。提出了系統(tǒng)總體設(shè)計(jì)方案,介紹了系統(tǒng)硬件組成,給出了CC3200微控制器、微信公眾號(hào)和阿里云服務(wù)器的軟件設(shè)計(jì)。實(shí)驗(yàn)測(cè)試表明,該系統(tǒng)運(yùn)行穩(wěn)定,用戶體驗(yàn)較好,具有較高的應(yīng)用價(jià)值。
中圖分類號(hào): TP277
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.173614
中文引用格式: 高世皓,王立華,朱吉芳,等. 基于CC3200及微信公眾號(hào)的云家居交互系統(tǒng)[J].電子技術(shù)應(yīng)用,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.
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.
Key words : CC3200;Wi-Fi;WeChat official account;Ali cloud server;smart home

0 引言

    隨著科技的發(fā)展,人們對(duì)居住條件的要求逐漸提高,傳統(tǒng)的只有居住功能的家居已經(jīng)不能滿足人們對(duì)居住環(huán)境的要求,智慧化和數(shù)字化是未來(lái)家居的發(fā)展趨勢(shì)。隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,智能家居成為新的研究熱點(diǎn)和應(yīng)用領(lǐng)域[1-2]。近幾年,微信已經(jīng)被廣泛普及使用,它可以保證用戶的真實(shí)性,所以可以將微信與智能家居相結(jié)合,通過(guò)密鑰進(jìn)行身份認(rèn)證,認(rèn)證通過(guò)后用戶便可與智能設(shè)備之間進(jìn)行數(shù)據(jù)交換[3-4]?;诖?,本文將微信公眾號(hào)CC3200芯片相結(jié)合,使用云服務(wù)器存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)了用戶遠(yuǎn)程操控家居設(shè)備、獲取家居環(huán)境狀態(tài)的功能,系統(tǒng)可靠性高、實(shí)用性好、控制方便,具有較好的應(yīng)用前景。

1 系統(tǒng)設(shè)計(jì)方案

    系統(tǒng)框圖如圖1所示。用戶首先需要接入網(wǎng)絡(luò)并且關(guān)注云家居公眾號(hào),之后通過(guò)密鑰綁定家居控制系統(tǒng),就可以在公眾號(hào)中發(fā)送文本、語(yǔ)音消息,或者點(diǎn)擊公眾號(hào)中的菜單實(shí)現(xiàn)以下功能:遠(yuǎn)程控制家居設(shè)備,例如臺(tái)燈、風(fēng)扇、空調(diào)等;查詢?cè)O(shè)備狀態(tài),例如獲取臺(tái)燈狀態(tài)、風(fēng)扇轉(zhuǎn)速、空調(diào)溫度等;獲取傳感器數(shù)據(jù),例如室內(nèi)溫濕度、天然氣濃度值等。

ck1-t1.gif

    系統(tǒng)分為服務(wù)器端和客戶端:服務(wù)器端為微信服務(wù)器和阿里云服務(wù)器;客戶端為微信公眾號(hào)和CC3200 LaunchPad開發(fā)板,這兩個(gè)客戶端都可以向服務(wù)器提交數(shù)據(jù)和下載數(shù)據(jù)。

    微信服務(wù)器定義了公眾號(hào)菜單,并且把微信客戶端發(fā)送的消息以可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)形式的數(shù)據(jù)發(fā)送到阿里云服務(wù)器;阿里云服務(wù)器根據(jù)指令更新數(shù)據(jù)庫(kù),同時(shí)接收開發(fā)板上傳的傳感器數(shù)據(jù),將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。

    當(dāng)微信公眾號(hào)請(qǐng)求數(shù)據(jù)時(shí),阿里云服務(wù)器將響應(yīng)消息打包成XML數(shù)據(jù),并通過(guò)微信服務(wù)器轉(zhuǎn)發(fā)到微信客戶端;當(dāng)開發(fā)板請(qǐng)求數(shù)據(jù)時(shí),阿里云服務(wù)器將請(qǐng)求的數(shù)據(jù)通過(guò)HTTP協(xié)議響應(yīng)給開發(fā)板。

2 系統(tǒng)硬件設(shè)計(jì)

    系統(tǒng)硬件組成框圖如圖2所示。本系統(tǒng)采用CC3200作為主控芯片,該芯片是TI推出的集成高性能ARM Cortex-M4內(nèi)核的微控制器,是業(yè)界首個(gè)具有內(nèi)置Wi-Fi的MCU[5-6]。CC3200芯片包括3大子模塊:MCU子模塊內(nèi)核運(yùn)行頻率為80 MHz,具有多種外設(shè);Wi-Fi網(wǎng)絡(luò)處理器子模塊支持站點(diǎn)STA、接入點(diǎn)AP和Wi-Fi Direct模式;電源管理子模塊可以啟用低功耗模式[7]。

ck1-t2.gif

    CC3200通過(guò)Wi-Fi連接到路由器,進(jìn)而接入互聯(lián)網(wǎng),然后通過(guò)HTTP-GET的方式獲取數(shù)據(jù)庫(kù)中臺(tái)燈等設(shè)備的狀態(tài),同時(shí)將傳感器數(shù)據(jù)上傳到阿里云服務(wù)器[8]。

3 系統(tǒng)軟件設(shè)計(jì)

    軟件設(shè)計(jì)包含3部分:CC3200微控制器程序設(shè)計(jì)涉及將設(shè)備聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)的上傳和下載、傳感器數(shù)據(jù)的采集和顯示;微信公眾平臺(tái)程序設(shè)計(jì)包含微信公眾號(hào)菜單界面設(shè)計(jì);阿里云服務(wù)器程序設(shè)計(jì)包括微信請(qǐng)求接口、CC3200數(shù)據(jù)交互接口。

3.1 CC3200微控制器程序設(shè)計(jì)

    CC3200通過(guò)Wi-Fi連接到路由器,進(jìn)而接入互聯(lián)網(wǎng),然后創(chuàng)建HTTP客戶端,連接到HTTP服務(wù)器上,上傳傳感器狀態(tài)并且獲取最新的控制指令。

    其中,開發(fā)板上傳狀態(tài)并獲取指令流程圖如圖3所示。首先設(shè)置HTTP-GET的請(qǐng)求頭,主機(jī)名Host為139.129.9.166,通過(guò)sprintf函數(shù)設(shè)置請(qǐng)求URL:sprintf(acSendBuff,"/WeChat/cc3200/upload_and_get.do?sequence=number1&temperature=%.2f&humidity=%d&MQ2Data=%d",temperature,humidity,MQ2Data),溫濕度和天然氣濃度通過(guò)此URL進(jìn)行上傳;之后發(fā)送HTTP-GET請(qǐng)求到阿里云服務(wù)器,服務(wù)器接收到請(qǐng)求后定位請(qǐng)求資源,然后將資源響應(yīng)給開發(fā)板。

ck1-t3.gif

    開發(fā)板收到HTTP響應(yīng)后先判斷狀態(tài)行的狀態(tài)代碼是否等于200,若等于200就代表客戶端請(qǐng)求成功,此時(shí)先逐行讀取響應(yīng)頭部,直至到達(dá)響應(yīng)頭部的末尾,然后進(jìn)行響應(yīng)正文數(shù)據(jù)的處理。

    處理響應(yīng)正文數(shù)據(jù)過(guò)程為:響應(yīng)正文為“l(fā)ight=off,fan=on,airconditionState=cold,airconditionTemp=26”,以獲取臺(tái)燈狀態(tài)為例,通過(guò)strstr函數(shù)尋找“l(fā)ight=”字符串在響應(yīng)正文中的位置(pcIndxPtr),然后將pcIndxPtr加上“l(fā)ight=”的長(zhǎng)度得到臺(tái)燈狀態(tài)字符串的起始地址,進(jìn)而得到臺(tái)燈狀態(tài)并更新。

3.2 阿里云服務(wù)器程序設(shè)計(jì)

3.2.1 微信請(qǐng)求接口設(shè)計(jì)

    微信服務(wù)器把用戶發(fā)送的消息(文本、語(yǔ)音、菜單)以XML代碼形式轉(zhuǎn)發(fā)到阿里云服務(wù)器,轉(zhuǎn)發(fā)的URL為http://139.129.9.166/WeChat/wechat/index.do,微信請(qǐng)求接口程序流程圖如圖4所示。

ck1-t4.gif

    具體過(guò)程如下:

    (1)請(qǐng)求經(jīng)過(guò)阿里云服務(wù)器的處理后分發(fā)到WeChatController.java文件中的index函數(shù),此函數(shù)先將XML消息解析成Map,然后獲取消息的類型MsgType:文本、語(yǔ)音、菜單消息分別對(duì)應(yīng)text、voice、event。

    (2)根據(jù)消息的類型分別路由到不同的函數(shù)進(jìn)行處理:文本、語(yǔ)音和菜單消息分別對(duì)應(yīng)函數(shù)onText、onVoice、onEvent,在這些函數(shù)中獲取不同類型數(shù)據(jù)中的微信消息wxMsg,然后判斷wxMsg中是否存在命令信息,比如開臺(tái)燈、風(fēng)扇狀態(tài)等命令,若存在則將其轉(zhuǎn)換為關(guān)鍵字key,例如L_ON、F_STATUS等。

    (3)根據(jù)關(guān)鍵字調(diào)用WxAction類中相應(yīng)操作函數(shù):若關(guān)鍵字為L(zhǎng)_ON,則調(diào)用函數(shù)do_l_on;如果關(guān)鍵字為F_STATUS,則調(diào)用函數(shù)do_f_status。

    上述操作函數(shù)分為兩種處理方式:若操作為開臺(tái)燈等類別命令時(shí),操作函數(shù)首先把命令保存到數(shù)據(jù)庫(kù),然后把需要回復(fù)的文本及對(duì)應(yīng)語(yǔ)音URL打包成XML格式回應(yīng)給微信服務(wù)器;若操作為獲取臺(tái)燈狀態(tài)等類型命令時(shí),操作函數(shù)首先從數(shù)據(jù)庫(kù)里讀取狀態(tài)信息,然后打包回應(yīng)給微信服務(wù)器。

3.2.2 CC3200數(shù)據(jù)交互接口程序設(shè)計(jì)

    CC3200數(shù)據(jù)交互接口程序流程圖如圖5所示,具體過(guò)程為:CC3200的HTTP-GET請(qǐng)求經(jīng)阿里云服務(wù)器處理后分發(fā)到CC3200Controller.uploadAndGet函數(shù)進(jìn)行處理,從請(qǐng)求的URL中取出CC3200上傳的溫濕度和天然氣濃度值,存入MySQL數(shù)據(jù)庫(kù);之后從數(shù)據(jù)庫(kù)中讀取臺(tái)燈等設(shè)備的狀態(tài),通過(guò)HTTP協(xié)議響應(yīng)給CC3200,從而可以更新設(shè)備狀態(tài)。

ck1-t5.gif

3.3 微信公眾號(hào)程序設(shè)計(jì)

    微信公眾平臺(tái)上自定義菜單有助于豐富公眾號(hào)的界面,讓用戶更好更快地理解公眾號(hào)的功能。自定義菜單接口可實(shí)現(xiàn)多種類型按鈕,比如click按鈕、view按鈕等[9]

    其中,用戶點(diǎn)擊click類型按鈕后,微信服務(wù)器會(huì)通過(guò)消息接口推送消息類型為event的結(jié)構(gòu)給阿里云服務(wù)器,并且?guī)习粹o中所填寫的key值,比如臺(tái)燈狀態(tài)等;用戶點(diǎn)擊view類型按鈕后,微信客戶端將會(huì)打開在按鈕中填寫的網(wǎng)頁(yè)URL,比如本設(shè)計(jì)中用戶可以通過(guò)點(diǎn)擊公眾號(hào)右下角的“用戶手冊(cè)”查看該公眾號(hào)如何使用[10]。

4 系統(tǒng)測(cè)試

    液晶顯示屏上顯示的信息如圖6所示,綁定設(shè)備和獲取溫濕度界面如圖7所示,文本控制臺(tái)燈和語(yǔ)音控制風(fēng)扇界面如圖8所示。

ck1-t6.gif

ck1-t7.gif

ck1-t8.gif

5 結(jié)論

    本文將微信公眾號(hào)和內(nèi)置Wi-Fi的CC3200芯片加以結(jié)合,并利用云服務(wù)器存儲(chǔ)數(shù)據(jù),設(shè)計(jì)了一款云家居交互系統(tǒng),用戶使用微信公眾號(hào)即可遠(yuǎn)程控制家居設(shè)備并獲取家居環(huán)境狀態(tài)。

    系統(tǒng)優(yōu)勢(shì)在于:(1)數(shù)據(jù)處理代碼部署在服務(wù)器上,系統(tǒng)更新升級(jí)只需在服務(wù)器上進(jìn)行,用戶不需要進(jìn)行軟件更新,體驗(yàn)性較好;(2)將家居設(shè)備聯(lián)網(wǎng),使用戶隨時(shí)都可以對(duì)家居設(shè)備進(jìn)行控制,實(shí)現(xiàn)了智能化;(3)將微信和阿里云服務(wù)器巧妙地結(jié)合起來(lái),為智能云家居提供了一個(gè)良好的范例。

參考文獻(xiàn)

[1] 劉曉彤.嵌入式智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),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] 戴晟輝.微信公眾平臺(tái)搭建、開發(fā)與實(shí)踐指南[M].北京:中國(guó)鐵道出版社,2014.

[4] 朱智星,白鵬飛,羅智杰,等.基于微信公眾平臺(tái)的云智能采集系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(8):17-19.

[5] TI.e絡(luò)盟供應(yīng)TI針對(duì)物聯(lián)網(wǎng)應(yīng)用的LaunchPad與Booster-Pack開發(fā)平臺(tái)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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應(yīng)用指南——CC3200 CCS基礎(chǔ)篇[M].北京:電子工業(yè)出版社,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] 方倍工作室.微信公眾平臺(tái)開發(fā)最佳實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2014.

[10] 劉捷.微信公眾平臺(tái)企業(yè)應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2015.



作者信息:

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

(1.北京郵電大學(xué) 泛網(wǎng)無(wú)線通信教育部重點(diǎn)實(shí)驗(yàn)室,北京100876;

2.山東科技大學(xué) 電子通信與物理學(xué)院,山東 青島266590;

3.阿里巴巴集團(tuán),浙江 杭州311121;4.北京郵電大學(xué) 信息光子學(xué)與光通信研究院,北京100876)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。