王益艷, 李國席, 楊 雷
(四川文理學院 智能制造學院,四川 達州 635000)
伴隨著微型計算機技術、光電技術、圖像視頻處置等技術的不斷創(chuàng)新和發(fā)展,傳統(tǒng)意義上的安防防護體系也漸漸地由簡易防護轉換為數(shù)字網絡化、人工智能化方向發(fā)展.[1-2]這類智能化防護體系是指在不需要任何報酬回饋與人為干涉的條件下,防護體系能經由電子設備的APP來遠距離監(jiān)測監(jiān)控中畫面,并通過諸多的傳感模塊進行室內外的檢測、分析和辨認,在有異常時能實時作出遠程報警,[3-4]以及時的遠程通信來確保人們生活環(huán)境的安全性.
家居安防的智能化應用,使得物聯(lián)網安防體系從往日的平安防護體系走向了人工智能綜合化管理體系做出了改變.此刻的安防項目涵蓋浩繁的范圍,好比社區(qū)、路口、街道、樓宇修建、機動車輛、物體監(jiān)測等.物聯(lián)網監(jiān)控體系首要是經過無線遠程監(jiān)控、實時數(shù)據(jù)監(jiān)測等數(shù)據(jù)對周邊環(huán)境實時全方位的防護,隨著人們對自身安全提防的同時,應急指揮體系、交通辦理體系、智能物聯(lián)等浩繁體系應用發(fā)展也逐步上升,給人們的安然舒適的環(huán)境帶來了便利.經由大規(guī)模數(shù)據(jù)處理技術和數(shù)據(jù)存儲的技術,把匯集到的信息聯(lián)動起來,可對監(jiān)測環(huán)境進行智能化分析處理,并將結果報告進行實時反饋預警,以確保防患于未然.
本文基于ARM Cortex-A9開發(fā)板設計了一款智能安防系統(tǒng),其實現(xiàn)功能包括攝像頭模塊的實時環(huán)境查看,ZigBee(Cortex-M0)模塊的設備(Led、Fan、Buzzer)控制和室內安全環(huán)境(溫度、濕度、光照度)的實時監(jiān)測,并利用實時監(jiān)測的數(shù)據(jù)來進行判定并自動觸發(fā)M0模塊設備、GSM(短信提示)功能的報警等.該系統(tǒng)主要包括兩個子系統(tǒng):一是服務器的數(shù)據(jù)處理,負責在后端處理一些數(shù)據(jù)例如(攝像頭,M0模塊,LCD模塊,GSM模塊,登錄處理)每個子模塊單獨處理;二是客戶端界面化處理,讓后端的數(shù)據(jù)處理得到顯示,從后端到數(shù)據(jù)接收呈現(xiàn)為應用狀態(tài);最后當服務器和客戶端部署就緒后,設定了一定的報警限制,當數(shù)值達到所設定的值后會讓蜂鳴器發(fā)出響聲起到預防報警作用.該系統(tǒng)可用于提升家庭舒適度和安全報警,小區(qū)安防,倉庫安全質量監(jiān)控等場合.
本文設計的是實現(xiàn)遠程智能安全防護系統(tǒng),可通過遠程QT用戶端登錄來查看家居環(huán)境,以及利用溫濕度、光照度傳感器來進行安全防護的實時監(jiān)測和判斷,其設計要求如下:
(1)建立QT用戶端與服務處理終端之間的通信.
(2)經由過程服務處理終端來處置裝備的寫節(jié)制、讀取裝備數(shù)據(jù)并舉行收集,然后期待QT用戶端發(fā)送數(shù)據(jù)約定命令.
(3)QT用戶端發(fā)送設備控制命令,來控制服務處理終端開啟和關閉設備,并即時反饋QT用戶端所需數(shù)據(jù)來進行界面顯示.
(4)QT用戶端可以實時更新此刻的時間并顯示于界面.
(5)當QT用戶端完成服務處理終端的注冊并登錄成功后,服務處理終端進行家居安全環(huán)境的實時監(jiān)測,當發(fā)生異常則進行Buzzer或燈光報警,并每十秒鐘通過GSM向用戶手機發(fā)送家居異常提示短信,以達到防患于未然的作用.
圖1中總體描述了服務處理終端的外接模塊,以及與QT用戶端的連接方式.當PC處理終端準備好跑起開發(fā)板的必要條件后,QT用戶端便可以通過IP地址連接到開發(fā)板,從而控制開發(fā)板的外設設備,從而實現(xiàn)預先設定的各種功能.

