陸金虎,王益祥
(南京理工大學 機械工程學院,南京 210094)
基于微信公眾平臺的智能家庭監(jiān)控系統(tǒng)設計*
陸金虎,王益祥
(南京理工大學 機械工程學院,南京 210094)
對目前的智能家庭監(jiān)控系統(tǒng)進行了研究,提出了一種基于微信公眾平臺的智能家庭監(jiān)控系統(tǒng)。整個監(jiān)控系統(tǒng)的底端是數(shù)據(jù)采集端,采用帶有Linux操作系統(tǒng)的Tiny6410開發(fā)板,核心控制器為S3C6410芯片。將mjpg-streamer視頻服務器移植到Linux系統(tǒng)上,可提供視頻流以便遠程觀看;同時在開發(fā)板上集成相應的傳感器,可以采集室內的環(huán)境數(shù)據(jù)。數(shù)據(jù)采集端可以將采集的數(shù)據(jù)以網(wǎng)絡的形式傳遞給中間層云服務器,進而傳遞給微信用戶;反之用戶可以發(fā)送控制查詢指令給底層數(shù)據(jù)采集端。
微信;S3C6410;數(shù)據(jù)采集;監(jiān)控;Linux
隨著社會科技的迅速發(fā)展,人們生活水平的提高,對生活質量更加重視,故智能家居概念一提出來,就引起了社會的廣泛關注。目前,智能家居的設計思路大多是設計一個可以連接網(wǎng)絡的底層硬件控制設備,并開發(fā)與之相對應的手機APP或者手持終端作為用戶查看和控制的載體,但這樣設計的缺點是手機APP或者手持終端的開發(fā)周期較長、成本較高[1]。針對此缺點,本文設計一種基于微信平臺、以太網(wǎng)和移動網(wǎng)絡通信技術、騰訊云服務器的家庭安防監(jiān)控系統(tǒng),該系統(tǒng)可以實現(xiàn)對家庭的室內環(huán)境數(shù)據(jù),如溫濕度、煙霧和危險氣體,以及常用家居電器開關的控制。
基于微信的家庭安防監(jiān)控系統(tǒng)共分為三個部分:底層的數(shù)據(jù)采集和控制系統(tǒng)、微信公眾平臺和騰訊云服務器上搭建的服務系統(tǒng),以及微信手機端在內的軟件系統(tǒng)。系統(tǒng)的總體功能如圖1所示。數(shù)據(jù)采集和控制系統(tǒng)部分與騰訊云服務器之間通過HTTP網(wǎng)絡傳輸?shù)姆绞竭M行數(shù)據(jù)傳輸,云服務器再借助微信公眾平臺接口與微信手機端進行信息交互。
圖1 系統(tǒng)總體功能圖
系統(tǒng)的硬件選用的是以三星公司生產(chǎn)的S3C6410為核心處理器的Tiny6410開發(fā)板,其設計基于ARM1176JZF-S核,內部集成了強大的多媒體處理單元,具有256 MB NAND Flash以及外界的SD卡座。該開發(fā)板具有100M標準網(wǎng)絡接口、標準DB95線串口、Mini USB2.0接口、USB HOST接口、4路TTL串口以及I2C-EEPROM、蜂鳴器等。圖2為系統(tǒng)硬件的總體框圖。
圖2 硬件系統(tǒng)總體框圖
2.1 傳感器的選擇與電路設計
2.1.1 溫濕度傳感器
圖3 DHT11傳感器工作原理圖
本設計采用DHT11溫濕度傳感器,因為DHT11具備可以同時采集溫度和濕度數(shù)據(jù)的功能,且采集的數(shù)據(jù)是一次性以40位數(shù)據(jù)格式的方式全部傳給單片機,與單片機的通信方式為單總線,其不具有很高的數(shù)據(jù)傳輸準確度等優(yōu)勢[2]。DHT11模塊共有4個引腳,引腳1為供電引腳,引腳2為數(shù)據(jù)傳輸引腳,引腳3置空,引腳4為接地引腳。DHT11模塊與MCU之間的連接方式如圖3所示。
DHT11溫濕度傳感器由S3C6410主控芯片控制,DHT11在正常情況下處于低功耗模式,當MCU向傳感器發(fā)送一個開始信號的標志時,DHT11會從低功耗模式轉換到高功耗模式。
MCU發(fā)送開始型號完畢后,會接收來自DHT11返回的響應信號,同時,DHT11緊接著向MCU一次性發(fā)送40位的數(shù)據(jù),數(shù)據(jù)格式為:
8位濕度整數(shù)數(shù)據(jù)+8位濕度小數(shù)數(shù)據(jù)+8位溫度整數(shù)數(shù)據(jù)+8位溫度小數(shù)數(shù)據(jù)+8位校驗
發(fā)送的順序是高位在前低位在后,至此完成一次信號采集,用戶可以根據(jù)數(shù)據(jù)格式選讀其中的信息數(shù)據(jù)。
2.1.2 煙霧傳感器
MQ-2煙霧傳感器選用的氣敏材料為二氧化錫(SnO2),在潔凈的空氣中,它的電導率較低,但是,當空氣中存在可燃氣體時,其電導率會增加,而且電導率的大小與空氣中可燃氣體濃度成正相關關系。
MQ-2煙霧傳感器對煙霧有很高的靈敏度,可用于對多種危險氣體進行檢測,如液化氣、丙烷、氫氣等[3]?;谏鲜隹紤],本設計采用MQ-2煙霧傳感器。如圖4所示,MQ-2煙霧傳感器模塊共有4個引腳,引腳1為供電引腳,引腳2為TTL高低電平輸出端,引腳3為模擬電壓輸出端,引腳4位為接地引腳。
QM-N10的4引腳輸出直流信號,直流信號隨著煙霧濃度變化,其值被加載到比較器U1A的2引腳,同Rp組成比較器的閾值電壓。當煙霧濃度較高時,輸出電壓高于閾值電壓,比較器輸出低電平(0V),LED燈報警;當濃度降低正常返回時,傳感器的輸出電壓低于閾值電壓,比較器輸出高電平(Vcc),LED燈熄滅。調整Rp,可以調節(jié)比較器的閾值電壓,以此調整靈敏度。引入R1構成傳感器的加熱電路,保護加熱絲免受冷力的影響。
圖4 煙霧傳感器工作原理圖
2.2 USB攝像頭的電路設計
USB攝像頭采用的是中星微的ZC301P攝像頭,屬于一種CMOS攝像頭,具有超強的感光效果。使用中星微301P攝像頭時,需要在底層的Linux系統(tǒng)中移植USB攝像頭驅動,即在底層開發(fā)板上的USB接口中插入USB攝像頭,在USB驅動的支持下,攝像頭方可實現(xiàn)實時使用視頻數(shù)據(jù)。圖5為USB接口原理圖。
圖5 USB接口原理圖
3.1 現(xiàn)場MCU數(shù)據(jù)采集端軟件設計
現(xiàn)場MCU數(shù)據(jù)采集端實時采集室內環(huán)境數(shù)據(jù),并將采集的數(shù)據(jù)通過以太網(wǎng)模塊以HTTP網(wǎng)絡通信的方式發(fā)送至云服務器端,同時在數(shù)據(jù)采集端將采集的數(shù)據(jù)與系統(tǒng)內預先設定的上限值和下限值相比較,決定數(shù)據(jù)采集系統(tǒng)是否鈴聲報警,以及在云服務器端判斷接收的數(shù)據(jù)是否在安全值范圍內決定是否向用戶發(fā)送微信報警信息。圖6為MCU控制器主程序流程圖。
圖6 MCU數(shù)據(jù)采集端主程序流程圖
3.2 服務器端軟件設計
本次設計的服務器端選用開放的騰訊云服務器,功能是完成MCU控制端發(fā)來的傳感器數(shù)據(jù),以及實現(xiàn)MCU控制端與微信用戶的信息傳遞。
在進行服務器端軟件設計之前需要在服務器端的數(shù)據(jù)庫中創(chuàng)建一張表,用于存儲傳感器數(shù)據(jù),如表1所列。
本次設計服務器的應用程序含有4個功能模塊:微信公眾平臺服務器的驗證模塊、微信數(shù)據(jù)包解析模塊、指令處理模塊和數(shù)據(jù)存儲處理模塊。
表1 數(shù)據(jù)庫表
實現(xiàn)微信公眾平臺與云服務器(云服務器上的Web應用)信息交互的前提是確保云服務器上的應用程序與微信公眾平臺的接口相連,確定對云服務器(云服務器上的Web應用)的請求來自微信公眾平臺,故此需要微信公眾平臺服務器的驗證模塊[4]。請求驗證流程如下:
① 獲取HTTP GET請求中的4個參數(shù):signature、timestamp、nonce和echostr;
② 將token、timestamp和nonce3個參數(shù)按字典排序,其中token由有開發(fā)者指定,不會從GET請求中獲??;
③ 將排序后的3個參數(shù)按順序拼接成一個字符串,并對該字符串以sha1方式進行加密;
④ 將signature參數(shù)與加密后的字符串相比較,如果相等則證明該請求源自微信服務器,同時微信服務器原樣返回參數(shù)echostr。
如果微信公眾平臺驗證模塊驗證成功,云服務器就可以與微信公眾平臺進行信息交互,交互的信息數(shù)據(jù)格式是XML形式的,所以要對信息數(shù)據(jù)包進行解析,故云服務器的應用程序模塊應包含數(shù)據(jù)解析模塊。微信公眾平臺的開發(fā)采用JAVA語言,JAVA解析XML數(shù)據(jù)選用的工具是Dom4j和Xstream。
指令處理模塊顧名思義是處理微信用戶發(fā)來的查詢控制指令。指令處理模塊的程序開發(fā)分主要分為以下兩個部分:
① 確定請求是否來自微信,如果是,則獲取請求中的用戶查詢控制指令參數(shù);若否,則退出程序;
② 連接云服務器的數(shù)據(jù)庫,根據(jù)不同的用戶查詢控制指令,從數(shù)據(jù)庫中獲取相應的傳感器的數(shù)值返回給用戶。
用戶在微信端輸入濕度、溫度、濃度或者查詢指令后,云服務器會根據(jù)用戶的指令在數(shù)據(jù)庫的表中查詢數(shù)據(jù)值,最后依據(jù)微信發(fā)送的查詢指令,將查得的數(shù)據(jù)值與數(shù)據(jù)保存的時間一起發(fā)給微信用戶。
數(shù)據(jù)存儲處理模塊用于將MCU控制端采集的傳感器數(shù)據(jù)實時保存下來,并且在保存的過程中,可以實時檢查數(shù)據(jù)是否在標定的范圍內,如果不在,則向微信用戶發(fā)送報警信息。數(shù)據(jù)存儲處理模塊的程序開發(fā)流程如下:
① 確定請求是否來自微信,如果是,則獲取請求中的參數(shù)(傳感器采集的數(shù)據(jù));否則,則退出程序;
② 連接云服務器的數(shù)據(jù)庫,將獲取的參數(shù)存儲到數(shù)據(jù)中;
③ 判定獲取的傳感器數(shù)據(jù)是否超出限值,如果超出限值,則向微信用戶發(fā)送報警信息。
進行系統(tǒng)測試前,首先關注微信公眾賬號,關注成功后,公眾賬號會返回微信用戶關注成功消息,圖7為微信公眾賬號關注歡迎消息和功能界面。
圖7 微信公眾賬號關注成功界面
微信用戶手機客戶端是家庭安防遠程監(jiān)控端,通過發(fā)送相關查詢指令(溫度、濕度、煙霧等)或者點擊菜單中的查詢按鈕,可以實時查詢家庭室內環(huán)境數(shù)據(jù),實現(xiàn)微信和MCU數(shù)據(jù)采集端的互動。
在測試的時候,同時用打火機對溫度傳感器進行加熱,以及當溫度達到極限值時,MCU數(shù)據(jù)采集端會發(fā)出聲音報警,同時,微信用戶手機端也會受到溫度過高報警信息;用戶點擊視頻菜單按鈕,可以查詢攝像頭采集的數(shù)據(jù)。
[1] 智之屋. 智能家居設計方案[J]. 數(shù)字社區(qū)&智能家居, 2006(27):67-72.
[2] 倪天龍. 單總線傳感器DHT11在溫濕度測控中的應用[J]. 單片機與嵌入式系統(tǒng)應用, 2010, 10(6):60-62.
[3] 蘇文靜, 文小玲, 朱琥. 可燃氣體報警器的設計[J]. 電工電氣, 2009(5):8-11.
[4] 柳峰. 微信公眾平臺應用開發(fā)[M]. 北京:機械工業(yè)出版社, 2014.
陸金虎(碩士研究生)、王益祥(副教授),主要研究方向為嵌入式軟件與硬件。
Intelligent Home Monitoring System Based on WeChat Public Platform
Lu Jinhu,Wang Yixiang
(School of Mechanical Engineering,Nanjing University of Science and Technology,Nanjing 210094,China)
In the paper, a kind of intelligent home monitoring system based on WeChat public platform is proposed.The bottom of the entire monitoring system is the data acquisition side,which uses the Tiny6410 development board with Linux operating system,the core controller is S3C6410 chip.The mjpg-streamer video server is transplanted to the Linux system,it can provide video stream for the remote access.At the same time,the corresponding sensor is integrated on the development board,which can collect the indoor environmental data.At the end of the data collection,the collected data can be transmitted to the cloud server through the network,and then is transmitted to the WeChat user.And the user also can send the control instructions to the underlying data collection side.
WeChat;S3C6410;data acquisition;monitor;Linux
國家級-國家自然科學基金資助項目(61074006)。
TP319
A
?迪娜
2017-04-20)