周炳貴, 劉慶楷, 邱 桔
(暨南大學 電氣信息學院,廣東 珠海 519070)
基于樹莓派與微信的室內(nèi)物聯(lián)網(wǎng)安防系統(tǒng)
周炳貴, 劉慶楷, 邱 桔
(暨南大學電氣信息學院,廣東珠海519070)
為實現(xiàn)對室內(nèi)環(huán)境的安防監(jiān)控,利用傳感器和攝像頭對室內(nèi)環(huán)境進行數(shù)據(jù)采集,并通過樹莓派將數(shù)據(jù)上傳至服務器或數(shù)據(jù)庫中,供用戶通過微信公眾平臺查看。當室內(nèi)環(huán)境出現(xiàn)異常情況時,微信公眾平臺自動向用戶發(fā)送報警信息,并根據(jù)時間間隔和異常情況是否得到處理確定是否重新發(fā)送報警信息。測試結(jié)果表明:系統(tǒng)工作可靠,可移植性高,對室內(nèi)安防具有重要意義。
物聯(lián)網(wǎng)技術; 室內(nèi)安防監(jiān)控; 傳感器陣列; 樹莓派; 微信
室內(nèi)環(huán)境的安防問題一直受到重視。隨著計算機、通信和微電子技術的飛速發(fā)展和人民生活水平的提高,對于室內(nèi)環(huán)境的安全性與可管理性也有了更高的要求[1]。視頻監(jiān)控作為最傳統(tǒng)的室內(nèi)安防手段,在使用中暴露出來的缺點有:缺乏對環(huán)境參數(shù)如溫度,光照強度等的監(jiān)控,工程量大,成本高,需要人工關注而無法自動報警等。隨著物聯(lián)網(wǎng)、傳感器技術、現(xiàn)代通信技術的不斷發(fā)展,室內(nèi)安防也得到了飛躍性的發(fā)展。嵌入式遠程監(jiān)控安防系統(tǒng)出現(xiàn)并一直向著低功耗、多功能、高性能方向發(fā)展[2]。為了實現(xiàn)監(jiān)控的專業(yè)化、自動化,降低成本以及提高安防系統(tǒng)的質(zhì)量,本文進行了以下嘗試:以樹莓派為主機,使用傳感器陣列與攝像頭收集環(huán)境參數(shù),以微信作為用戶終端,構建了一套可操作性強且成本較低的室內(nèi)安防系統(tǒng)。
如圖1所示,系統(tǒng)由傳感器陣列、攝像頭、樹莓派3B、服務器、微信服務器、微信公眾平臺6個部分組成。樹莓派作為物聯(lián)網(wǎng)服務器[3,4],一方面負責與傳感器陣列和攝像頭連接,采集環(huán)境數(shù)據(jù)與拍攝環(huán)境圖像,另一方面將數(shù)據(jù)與圖像上傳至服務器。當用戶通過微信公眾平臺發(fā)起菜單事件請求,微信服務器響應這一事件,根據(jù)事件請求的類型,或是訪問服務器的數(shù)據(jù)庫以讀取環(huán)境數(shù)據(jù),或是要求服務器上傳最新的圖像到微信服務器,然后將數(shù)據(jù)轉(zhuǎn)發(fā)到用戶的微信公眾平臺。此外,對服務器設置定時任務,使得其每隔一段時間便可以自動檢查環(huán)境數(shù)據(jù),出現(xiàn)危險情況時及時通過微信公眾平臺的模板消息功能向用戶發(fā)出警報。服務器使用Linux虛擬主機,價格較為低廉。
圖1 系統(tǒng)結(jié)構框圖
采集的數(shù)據(jù)分為兩種:傳感器采集的數(shù)值型數(shù)據(jù)與攝像頭拍攝的圖像數(shù)據(jù)。某些室內(nèi)環(huán)境對環(huán)境參數(shù)的要求很高,尤其存放重要電子設備的場所,環(huán)境必須受控,所以,有必要在監(jiān)控系統(tǒng)中加入檢測環(huán)境參數(shù)傳感器[5]。傳感器可以選用集成有微處理器的傳感器,加裝無線串口模塊實現(xiàn)與樹莓派的通信。采用無線串口模塊可以實現(xiàn)在面積較大的室內(nèi)環(huán)境中布置較多的傳感器而無需考慮布線問題。本文安防系統(tǒng)使用了5種數(shù)值型傳感器,分別為光敏傳感器、溫濕度傳感器、煙霧傳感器、火焰?zhèn)鞲衅骱腿梭w感應傳感器。攝像頭一般僅需安裝一個,通過USB線直接與樹莓派相連即可,也可以通過USB延長線在其他位置安裝。軟件方面采用的是motion運動捕獲軟件[6,7],當從攝像頭畫面中捕獲到運動時,軟件會拍攝圖像并錄制視頻記錄整個運動過程。
3.1 數(shù)值型數(shù)據(jù)
3.1.1 數(shù)據(jù)接收與辨識
傳感器通過無線串口向樹莓派發(fā)送數(shù)據(jù),樹莓派將判斷串口發(fā)來的數(shù)據(jù)是否正確(有無丟包或錯亂等),并判斷數(shù)據(jù)由哪一只傳感器發(fā)來,將認定為正確的各傳感器數(shù)據(jù)上傳至服務器MySQL數(shù)據(jù)庫[8]中。
采用Python程序識別數(shù)據(jù)長度以及數(shù)據(jù)中的標識字符(加在傳感器數(shù)值的前面,與有效數(shù)據(jù)共同發(fā)送),以判斷數(shù)據(jù)有無丟包或錯亂,同時確定數(shù)據(jù)的上傳通道。如表1所示為傳感器與相應串口數(shù)據(jù)格式。相較于利用串口號固定各傳感器發(fā)送數(shù)據(jù)的上傳通道,采用Python腳本判斷數(shù)據(jù)格式確定數(shù)據(jù)的上傳通道更為可靠,因為在故障發(fā)生后,失電、再上電,或者插拔無線串口,均可能改變系統(tǒng)識別的串口號,導致數(shù)據(jù)上傳位置錯誤,甚至造成腳本運行錯誤,系統(tǒng)無法正常運行。
表1 傳感器與相應串口數(shù)據(jù)格式
注:各‘X’均代表一位數(shù)字。
3.1.2 數(shù)據(jù)上傳服務器數(shù)據(jù)庫
就跨國公司而言,他們通??梢栽诠镜睦麧欀蝎@利,以降低稅收,減少投資和盈余。由于跨國公司的價格轉(zhuǎn)移,稅收部分通常被定義為相互關聯(lián)的企業(yè)的兩個方面。
編寫Python腳本將辨識過的數(shù)據(jù)上傳至數(shù)據(jù)庫中指定的表內(nèi)[9],并加上時間戳,以便確認數(shù)據(jù)的時效性。如表2所示為數(shù)據(jù)與數(shù)據(jù)庫相應表名及屬性。
表2 數(shù)據(jù)與數(shù)據(jù)庫相應表名及屬性
3.1.3 數(shù)值型數(shù)據(jù)上傳程序流程
系統(tǒng)將數(shù)據(jù)辨識和上傳功能結(jié)合在一個Python程序中。讀取串口數(shù)據(jù)使用Python提供的pyserial模塊,上傳數(shù)據(jù)庫使用Python提供的MySQLdb模塊。程序的流程如圖2所示,圖中N為最多被使用的串口數(shù),即傳感器數(shù),文中N=5。
圖2 數(shù)值型數(shù)據(jù)處理與上傳程序流程
3.2 圖像數(shù)據(jù)
系統(tǒng)的圖像數(shù)據(jù)包括兩類,攝像頭拍攝的圖像和攝像頭攝錄的視頻。出于成本考慮,本文安防系統(tǒng)所用的服務器采用低端的虛擬主機,處理速度慢、帶寬小,所以圖像數(shù)據(jù)處理時僅將圖像通過POST方法[10]上傳到服務器,同時新圖像將覆蓋舊圖像。視頻數(shù)據(jù)則僅存儲本地,可以訪問樹莓派的存儲卡查看。采用POST方法上傳圖像可避免大的數(shù)據(jù)流,對數(shù)據(jù)庫讀寫造成過大的壓力。上傳到服務器而不是直接調(diào)用微信公眾平臺的臨時素材接口是因為這一接口有5 000次/天的調(diào)用限制[11],為了實現(xiàn)更好的監(jiān)控效果,刷新頻率應當足夠高,5 000次/天的刷新頻率遠遠不能滿足要求。
要用Python實現(xiàn)POST方法上傳圖像,需要服務器運行服務器端(Server)程序,樹莓派運行客戶端(Client)程序。服務器端腳本使用Python提供Cgi模塊和BaseHTTPRequestHandler模塊??蛻舳四_本使用Python提供的Requests模塊。程序流程如圖3。
圖3 圖像上傳程序流程
由于圖像在云端和本地均僅一張,按時間順序由新的覆蓋將舊的,所以不需要進行特別的管理。
考慮到服務器性能、存儲空間的限制、查詢數(shù)據(jù)庫的流暢度以及過期數(shù)據(jù)的重要性不高等原因,通過開啟MySQL數(shù)據(jù)庫的事件調(diào)度器設置定時事件[12],對3天前的數(shù)據(jù)在每天6:00進行定時清除。
5.1 功能菜單
功能菜單包含3個主菜單:運動捕獲、環(huán)境信息、其他數(shù)據(jù),其中其他數(shù)據(jù)主菜單下還有3個子菜單:人體感應、煙霧感應、火焰感應。功能菜單通過調(diào)用微信的自定義菜單接口產(chǎn)生[13]。
按下運動捕獲菜單,微信服務器將返回安防系統(tǒng)檢測到的上一次運動發(fā)生時的圖像,同時附帶時間。
按下環(huán)境信息菜單,微信服務器將返回室內(nèi)光線強度與溫濕度信息,同時附帶時間。
按下其他數(shù)據(jù)下的子菜單可以實現(xiàn)煙霧傳感器、火焰?zhèn)鞲衅鳌⑷梭w感應傳感器數(shù)據(jù)查詢,確認室內(nèi)環(huán)境安全。
5.2 警報推送
在服務器的指定路徑下存儲著能夠?qū)崿F(xiàn)警報推送功能的PHP文件,設置crontab定時任務每隔5 s訪問該文件一次,該文件將訪問數(shù)據(jù)庫查詢當前最新的煙霧傳感器、人體感應傳感器和火焰?zhèn)鞲衅鞯臄?shù)據(jù),如果符合報警條件,將會調(diào)用微信的模板消息接口,向指定微信賬號發(fā)送警報消息。為避免滿足報警條件時頻繁的警報信息騷擾,在發(fā)出警報的同時將向目錄下的.json文件中寫入當前時間,保證當時間間隔到1 min以上時才會發(fā)送第二次警報消息。
實現(xiàn)警報推送功能的PHP程序的流程如圖4。
圖4 警報推送功能程序流程
圖5為系統(tǒng)測試運行情況。系統(tǒng)安裝在實驗室中進行測試,對室內(nèi)環(huán)境進行了測量,模擬了觸發(fā)人體警報、煙霧警報和火焰警報的條件,經(jīng)過測試,證明系統(tǒng)工作可靠,測量數(shù)據(jù)準確,發(fā)送警報即時,對室內(nèi)安防有重要意義。
圖5 系統(tǒng)測試情況
基于樹莓派與微信的室內(nèi)物聯(lián)網(wǎng)安防系統(tǒng)利用了樹莓派微型計算機成本低廉、工作可靠的特點,配合微信服務的穩(wěn)定性、及時性,實現(xiàn)了室內(nèi)安防的基本功能,同時保證了數(shù)據(jù)的隱私性與安全性。系統(tǒng)成本較低、可移植性高,可以根據(jù)具體使用的室內(nèi)環(huán)境條件增加硬件,實現(xiàn)更好的服務,對保護人員與財產(chǎn)安全有著重要的意義,具有廣闊的市場前景。
[1] 楊國斌,李秋紅,王太宏.基于WSNs和3G網(wǎng)絡的無線遠程安防監(jiān)控系統(tǒng)[J].傳感器與微系統(tǒng),2012,31(12):76-78,82.
[2] 林飛龍,彭詩瑤.基于多傳感器的高性能監(jiān)控系統(tǒng)設計[J].傳感器與微系統(tǒng),2014,33(2):119-122,126.
[3] 于志強,溫志渝,謝瑛珂,等.基于樹莓派的多參數(shù)水質(zhì)檢測儀控制系統(tǒng)[J].儀表技術與傳感器,2015(6):20-23,27.
[4] 關靜麗,艾 紅,陳雯柏.基于樹莓派和Yeelink的開放實驗室監(jiān)控系統(tǒng)設計[J].實驗室研究與探索,2017(3):116-119.
[5] 郭 苧,郭曉冉,毛向東,等.基于GSM和WSNs的實驗室溫濕度采集報警系統(tǒng)設計[J].傳感器與微系統(tǒng),2017,36(8):92-94.
[6] 汪 鑫,彭雨薇.基于樹莓派的網(wǎng)絡監(jiān)控系統(tǒng)的研究與實現(xiàn)[J].硅谷,2014,7(14):25-26.
[7] Membrey P,Hows D.樹莓派學習指南[M].張志博,孫峻文,譯.北京:人民郵電出版社,2014:170-173.
[8] 汪志敏.基于樹莓派的智能監(jiān)控系統(tǒng)設計[J].科技廣場,2017(3):89-91.
[9] 楊佩璐,宋 強.Python寶典[M].北京:電子工業(yè)出版社,2014:296-299.
[10] 陳 雷,劉嘉勇.基于HTTP協(xié)議的POST數(shù)據(jù)分析與還原[J].通信技術,2011,44(4):132-134,169.
[11] 騰訊微信團隊.微信公眾平臺技術文檔[EB/OL].https:∥mp.weixin.qq.com/wiki.
[12] 林 松.工業(yè)控制中實時數(shù)據(jù)庫系統(tǒng)的設計與實現(xiàn)[D].福州:福州大學,2006:23-27.
[13] 方倍工作室.微信公眾平臺開發(fā)最佳實踐[M].北京:機械工業(yè)出版社,2014:68-74.
IndoorIOTsecuritysystembasedonRaspberryPiandWeChat
ZHOU Bing-gui, LIU Qing-kai, QIU Ju
(CollegeofElectricalandInformation,JinanUniversity,Zhuhai519070,China)
Based on Raspberry Pi and WeChat,an interior IOT security system is designed by using sensors array and a camera to monitor the indoor environment.The sensors array and camera are used for data acquisition from indoor environment and Raspberry Pi for uploading collected data to a server or database for users to view through WeChat.Whenever an abnormal situation occurs in indoor environment,WeChat public platform automatically sends alarm information to users.It also determines whether or not to repeat sending alarm information depended on the time interval and whether abnormal conditions are processed.This system is verified to be reliable and portable,which is of great important for indoor security.
Internet of things(IOT)technology; indoor security monitoring; sensors array; Raspberry Pi; WeChat
10.13873/J.1000—9787(2017)11—0109—03
TP 277
A
1000—9787(2017)11—0109—03
2017—09—01
周炳貴(1996-),男,專業(yè)方向為電氣測量與檢測研究,E—mail:466554018@qq.com。
邱 桔(1966-),女,通訊作者,博士,副教授,主要從事軟件工程與理論、嵌入式系統(tǒng)相關研究工作, E—mail:t_orange001@jnu.edu.cn。