周橋梁
摘要:本系統(tǒng)使用了基于單片機(jī)教學(xué)而設(shè)計(jì)的微型電腦主板Raspberry Pi作為主控制系統(tǒng),通過Python編程語(yǔ)言,web.py應(yīng)用框架和微信公眾平臺(tái)。實(shí)現(xiàn)了燈光智能控制,家庭視頻監(jiān)控,智能安全預(yù)警等功能。具有開發(fā)成本低,可移植性強(qiáng),結(jié)構(gòu)簡(jiǎn)單,使用便捷等優(yōu)點(diǎn),具有很大的推廣和教研價(jià)值。
關(guān)鍵詞:Raspberry Pi;智能家居;家庭安防;微信公眾平臺(tái)
中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)05-0158-01
1 前言
根據(jù)《中國(guó)智能家居設(shè)備行業(yè)發(fā)展環(huán)境與市場(chǎng)需求預(yù)測(cè)分析報(bào)告前瞻》分析,目前我國(guó)智能家居產(chǎn)品與技術(shù)的百花齊放,市場(chǎng)開始明顯出現(xiàn)低、中、高不同產(chǎn)品檔次的分水嶺,行業(yè)進(jìn)入快速成長(zhǎng)期。微信公眾平臺(tái)提供了多種事件的推送,如普通文本消息、自定義菜單、新聞等,本項(xiàng)目主要用到自定義菜單。
2 功能設(shè)計(jì)
本系統(tǒng)是由微信公眾號(hào)的用戶向公眾號(hào)發(fā)出指令,指令到達(dá)微信服務(wù)器后再由微信服務(wù)器轉(zhuǎn)發(fā)到Raspberry Pi上,Raspberry Pi再對(duì)數(shù)據(jù)進(jìn)行處理執(zhí)行相應(yīng)的操作然后將反饋送給微信服務(wù)器進(jìn)而讓用戶接收到返回的信息。同時(shí),在開啟了入侵報(bào)警和可燃?xì)怏w泄露報(bào)警后,當(dāng)連接到Raspberry Pi上的傳感器感應(yīng)到報(bào)警信息時(shí),Raspberry Pi會(huì)主動(dòng)向指定的用戶發(fā)送相關(guān)的告警信息。也可以在制定的web頁(yè)面上看到實(shí)時(shí)視頻監(jiān)控及整個(gè)系統(tǒng)的運(yùn)行狀態(tài)。
3 軟件設(shè)計(jì)
本系統(tǒng)是以Raspberry Pi為中心,軟件設(shè)計(jì)由以下幾個(gè)部分組成:傳感器的數(shù)據(jù)收發(fā)及處理、與微信服務(wù)器進(jìn)行對(duì)接,被動(dòng)回復(fù)消息、主動(dòng)向微信服務(wù)器發(fā)送消息、向微信發(fā)送圖片、web頁(yè)面查看監(jiān)控及狀態(tài)信息這幾個(gè)部分組成。
微信公眾號(hào)與Raspberry Pi首次連接時(shí)需要進(jìn)行一次驗(yàn)證,微信服務(wù)器將發(fā)送GET請(qǐng)求到Raspberry Pi上,并且?guī)в校╯ignature、timestamp、nonce、echostr)四個(gè)標(biāo)簽數(shù)據(jù),在Raspberry Pi端通過對(duì)signatur的效驗(yàn),來判斷此消息是否為來自微信服務(wù)器的請(qǐng)求。
當(dāng)這個(gè)系統(tǒng)傳感器檢測(cè)到異常信息(比如有人闖入)時(shí),需要主動(dòng)向微信用戶發(fā)送消息。向微信服務(wù)器發(fā)送消息,首先要根據(jù)微信公眾平臺(tái)提供的appID和appsecret來獲取一個(gè)access_token。這個(gè)access_token可以使用7200秒,超時(shí)之后需要重新獲取。對(duì)于圖片消息,首先需要上傳圖片到微信服務(wù)器,微信服務(wù)器會(huì)返回一個(gè)media_id,然后需要將包含這個(gè)media_id的消息發(fā)送給用戶。
4 微信功能測(cè)試
首先需要在微信公眾號(hào)管理頁(yè)面填寫服務(wù)器的URL地址和設(shè)置一個(gè)用來驗(yàn)證的Token。然后在Raspberry Pi上運(yùn)行對(duì)接的python程序,如果成功對(duì)接,會(huì)提示配置成功,Raspberry Pi即可和玩微信服務(wù)器正常通信。
對(duì)接完成后需要進(jìn)行微信自定義菜單的創(chuàng)建,本項(xiàng)目中使用的自定義菜單附帶有三個(gè)參數(shù)(菜單名稱name、菜單類型type、鍵值key或者url)。菜單名稱即為在客戶端顯示的菜單名,菜單類型本項(xiàng)目用到click型和view型,用戶點(diǎn)擊click型菜單時(shí)會(huì)向Raspberry Pi發(fā)送一個(gè)在代碼中設(shè)定的鍵值key(一個(gè)字符串)。用戶點(diǎn)擊view型菜單會(huì)自動(dòng)跳轉(zhuǎn)到設(shè)定的url。寫好代碼并在微信公眾平臺(tái)管理頁(yè)面提交后在微信客戶端顯示如圖1所示。
5 結(jié)果分析
根據(jù)調(diào)試結(jié)果,整個(gè)系統(tǒng)運(yùn)行正常,返回的數(shù)據(jù)正確。傳感器的靈敏度需要根據(jù)實(shí)際情況做出響應(yīng)調(diào)整,整套系統(tǒng)在美觀程度上也需要通過制作專用電路板和封裝外殼得以改善,如果進(jìn)一步進(jìn)行優(yōu)化可以應(yīng)用到實(shí)際家居中,并具有一定的教研價(jià)值。
參考文獻(xiàn)
[1]劉嬋媛.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2012.
[2]Lindsey Kratochwill.樹莓派引發(fā)制造革命[N].北京科技報(bào),2015-07-06.endprint
數(shù)字技術(shù)與應(yīng)用2017年5期