《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于CC3200及微信公眾號的云家居交互系統(tǒng)
基于CC3200及微信公眾號的云家居交互系統(tǒng)
2018年電子技術應用第3期
高世皓1,2,王立華2,朱吉芳3,周松江4
1.北京郵電大學 泛網(wǎng)無線通信教育部重點實驗室,北京100876; 2.山東科技大學 電子通信與物理學院,山東 青島266590; 3.阿里巴巴集團,浙江 杭州311121;4.北京郵電大學 信息光子學與光通信研究院,北京100876
摘要: 為了實現(xiàn)家居智能化,基于CC3200無線Wi-Fi微控制器、微信公眾號及阿里云服務器設計了一款智能云家居交互系統(tǒng),用戶可通過微信公眾號遠程控制家居設備,并可獲取傳感器的狀態(tài)。提出了系統(tǒng)總體設計方案,介紹了系統(tǒng)硬件組成,給出了CC3200微控制器、微信公眾號和阿里云服務器的軟件設計。實驗測試表明,該系統(tǒng)運行穩(wěn)定,用戶體驗較好,具有較高的應用價值。
中圖分類號: TP277
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173614
中文引用格式: 高世皓,王立華,朱吉芳,等. 基于CC3200及微信公眾號的云家居交互系統(tǒng)[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.
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ā)展,人們對居住條件的要求逐漸提高,傳統(tǒng)的只有居住功能的家居已經(jīng)不能滿足人們對居住環(huán)境的要求,智慧化和數(shù)字化是未來家居的發(fā)展趨勢。隨著物聯(lián)網(wǎng)技術的不斷發(fā)展,智能家居成為新的研究熱點和應用領域[1-2]。近幾年,微信已經(jīng)被廣泛普及使用,它可以保證用戶的真實性,所以可以將微信與智能家居相結合,通過密鑰進行身份認證,認證通過后用戶便可與智能設備之間進行數(shù)據(jù)交換[3-4]?;诖耍疚膶?a class="innerlink" href="http://theprogrammingfactory.com/tags/微信公眾號" title="微信公眾號" target="_blank">微信公眾號和CC3200芯片相結合,使用云服務器存儲數(shù)據(jù),實現(xiàn)了用戶遠程操控家居設備、獲取家居環(huán)境狀態(tài)的功能,系統(tǒng)可靠性高、實用性好、控制方便,具有較好的應用前景。

1 系統(tǒng)設計方案

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

ck1-t1.gif

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

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

    當微信公眾號請求數(shù)據(jù)時,阿里云服務器將響應消息打包成XML數(shù)據(jù),并通過微信服務器轉發(fā)到微信客戶端;當開發(fā)板請求數(shù)據(jù)時,阿里云服務器將請求的數(shù)據(jù)通過HTTP協(xié)議響應給開發(fā)板。

2 系統(tǒng)硬件設計

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

ck1-t2.gif

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

3 系統(tǒng)軟件設計

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

3.1 CC3200微控制器程序設計

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

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

ck1-t3.gif

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

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

3.2 阿里云服務器程序設計

3.2.1 微信請求接口設計

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

ck1-t4.gif

    具體過程如下:

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

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

    (3)根據(jù)關鍵字調(diào)用WxAction類中相應操作函數(shù):若關鍵字為L_ON,則調(diào)用函數(shù)do_l_on;如果關鍵字為F_STATUS,則調(diào)用函數(shù)do_f_status。

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

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

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

ck1-t5.gif

3.3 微信公眾號程序設計

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

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

4 系統(tǒng)測試

    液晶顯示屏上顯示的信息如圖6所示,綁定設備和獲取溫濕度界面如圖7所示,文本控制臺燈和語音控制風扇界面如圖8所示。

ck1-t6.gif

ck1-t7.gif

ck1-t8.gif

5 結論

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

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

參考文獻

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

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

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

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



作者信息:

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

(1.北京郵電大學 泛網(wǎng)無線通信教育部重點實驗室,北京100876;

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

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

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