魏銳斌+吳超益+毋茂盛
摘 要:隨著手機(jī)的普及和通信技術(shù)的發(fā)展,使用手機(jī)實(shí)現(xiàn)智能家居控制成為人們目前的研究熱點(diǎn)。文中開發(fā)了一個手機(jī)App程序和對應(yīng)的硬件電路板,實(shí)現(xiàn)了家居溫濕度等數(shù)據(jù)的實(shí)時采集、顯示以及電燈和門鎖的智能化控制。
關(guān)鍵詞:App;硬件電路板;藍(lán)牙;智能家居
中圖分類號:TP277 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2017)12-00-03
0 引 言
隨著計算機(jī)技術(shù)和通信技術(shù)的發(fā)展,手機(jī)已成為人們生活中必不可少的工具,現(xiàn)在幾乎人手一部甚至幾部。藍(lán)牙是一種短距離的無線通信技術(shù),采用藍(lán)牙方式傳輸數(shù)據(jù),可以避免布線帶來的麻煩,并節(jié)約成本,由于手機(jī)都帶有藍(lán)牙接口,因此手機(jī)的普及大大拓寬了藍(lán)牙的應(yīng)用領(lǐng)域[1,2]。例如,將手機(jī)應(yīng)用到實(shí)時監(jiān)控領(lǐng)域,手機(jī)通過藍(lán)牙發(fā)送命令或接收傳感器數(shù)據(jù)實(shí)現(xiàn)智能化控制。本文研究了通過手機(jī)控制家中電燈、門鎖開關(guān)的技術(shù)。
1 系統(tǒng)總體設(shè)計與特點(diǎn)
1.1 系統(tǒng)總體設(shè)計
系統(tǒng)由Android端、后臺數(shù)據(jù)統(tǒng)計以及硬件電路等組成,結(jié)構(gòu)如圖1所示。
1.2 系統(tǒng)特點(diǎn)
系統(tǒng)帶有看門狗電路,可靠性高。當(dāng)程序運(yùn)行出問題時能自動重啟,且上層App有斷開重連的功能。系統(tǒng)還加入了環(huán)境監(jiān)測模塊,可實(shí)時顯示家中環(huán)境的溫濕度,為生活提供方便。App采用MVP設(shè)計模式,分為界面控制、邏輯控制和控制器,以簡化程序設(shè)計。界面控制主要負(fù)責(zé)界面的更新;邏輯控制主要負(fù)責(zé)數(shù)據(jù)處理;控制器主要控制系統(tǒng)如何操作。采用這種設(shè)計模式可以方便在未來對系統(tǒng)功能進(jìn)行增加、修改和完善,不用對以前的代碼進(jìn)行過多的改動。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件主要包括STC15F2K60S2單片機(jī),藍(lán)牙模塊,溫濕度傳感器,光敏模塊,紅外控制模塊,火焰報警模塊等。
2.1 控制器模塊
控制器選用STC15F2K60S2,該單片機(jī)具有兩個串行口,可以方便下載程序并通過藍(lán)牙串口通訊,簡化電路的設(shè)計。STC15F2K60S2單片機(jī)自帶E2PROM,可以編程,具有10的AD轉(zhuǎn)換和8個轉(zhuǎn)換通道,機(jī)器周期為1個時鐘周期,執(zhí)行速度快,且內(nèi)置復(fù)位電路。該芯片具有使用方便,調(diào)用簡單等特點(diǎn)。
2.2 傳感器模塊
傳感器模塊主要包括溫濕度傳感器DH11、光敏電阻5528、火焰?zhèn)鞲衅鞯?。溫濕度傳感器DH11通過單總線接口和單片機(jī)相連,單總線通過一條線進(jìn)行數(shù)據(jù)傳送[3],與CPU連接接口簡單。上層接收處理藍(lán)牙發(fā)送的數(shù)據(jù),完成對周圍環(huán)境的監(jiān)測和數(shù)據(jù)獲取。DH11是集溫濕度采集于一體的復(fù)合型傳感器,極大地提高了數(shù)據(jù)轉(zhuǎn)換的效率。5528光敏電阻在與同類型電阻的對比下?lián)碛休^好的參數(shù),在考慮低成本、低功耗的情況下使用這款電阻具有一定的優(yōu)勢。
傳感器模塊電路如圖2所示。
2.3 藍(lán)牙模塊
藍(lán)牙模塊采用HC-08低功耗模塊,該模塊具有尺寸小、成本低等特點(diǎn),采用藍(lán)牙4.0協(xié)議與自適應(yīng)跳頻(AFH)技術(shù),以確保低功耗藍(lán)牙在“嘈雜”射頻環(huán)境中穩(wěn)定地傳輸。與很多藍(lán)牙技術(shù)、無線LAN、IEE802.15.4等無線技術(shù)一樣使用無需認(rèn)證許可的2.4 GHz工業(yè)科學(xué)醫(yī)療(ISM)頻帶,通過與STC15F2K60S2的串口相連接,實(shí)現(xiàn)藍(lán)牙與單片機(jī)的通訊。由于STC15F2K60S2具有雙串口,不會與串口通訊互相干擾,因此,能夠保證在串口通訊的同時完成藍(lán)牙通訊。電路圖如圖3所示。
2.4 繼電器智能家居模塊
該模塊主要由繼電器、電插鎖、燈泡以及報警電路組成。STC15F2K60S2控制繼電器的開關(guān)實(shí)現(xiàn)對智能家居的控制,通過上層App發(fā)送命令給STC15F2K60S2單片機(jī),STC15F2K60S2發(fā)出的控制信號經(jīng)ULN2003驅(qū)動連接到繼電器實(shí)現(xiàn)開關(guān)控制。ULN2003的輸出連接2個繼電器和1個報警蜂鳴器。
(1)火焰報警電路。當(dāng)火焰?zhèn)鞲衅鳈z測到有火焰出現(xiàn)時,會向單片機(jī)申請中斷,在單片機(jī)執(zhí)行中斷服務(wù)程序時通過蜂鳴器報警,同時通過藍(lán)牙向手機(jī)發(fā)送報警信號,手機(jī)發(fā)出報警信息。
(2)開鎖電路。系統(tǒng)采用YGS-600-S5電插鎖,用繼電器控制12 V開鎖電源實(shí)現(xiàn)開鎖。
(3)電燈控制電路。用繼電器控制220 V電源,當(dāng)繼電器吸合時,接通電源,實(shí)現(xiàn)開燈操作。電燈控制電路如圖4所示。
3 系統(tǒng)軟件設(shè)計
Android端主要通過藍(lán)牙模塊向硬件發(fā)送各路命令或采集數(shù)據(jù)到手機(jī)顯示,通過設(shè)置選項(xiàng)允許手機(jī)端把數(shù)據(jù)發(fā)送到后臺,通過后臺生成統(tǒng)計表格。后臺數(shù)據(jù)主要使用javaEE,將Android手機(jī)端的數(shù)據(jù)上傳到后臺,存入數(shù)據(jù)庫,然后生成統(tǒng)計表;上層Android部分主要分為5個模塊,分別是注冊模塊、登錄模塊,藍(lán)牙掃描模塊,藍(lán)牙連接模塊和藍(lán)牙控制模塊,基本流程如圖5所示。
3.1 用戶登錄模塊
用戶登錄模塊主要通過登錄獲得遠(yuǎn)程數(shù)據(jù)庫之前連接過的藍(lán)牙設(shè)備,減少藍(lán)牙掃描模塊的時間,提高效率。登錄后會獲得遠(yuǎn)程連接的數(shù)據(jù)庫中該用戶曾連接過的藍(lán)牙設(shè)備名稱和UUID,在進(jìn)入藍(lán)牙模塊后直接加載,減少藍(lán)牙設(shè)備掃描的時間,方便用戶直接連接已連接過的藍(lán)牙設(shè)備。登錄界面如圖6所示。
3.2 用戶注冊模塊
用戶注冊模塊主要負(fù)責(zé)新用戶,使用郵箱方式來完成注冊,通過HTTP協(xié)議與后臺連接,并寫入后臺數(shù)據(jù)庫中。用戶注冊界面如圖7所示。
3.3 藍(lán)牙掃描模塊
藍(lán)牙掃描模塊用于掃描周圍的低功耗藍(lán)牙,通過邏輯去除普通的藍(lán)牙設(shè)備,減少非必要的藍(lán)牙設(shè)備加入列表。同時使用最新的API,通過回調(diào)函數(shù)掃描設(shè)備,加快掃描速度。使用RecyclerView控件,大大減少了列表加載所需的內(nèi)存并優(yōu)化顯示。核心代碼如下:endprint
ScanCallback mcallback = new ScanCallback() {
@Override
public void onScanResult(int callbackType,ScanResult result) {
super.onScanResult(callbackType, result);
for (int i = 0;
i if(result.getDevice().getAddress().equals (ScanBean.getScanBean().getBlelist().get(i). getDevice().getAddress())) {return; } } iscanModel.setResult(result); //掃描得到的藍(lán)牙設(shè)備加入列表 refresh();/更新列表 }} 掃描模塊運(yùn)行界面如圖8所示。 3.4 藍(lán)牙連接模塊 藍(lán)牙連接模塊主要通過Android Service后臺進(jìn)行連接,不會干擾前臺的運(yùn)行。使用谷歌提供的專為低功耗藍(lán)牙連接與通訊設(shè)計的API,代替?zhèn)鹘y(tǒng)的Socker通信。通過回調(diào)函數(shù)連接低功耗藍(lán)牙設(shè)備進(jìn)行通訊,減少了建立Socker的時間。核心代碼如下: BluetoothGattCallback Callback = new BluetoothGattCallback () { //藍(lán)牙連接狀態(tài)回調(diào)函數(shù) @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { super.onConnectionStateChange(gatt, status, newState); if (newState == 2) { gatt.discoverServices();} } //藍(lán)牙服務(wù)發(fā)現(xiàn)函數(shù) @Override public void onServicesDiscovered(final BluetoothGatt gatt, int status) { super.onServicesDiscovered(gatt, status); if (BluetoothGatt.GATT_SUCCESS == status) { for (int i = 0; i < bluetoothGattServiceList.size(); i++) { if(bluetoothGattServiceList.get(i).getUuid().toString().equals(BLE_SERVICE_UUID)) { bluetoothGattCharacteristics = bluetoothGattServiceList.get(i).getCharacteristics(); for (int j=0; j< bluetoothGattCharacteristics.size(); j++) { if(bluetoothGattCharacteristics.get (j).getUuid ().toString().equals(BLE_CONNECT_UUID)) { bluetoothGattCharacteristic = bluetoothGattCharacteristics.get(j); Gatt.setCharacteristicNotification(bluetoothGattCharacteristic, true);} } } } } } //藍(lán)牙數(shù)據(jù)接收回調(diào)函數(shù) @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { super.onCharacteristicChanged(gatt, characteristic); if (ble_callBack != null) { ble_callBack.GetData(characteristic.getStringValue(0)) } } } 3.5 藍(lán)牙控制模塊 藍(lán)牙控制模塊主要負(fù)責(zé)藍(lán)牙設(shè)備的通信,進(jìn)行數(shù)據(jù)讀、寫操作,同時對下層發(fā)來的警告進(jìn)行反饋。該模塊由兩個界面組成,分別為環(huán)境監(jiān)測、智能家居控制界面。環(huán)境監(jiān)測頁面主要完收集溫濕度以及光敏數(shù)據(jù),設(shè)置溫濕度上下限等操作。智能家居控制相對簡單,主要負(fù)責(zé)燈泡的開關(guān)和鎖的開啟。主要通訊通過服務(wù)完成??刂平缑嫒鐖D9所示。 4 結(jié) 語 本項(xiàng)目開發(fā)了一個基于Android系統(tǒng)的App程序以及相關(guān)硬件控制單元模塊,分別實(shí)現(xiàn)了家中溫、濕度等數(shù)據(jù)的實(shí)時采集以及對家中燈泡和鎖的智能化控制。當(dāng)檢測到有火焰時,將報警信息上傳給手機(jī)進(jìn)行聲音和手機(jī)雙重報警。同時,實(shí)現(xiàn)了通過手機(jī)開關(guān)燈的功能,為生活提供了很大的方便?;丶視r通過手機(jī)也可打開家門,而且門鎖安裝在室內(nèi),起到了防盜作用。系統(tǒng)經(jīng)過試運(yùn)行,效果良好,應(yīng)用前景廣闊。 參考文獻(xiàn) [1] 常敏,梅曉敏,崔永進(jìn),等.基于BLE與Android的牧場溫濕度智能監(jiān)控系統(tǒng)設(shè)計[J].通信電源技術(shù),2015 (5):134-137. [2] 韓丹.BLE技術(shù)在智能家居中的應(yīng)用[D]. 青島: 青島科技大學(xué), 2015. [3] 毋茂盛. 單片機(jī)原理與開發(fā)[M]. 北京:高等教育出版社, 2015. [4] 張琦,穆遠(yuǎn)威,劉美娟.基于STC15F2K60S2單片機(jī)的智能管理教室系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2017,7(6):85-86. [5]白志帥,穆士留,張峰,等.基于BLE技術(shù)的智能門禁系統(tǒng)[J].自動化與儀表,2017,32(4):67-71. [6]夏盼盼.BLE藍(lán)牙技術(shù)在智能門鎖的應(yīng)用[J].科技廣場,2016(7):84-87. [7]劉康,林春景,熊宇.智能母線溫濕度監(jiān)控系統(tǒng)設(shè)計[J].科技資訊,2016,14(31):20-22. [8] 汪月鵬.基于Android平臺上BLE的智能家居控制系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2016,6(3):81-82.