圖1 智能安全防護系統(tǒng)框圖
本次設計所用的開發(fā)板是一款擁有了強大性能的開發(fā)平臺,[5]采用“核心層板+外部底層板”的結構組成,比整塊板結構更適用于產品的開發(fā)和應用,并且運用了SamSung的Exynos-4412處理芯片來作為首要的處理器.此塊芯片又稱為Exynos-4-Quad,它采取了SamSung的32nm-HKMG的建造工藝,是首款由SamSung出產的帶有四核處理功能的器件,它的運行頻率在正常工作時平均可達到1.6GHz,本塊芯片的內部更是集成了四塊高性能的圖形引擎,可撐持3D畫面的圖形順暢的收發(fā),并且支持播放高清視頻等優(yōu)勢.[6]
本次設計所用的開發(fā)板的啟動方式共有4種,[7]包括Nand-Flash內設閃存的啟動、SD卡/MMC存儲設備的啟動、EMMC可擦除存儲設備的啟動、外部驅動設備USB啟動這四種方式.至于用戶選擇需要從哪一種啟動方式來跑起開發(fā)板,則是由IROM中的一段配置程序逐步的去檢查OM_STAT寄存器的內部配置來啟動運行.而本次設計所用的開發(fā)板的大致啟動流程可參照圖2所示:

圖2 開發(fā)板啟動流程圖
圖2所呈現(xiàn)的是Exynos-4412上電復位時的啟動流程,其啟動過程如下描述:
(1)開發(fā)板經過上電啟動復位之后,便啟動生產商集成在芯片里面的只讀存儲器中的默許配置程序,這一段的功能是去初始化芯片內外設的基本體系配置.好比去配置初始化的內部堆棧、內部時鐘、開發(fā)板的啟動模式等等.
(2)只讀存儲器中的程序會根據(jù)不同的時間階段來獲取此刻的的開啟模式 ,并把存儲空間中的文件拷貝到芯片內部靜態(tài)隨機存儲器中去.存儲空間中的文件可用來設置系統(tǒng)時鐘的初始化任務、以及內存控制器的一些時序設置.做完這些工作后再把ios鏡像文件拷貝到內存中,然后跳轉到ios鏡像文件中去執(zhí)行.
(3)靜態(tài)隨機存儲器只有256KB大小的存儲空間,但是我們的鏡像文件基本上都是大于這個存儲數(shù)值的.因此我們存儲空間中的文件所拷貝的內容僅僅只是iso鏡像文件中的一部分內容,我們不僅需要我們配置的uboot鏡像文件等內部文件,還需要我們完整的拷貝到所用到的物理內存中去,而且還需要設置好基本的硬件外設配置.這之后再經由我們的Uboot鏡像文件在內存中去運行啟動,從而完成ios鏡像文件的拷貝和啟動程序的引導.
(4)EMMC存儲設備是由M M C協(xié)會所設定的一套協(xié)議標準.這套協(xié)議的主要應用范圍在一些物聯(lián)網產品、平板電腦、手機等消耗電子產品上,類比于其他類型的存儲介質,它有布線簡略、集成度高、復雜度低等優(yōu)勢,更大地提高了數(shù)據(jù)讀寫的效率.
Cortex-M0是基于單總線接口模式形成.[7]它使用了32位RISC精簡指令集,該指令集又被稱為Thumb半字節(jié)指令集.在新的ARM-v6指令架構新增加了一些指令,在此基礎上更新了EThumb-2指令集的部分指令.它在自身優(yōu)勢的基礎上另外擴展了一些應用,這種應用可以讓同類型的CPU在所有的運行的狀態(tài)下執(zhí)行該設備相應的操作.Cortex-M0外接模型圖和通信協(xié)議數(shù)據(jù)包圖分別如圖3和圖4所示.本次設計主要應用溫度傳感器、濕度傳感器及光照度傳感器三種.

