闕鳴健,盛慶華,謝傳官
(杭州電子科技大學 電子信息學院,浙江 杭州 310018)
基于CC3200的智能云家居系統*
闕鳴健,盛慶華,謝傳官
(杭州電子科技大學 電子信息學院,浙江 杭州 310018)
隨著物聯網通信技術的高速發展以及云計算時代的來臨,建設智能家居系統的進程逐步加快。針對智能云家居系統的設計邏輯提出如下解決方案:圍繞集成WiFi模塊的CC3200芯片設計智能云家居系統,利用ZigBee的組網技術搭建家庭網絡并部署包括空調、音響、傳感器在內的設備節點。采用串口標準的通信協議實現CC3200系統板通過ZigBee協調器間接對智能家居系統中的各個家庭設備的檢測和管理。同時CC3200在應用層扮演了HTTP客戶端的角色,定時訪問云服務器上的數據庫以獲取用戶最新需求信息,并且將用戶的信息反饋到傳感器節點上。用戶能夠通過微信公眾平臺發送需求信息對家居內的各個設備進行監控,該微信公眾平臺將會與云服務器通信以完成數據庫的信息錄入。
智能家居;CC3200;新浪云(SAE);ZigBee;微信公眾平臺;數據庫
智能家居是以住宅為平臺,集成網絡通信、自動控制、電源管理、綜合布線、音視頻/流媒體等技術的管理系統。目前,發達國家的智能家居已經獲得長足發展。如:美國的x-10、CEBus和Lonwork,日本的HBS以及歐洲的EIB和EHS等在國際上影響深遠。而國內對智能家居和家庭網絡等產品的研制起步較晚。近年來,隨著全球智能化趨勢的快速發展以及國家出臺相關政策的推動,物聯網通信、云計算等技術得到大力扶持,創建高效、便捷的家庭環境有了更加堅實的技術基礎。基于上述原因以及實際情況,本文提出了一種基于CC3200[1]和云計算平臺的智能家居系統的解決方案,融合當下流行的微信(WeChat)平臺技術和ZigBee家庭組網技術,以及具有海量數據處理能力的新浪云SAE(SinaAppEngine)平臺來構建智能家居系統,以滿足家庭智能的個性化需求,提高智能家居系統的決策能力和聯動控制能力。
本項目是基于CC3200設計的無線智能家居系統,系統框圖如圖1所示。家居客戶端以CC3200+ZigBee協調器為核心組建家庭網關,CC3200工作在基站模式接入無線路由AP連接外網,同時利用ZigBee的組網技術連接家庭網絡中安裝的設備節點組建家庭內網。采用串口標準通信協議實現CC3200系統板通過ZigBee協調器間接對智能家居系統中的各個家庭設備(紅外控制、溫濕度監測、臺燈控制、音頻編解碼控制)進行控制和管理。云服務器端以LNMP(Linux+Nginx+MySQL+PHP)為架構,Nginx作為輕量級的HTTP服務結合MySQL的存儲功能存儲用戶通過微信公眾平臺發送的信息,并提供給家庭網關。

圖1 系統原理框圖
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.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口工作在漏極開路模式,已允許設備在不發送數據時能夠釋放總線。
本文設計并實現了一種基于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-),男,本科生,主要研究方向:儀器儀表、無線傳輸。