高 瑞,雷文禮
(延安大學 物理與電子信息學院;陜西省能源大數據智能處理省市共建重點實驗室,陜西 延安 716000)
智能化時代的到來,給人們的生活帶來了巨大改變,隨著“智能家居”這一概念的提出,人們已不陌生,也將成為未來智能化生活的一個方向。智能家居是通過物聯網技術將物與物進行互聯互通,實現智能交互[1]。傳統(tǒng)的安防系統(tǒng)具有布線復雜、維修困難,本文基于物聯網技術發(fā)展,結合安卓系統(tǒng),設計了一種智能家居安防系統(tǒng),實現智能交互,當室內環(huán)境異常或者有人通過門窗非法闖入時,系統(tǒng)自動啟動報警程序,并給用戶進行短信通知,從而實現真正的智能化,滿足用戶對家居的安全性、舒適性等需求,具有很好的發(fā)展前景。
物聯網是采用新技術實現物與物的互聯。本文系統(tǒng)監(jiān)測單元采用是傳感器和無線通信模組、單片機組成網絡節(jié)點,無數個網絡節(jié)點再將數據匯總到一個節(jié)點,按照一定的協議要求轉換為可上傳的數據包,然后把這些數據包通過wifi上傳至應用層,應用層對數據進行處理,對于環(huán)境異?;蛘哂腥送ㄟ^門窗非法闖入時,系統(tǒng)自動啟動報警程序,并通過短信通知用戶。系統(tǒng)的整體框架結構如圖1所示。
圖1 系統(tǒng)整體框架結構圖
主控制器主要由產生wifi信號的高頻RFID節(jié)點和上位機組成,產生wifi信號的高頻RFID節(jié)點主要由CLRC632射頻模塊,無線收發(fā)模塊以及電源模塊等組成,上位機由安卓系統(tǒng)的移動終端組成。具體的硬件實物圖如圖2所示。
圖2 硬件實物圖
無線傳感器是感知層的主要元件,用于采集數據[2],系統(tǒng)選用的傳感器有PM2.5傳感器、煙霧傳感器、人體檢測傳感器和玻璃破碎傳感器。
(1)霧霾監(jiān)測模塊:用于檢測空氣中的顆粒濃度,實時判斷PM2.5值是否在預設的范圍內,提醒用戶關窗,保持室內空氣質量良好。為用戶提供高效、便利、舒適和安全的居住環(huán)境。系統(tǒng)選用GP2Y1010AU0F型灰塵傳感器,通過光敏原理來工作[3]。
(2)煙霧傳感器:主要是對室內煙霧濃度進行檢測,對于預防早期火災具有一定意義。系統(tǒng)選用的是一種由氣敏材料組成的N型半導體MQ-2型煙霧傳感器,具體的工作原理是在200~300℃溫度時,半導體材料通過吸附空氣中的氧進而形成氧離子,使半導體中的電阻值增加,當檢測到煙霧時,就會引起表面電導率變化,實現對煙霧濃度的檢測[4]。
(3)人體檢測傳感器:用于檢測活動的人體。系統(tǒng)選用HC-SR501人體感應模塊進行探測,人進入其感應范圍則輸出高電平,人離開感應范圍則自動延時關閉高電平,輸出低電平。感應模塊檢測到人體的每一次活動后會自動順延一個延時時間段,并且以最后一次活動的時間為延時時間的起始點[5]。具有靈敏度高,可靠性強,超低電壓工作模式的優(yōu)點。
(4)玻璃破碎傳感器:用于探測是否有人員非法破窗入侵,是一種振動傳感器,檢測玻璃破碎時的振動輸出相應的電信號[6]。系統(tǒng)選用PY-1A型玻璃破碎傳感器,由一個壓電陶瓷片和電阻并聯組成,具有尺寸小,成本低的優(yōu)點。
智能家居中報警方式有很多,常見的有現場聲光報警、電話遠程報警和和手機短信報警[7]?,F場報警在一定程度上可以影響到盜賊,但是比較適合家里有人的情形;電話報警方便快捷,但是如果電話線被切斷,無法正常進行;短信報警可以及時提醒主人,然后采取防護措施。
系統(tǒng)中選用的WIFI模塊是HLK-RM04,一種嵌入式轉串口的傳輸模塊,內置的協議棧有TCP/IP和IEEE802.11協議棧,具有強大的功能,可以完成串口、以太網、無線網3個接口的任意轉換[8]。在該模塊下,傳統(tǒng)的串口設備可通過Internet網絡直接進行數據的傳輸。
HLK-RM04模塊的串口引腳與主控MCU的串口對應相接,通常工作在透傳模式下,工作原理是主控MCU通過串口將控制指令發(fā)送到wifi模塊中,APP與WiFi模塊相連接之后,進行數據的傳輸,實現控制交互。wifi模塊硬件實物圖如圖3所示。
圖3 Wifi模塊硬件實物圖
本系統(tǒng)是在window 7操作系統(tǒng)下,選擇集成開發(fā)工具Eclipse和模擬器進行開發(fā)環(huán)境搭建的。而ADT(androiddevelopertools)是google提供的基于eclipse的Android開發(fā)插件[9]。因此我們選擇Eclipse作為開發(fā)的開源集成環(huán)境IDE(Integrated Development Environment)。由于Android SDK和Eclipse都是用Java編寫的,因此需要先在Windows上安裝JDK(Java Development Kit)。
JDK安裝完成之后,驗證環(huán)境配置是否正確。在桌面選擇“開始”/“運行”命令,然后輸入“cmd”回車,運行輸入“javac”命令,如果出現如下JDK編譯器信息,其中包括修改命令的語法和參數選項等信息,說明JDK環(huán)境搭建成功。如圖4所示。
圖4 JDK環(huán)境驗證界面圖
在采集節(jié)點到安卓終端的設計中采用了C/S架構,使用TCP/IP協議[10]。Wifi模塊默認情況下工作模式為透傳模式,本系統(tǒng)通過設置無線傳輸模塊,使其工作與AP模式,安卓系統(tǒng)和模塊進行通信,模塊作為無線傳輸網絡接入點,通過設置AP接入點名稱、密碼以及接入點IP地址、子網掩碼、網關等參數,上電之后,通過安卓終端就可連接到名為“FRO_3A07”,密碼是“12345678”的熱點,從而構建嵌入式設備與上位機控制平臺進行信息交互的無線網絡,實現數據的傳輸和設備的智能控制。
控制報警模塊主要實現對環(huán)境數據的處理,打開APP與硬件設備建立連接之后,即開始數據傳輸,wifi數據接收過程在wifi服務Amarino Service類中進行,Receive Thread線程接收數據并對數據進行判斷,當Integer.value Of(msg).intValue()超過閾值時會觸發(fā)報警服務start Service,開啟線程進行報警并對執(zhí)行模塊進行相應的控制[11]。部分程序如下
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
bindView();// 綁定控件
initData();// 初始化數據
// 事件監(jiān)聽
initEvent();
//定時檢查是否有人才發(fā)送短信
task = new TimerTask() {
@Override
public void run() {
// 發(fā)送短信
if (Const.BODY!=null && Const.BODY && Const.SMS ) {
SmsManager manager= SmsManager.getDefault();
String phone = phoneEt.getText().toString();
String context = contextEt.getText().toString();
if (isCanUseSim() && manager != null && phone != null && context != null) {
Log.i(Const.TAG,"發(fā)送短信:"+phone+"-"+context);
manager.sendTextMessage(phone,null,context,null,null);
Const.SMS = false;// 只發(fā)送一次,發(fā)送完置false
} else {
Log.i(Const.TAG,"發(fā)送短信失??!");
}}}
};
timer.schedule(task,2000,2000); //定時
}
在完成系統(tǒng)的軟硬件模塊設計之后,要對硬件和軟件APP進行測試,硬件測試主要是驗證數據采集與傳輸功能,軟件APP測試主要是測試其數據接收、顯示功能、及預警功能。
系統(tǒng)啟動后,環(huán)境感知裝置每隔一段時間會讀取一次數據,傳感器只需單向通訊。單片機處理之后,通過UART異步通訊串口將數據轉發(fā)給wifi射頻模塊,接收數據后通過通訊協議與監(jiān)控系統(tǒng)APP通訊,進行數據傳輸。監(jiān)控過程如圖5所示。
系統(tǒng)數據接收與顯示功能是在系統(tǒng)手機軟件端實現的,系統(tǒng)軟件界面如圖6所示,包括人體感應模塊、煙霧濃度模塊、霧霾監(jiān)測模塊和玻璃破碎傳感器模塊,手機號碼和短信內容,wifi連接模塊和狀態(tài)信息欄模塊,每個傳感器模塊內含有用于設置采集周期及傳感器節(jié)點的IP地址和端口參數設置項和傳感器的數值上限或者是下限值。
圖5 硬件數據采集流程
圖6 系統(tǒng)界面
打開手機APP系統(tǒng)進行工作,首先進行wifi連接,密碼是12345678,連接成功后,進入對應模塊的參數設置項,設置采集周期,以及傳感器和控制器的IP地址和端口,以及對應傳感器的數值上限或者是下限值,以及報警手機號碼和短信內容,確認之后,完成軟件端設置,進行數據的傳輸,并在上位機進行顯示。文中以人體感應報警為例,報警界面圖如圖7所示。
本文將物聯網技術與Android系統(tǒng)相結合,設計一種基于物聯網的家居安防系統(tǒng),具有安防短信報警、空氣濃度顯示和煙霧濃度顯示、報警閥值的設置等功能,最終實現了Android手機端對家居環(huán)境信息的采集監(jiān)控以及安防報警,實驗測試結果表明,該系統(tǒng)能夠靈敏檢測到異常信號,并及時報警,讓家居人員有一個舒適的環(huán)境。