圖3 Cortex-M0外接模型圖

圖4 M0通信協(xié)議數(shù)據(jù)包圖
圖4中,上面代表Cortex-M0芯片報文數(shù)據(jù)接收狀態(tài)位,包括溫度、濕度、光照度、ADC模擬信號采集等模式;下面則是控制模塊中硬件設備需要設定的信號報文數(shù)據(jù)位,包括LED(ON/OFF)、FAN(ON/OFF)、BUZZER(ON/OFF)等硬件設備的控制.
當需要設備獲取數(shù)據(jù)時,需要將對應的報文數(shù)據(jù)控制位寫入芯片控制位中,此時便可通過讀寫對應為來進行所需數(shù)據(jù)的采集保存;而當需要控制設備時,同樣需要將對應的報文數(shù)據(jù)控制位寫入芯片控制位中,這樣便可以實現(xiàn)對硬件設備的操作控制.
GSM短信模塊是將射頻芯片、基帶處理器和內部存儲器以及大量的功放電路等模塊集成在了一塊電路板上面.它自己獨立的擁有比較強大的功能,當中就包括GSM射頻模塊、基帶處理模塊等,并能提供標準功能型模塊的接口,從而可以實現(xiàn)短信信的收發(fā)、手機通話、數(shù)據(jù)包的協(xié)議傳輸?shù)葢眯凸δ?根據(jù)其協(xié)議所提供的數(shù)據(jù)傳輸速率,可以大致分為GPRS模塊、EPRS模塊和純短信發(fā)送模塊等,本次所涉及的模塊正是GPRS,它的數(shù)據(jù)訪問速度能夠達到9.6kbps/s.GSM模塊可分為文本與PDU編碼模式這兩種來實現(xiàn)信息的實時收發(fā),這兩種模式的工作流程與區(qū)別可參考文獻.[8]
本次設計采用了對開發(fā)板進行Linux下編程的移植,以及Sqlite_3數(shù)據(jù)庫的移植所實現(xiàn)的服務器設備終端.[9]在移植之前,需要準備好需要Linux系統(tǒng)移植的必要安裝包和移植參考手冊,按照參考手冊步驟執(zhí)行移植前的PC機上交叉編譯環(huán)境搭建;然后通過putty終端設置串口波特率來連接PC機與開發(fā)板,并使得板子和PC機在同一網段內,再通過IP地址訪問并連接我們的開發(fā)板服務終端,然后通過TFTP協(xié)議去下載并獲取開發(fā)板uboot、Image等必需的啟動文件,待下載后自行啟動文件成功至MMU時,然后通過啟動運行去訪問系統(tǒng)執(zhí)行的起始物理地址并運行開發(fā)板,那么到此則實現(xiàn)了Linux系統(tǒng)下在ARM Cortex-A9的移植,并跑起開發(fā)板上的Linux系統(tǒng);緊接著我們按照參考文件實現(xiàn)Sqlite_3數(shù)據(jù)庫移植環(huán)境的搭建并編譯生成我們移植所需要的文件,然后將所生成的文件下載到開發(fā)板,此時再重新啟動開發(fā)板,這樣便完成了軟件開發(fā)環(huán)境的大致搭建;待再次運行開發(fā)板時,系統(tǒng)會通過BootLoader啟動物理地址去進行獲取PC機上的必要運行文件,成功實現(xiàn)環(huán)境的搭建.

圖5 服務處理終端程序流程圖

