周橋梁

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