圖6 QT用戶端程序流程圖
由服務處理終端與QT用戶端流程圖可知,整個系統(tǒng)的執(zhí)行是以考慮到實現(xiàn)用戶家居室內遠程智能安防進行設計,故所有設計均以用戶為主,故此實現(xiàn)了系統(tǒng)的遠程監(jiān)測和智能防護,以確保用戶對家居環(huán)境安全的感知;其具體運行實現(xiàn)如下:
首先,打開QT用戶端,在初次使用時,需要進行用戶對系統(tǒng)的注冊,此時輸入注冊的賬號和注冊密碼并進行注冊,隨后服務處理終端端將會監(jiān)測QT用戶端發(fā)送的數(shù)據(jù)來判斷用戶是否已經完成注冊,若用戶已完成注冊,則彈出對話框提醒用戶已經完成了注冊,否則需要提醒注冊成功與否;接著,所注冊的賬號進行登錄運行,隨即服務處理終端會再次對用戶登錄進行監(jiān)測,即監(jiān)測是否賬戶已經存在或者密碼是否正確,若不正確則提示用戶界面賬戶名或密碼錯誤,否則就從登錄界面跳轉至系統(tǒng)用戶界面;在系統(tǒng)用戶界面中,可以選擇打開Camera攝像頭來進行家居環(huán)境的實時查看,接著可以通過攝像頭對各種設備開關狀態(tài)進行遠程查看;此時若光照度太低可開啟燈光照明模塊,若溫、濕度過高,可以打開風扇扇熱或通風,并可以實時獲取服務處理終端傳達的家居環(huán)境實時監(jiān)測,以確保室內環(huán)境的安全預測.若監(jiān)測正常,則服務處理終端繼續(xù)進行當前的監(jiān)測;當服務端傳感器監(jiān)測到家居系統(tǒng)處于服務處理終端約定所達到的危險狀態(tài),則服務處理終端啟動GSM短信報警模塊,每10S(可更改)進行報警提示,此時設備也進行開啟報警狀態(tài)(伴隨燈光、聲源報警等)來提醒用戶此時家中危險的環(huán)境狀態(tài),而用戶可以根據(jù)遠程監(jiān)控查看當前引起的安全因素,從而采取必要的措施進行防護家居安全,這邊是當系統(tǒng)異常時做出的反應.若系統(tǒng)正常,則服務處理終端處于運轉監(jiān)測等待狀態(tài),隨時等待用戶進行遠程連接;若系統(tǒng)不正常,則服務處理終端隨時處于查詢等待狀態(tài),等待用戶進行設備查看.
為了有一個方便的管理界面,經過多次篩選以及在考慮綜合的情況下,本設計選用QT作為客戶端來顯示,將程序圖形化更容易讓客戶接收,以及更容易在市場上流通,本次客戶端的設計是采用QT Creator.[10]QT Creator擁有非常多的功能,其擁有IDE這個開發(fā)環(huán)境.也被叫做是C++圖形開發(fā)工具.支持的操作系統(tǒng)非常多例如(windows、Linux、Mac OS、安卓、蘋果、嵌入式等系統(tǒng)),多系統(tǒng)地支持就方便開發(fā)人員,可以做到一次開發(fā),多處使用的好處,QT內置的庫文件更是強大,比如我們這次設計中用到的數(shù)據(jù)庫以及Socket等.應用也方便,提供了一個查詢幫助功能,有不懂的就可以在上面help;還提供調試輸出語句,不僅能看到窗口的輸出,還能看到你在上面操作的后端輸出程序,這樣就方便調試的時候快速定位錯誤在那個部分,而不用在每行去看源代碼.運行數(shù)度算中等.可以說是一個圖形開發(fā)上手很快的軟件.本次設計的登陸注冊界面如圖7所示.

圖7 客戶端登陸界面
QT采用的是信號槽機制,由兩部分構成,其一是信號,其二是槽函數(shù);QT擁有自己的一套可手動可自動的圖形布局,而且widget.ui這個界面文件可以非常靈活的布局,利用這個布局文件可以直接與對應的槽函數(shù)創(chuàng)建以及連接起來.
客戶端處理流程:
(1)首先通過widget.ui我們自己自動布局初一個窗口大致圖形.
(2)然后在widget.h這個文件中,將這兩個文件需要用到的函數(shù)以及所涉及到的包,需要使用的變量(公有和私有)全部按照合適的區(qū)域定義好;例如(在登錄和注冊時與服務器之間的通訊消息,就是通過在頭文件中定義的全局結構體以及后續(xù)的消息傳遞就是一個私有的buffer).
(3)設置TCP連接;我們需要用這個函數(shù)new QTcpSocket(this);聲明定義出一個連接通道所用的句柄tcpclient,并且將服務器主機的IP以及本次設計中服務器暴露出來的端口號與之綁定;在利用這個句柄的犯法connectToHost將我們的數(shù)主機的地址和端口給幫定到這個句柄上,如("192.168.0.108",9999).
(4)對界面上的登錄和注冊兩個按鈕分別涉及槽函數(shù)以及信號
當我們在界面上點擊注冊按鈕的時候,底層的代碼會按照事先設置好的信號槽函數(shù)connect連接信號,on_regist_clicked槽函數(shù)在這個函數(shù)中會將你輸入的賬號和密碼獲取到后臺,先進行一定的錯誤處理,并且通過與之前建立服務器連接的管道將數(shù)據(jù)發(fā)送給服務器讓服務器做出相應的處理,然后通過服務器返回值判斷數(shù)據(jù)的處理結果,并給出一定的提示;例如QMessageBox類的warning 屬性,給出提示性語句.
當點擊登錄的時候會做出同樣的操作,唯一不同就是在服務器處理的結果不同,還有就是發(fā)送給服務器的標志位不同.同樣根據(jù)返回的值來做出相應的處理,服務器返回登陸成功后在客戶端會有一個界面跳轉的過程;并且在輸入的時候作了掩碼處理,不管是在登錄還是在注冊過后都會將輸入框中的內容清除;
(5)當?shù)卿洺晒髸|發(fā)界面跳轉的函數(shù)執(zhí)行對應的文件dialog.cpp,這個文件的顯示文件為dialog.ui用于顯示用戶操作和數(shù)據(jù)顯示,不過在這個界面的設計中不是采用的自動布局,而是采用的手動布局,這兩種布局方式各有優(yōu)缺點,采用手動布局需要先進行窗口的布局調整,以及背景圖片的處理.自動布局就只需要在模擬的界面上選擇對應的標簽就可以在界面自動生成,并且生成的效果就是按照布局的效果生成的,不但在前端生成界面,也會在后端生成相應的數(shù)據(jù)處理函數(shù),且自動關聯(lián)到對應的觸發(fā)函數(shù).

圖8 客戶端處理流程圖
QT集成了強大的庫,有許多API接口調用,例如setWindowTitle("智能家居");就會給出窗口的名字以及背景圖片.在界面上顯示時間是利用QT的QTimer庫所提供的API,利用這個API將做一個定時服務,就是每隔1秒向界面發(fā)送一個信號;在我們客戶端界面上的時間顯示就是我們自己定義的信號函數(shù).最后我們在每個子模塊的區(qū)域內將自己的私有變量給定義好,將需要的模塊功能的信號定義好以便于用來控制每個模塊在服務器的觸發(fā)方式,以及怎么控制每個模塊的啟動和停止,與服務器協(xié)商好數(shù)據(jù)的傳輸格式和代表意思.在這個界面主要的工作就是將其布局好后等待數(shù)據(jù)的收發(fā)以及數(shù)據(jù)的顯示.其用戶控制界面和顯示的布局效果如圖9客戶端應用控制界面所示:

圖9 客戶端應用控制界面
本文基于ARM Cortex-A9開發(fā)板設計了一款智能安防系統(tǒng),在遠程模式下,QT用戶端通過獲取IP地址進行QT用戶端的連接,從而通過遠程查看和控制硬件設備,以及傳感器對環(huán)境的實時監(jiān)測來進行居住安全性能的防范和報警系統(tǒng)的實時睡眠等待,從而達到了遠程環(huán)境的查看,智能化監(jiān)測與提示信息的實時發(fā)送.該系統(tǒng)可用于提升家庭舒適度和安全報警,小區(qū)安防,倉庫安全質量監(jiān)控等場合.