新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計(jì)應(yīng)用 > 基于藍(lán)牙的智能門鎖控制系統(tǒng)設(shè)計(jì)

基于藍(lán)牙的智能門鎖控制系統(tǒng)設(shè)計(jì)

作者:常國權(quán) 翟雁 時間:2015-05-14 來源:電子產(chǎn)品世界 收藏
編者按:設(shè)計(jì)并實(shí)現(xiàn)了一種基于OMAP3730的低成本高清屏媒系統(tǒng),能夠充分發(fā)揮可編程C64+DSP的強(qiáng)大計(jì)算功能, 利用硬件實(shí)現(xiàn)常用視頻格式的高清硬解碼播放,利用軟件兼顧不常有視頻格式的解碼播放,同時針對屏媒系統(tǒng)的特點(diǎn)利用DSP實(shí)現(xiàn)轉(zhuǎn)屏,達(dá)到在橫屏和豎屏上的自適應(yīng)播放的效果。

3 系統(tǒng)軟件設(shè)計(jì)

本文引用地址:http://butianyuan.cn/article/273270.htm

  系統(tǒng)軟件設(shè)計(jì)主要包括門鎖控制系統(tǒng)軟件設(shè)計(jì)和智能移動設(shè)備客戶端軟件設(shè)計(jì)兩部分,門鎖控制系統(tǒng)軟件在Keil C開發(fā)環(huán)境中用C語言編寫,智能移動設(shè)備客戶端軟件主要在Android開發(fā)環(huán)境下用Java語言編寫。

  門鎖控制系統(tǒng)上電以后,STC15從EEPROM中讀取系統(tǒng)的參數(shù)信息并完成系統(tǒng)的初始化工作,這包括初始化串口模塊的工作方式、初始化門鎖狀態(tài)、初始化ADC、初始化IO口等操作,STC15通過串口把配對地址、驗(yàn)證密碼等參數(shù)信息發(fā)給藍(lán)牙串口模塊,并把藍(lán)牙串口模塊設(shè)置為從模式,等待主設(shè)備掃描、地址配對等,而門鎖狀態(tài)則是通過限位開關(guān)進(jìn)行檢測的。完成系統(tǒng)初始化操作之后,STC15檢測按鍵按下標(biāo)志位KeyFlag是否為1,如果為1并且按鍵沒有被屏蔽,則執(zhí)行相應(yīng)的開鎖、閉鎖操作。按鍵K1和K2是在中斷中進(jìn)行檢測的,當(dāng)有K1或K2按下時KeyFlag為1,如果按鍵沒有被軟件屏蔽,則程序在執(zhí)行完相應(yīng)的開鎖、閉鎖操作后把KeyFlag的值清零。ValidFlag是按鍵屏蔽標(biāo)志位,ValidFlag=1時將會屏蔽K1、K2的開鎖、閉鎖操作,這就保證了即使在屋內(nèi)要通過按鍵開鎖也有一定的安全條件限制。

  當(dāng)有智能移動藍(lán)牙設(shè)備作為主設(shè)備通過密碼驗(yàn)證后,雙方以3DES加密方式進(jìn)行數(shù)據(jù)通訊。數(shù)據(jù)接收采用串口中斷方式,數(shù)據(jù)包包括數(shù)據(jù)長度,命令字、數(shù)據(jù)和一個字節(jié)的校驗(yàn)碼,當(dāng)串口中斷服務(wù)子程序接收到長度和校驗(yàn)都符合要求的數(shù)據(jù)后把CMDValid標(biāo)志位設(shè)置為1,然后在主函數(shù)中進(jìn)行3DES解密,并從解密后的數(shù)據(jù)中分離出命令碼,根據(jù)命令碼執(zhí)行相應(yīng)的操作,如開鎖、閉鎖、參數(shù)設(shè)置等。下位機(jī)軟件設(shè)計(jì)流程圖如圖5所示。

  基于Android系統(tǒng)客戶端軟件設(shè)計(jì)是采用Android系統(tǒng)提供的藍(lán)牙API實(shí)現(xiàn)的,主要用到了以下幾個類:BluetoothAdapter類、BluetoothDevice類、Bluetoothsocket類、Blueboothserversocket類、Bluetoothclass類。Android系統(tǒng)提供的藍(lán)牙API可以實(shí)現(xiàn)藍(lán)牙設(shè)備之間的通信,兩個藍(lán)牙設(shè)備的通信主要包括了四個步驟:設(shè)置藍(lán)牙設(shè)備、尋找局域網(wǎng)內(nèi)可能或者匹配的設(shè)備、連接設(shè)備和設(shè)備之間的數(shù)據(jù)傳輸[7] 。通過調(diào)用靜態(tài)方法getDefaultAdapter()獲取藍(lán)牙適配器BluetoothAdapter就可以啟動藍(lán)牙功能,使用BluetoothAdapter類里的方法來實(shí)現(xiàn)掃描查找藍(lán)牙設(shè)備,這需要注冊一個BroadcastReceiver來接受設(shè)備掃描到的信息,當(dāng)點(diǎn)擊查詢到的藍(lán)牙設(shè)備時,就能獲取到該藍(lán)牙的MAC地址,通過MAC地址就能實(shí)現(xiàn)藍(lán)牙設(shè)備之間的連接[8,9 ]。藍(lán)牙設(shè)備的連接如下:

  BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

  BluetoothSocket socket = device.createRfcommSocketToServiceRecord(uuid); //固定的uuid

  socket.connect();

  藍(lán)牙設(shè)備連接成功后就可以實(shí)現(xiàn)發(fā)送和接收數(shù)據(jù),通過流的方式將數(shù)據(jù)發(fā)送到藍(lán)牙串口模塊,STC15單片機(jī)在中斷服務(wù)子程序中讀取到完整的數(shù)據(jù)包后,分離出命令碼,根據(jù)命令碼執(zhí)行相應(yīng)的操作,實(shí)現(xiàn)對門鎖系統(tǒng)的控制或設(shè)置。

  OutputStream os = socket.getOutputStream(); //向藍(lán)牙串口模塊發(fā)送數(shù)據(jù)

  InptuStream is = socket.getInptuStream(); //從藍(lán)牙串口模塊接收數(shù)據(jù)

  打開Android系統(tǒng)客戶端先要輸入賬號和密碼,登陸成功后才能進(jìn)入主控界面,用戶可以修改密碼,該密碼是保存在手機(jī)文件中的。進(jìn)入主控頁面點(diǎn)擊“手機(jī)連接藍(lán)牙門鎖”就會搜尋在附近能檢測到的藍(lán)牙設(shè)備,如果藍(lán)牙門鎖在Android客戶端能接收到的范圍內(nèi)就能發(fā)現(xiàn)這個藍(lán)牙設(shè)備,點(diǎn)擊該設(shè)備會提示輸入藍(lán)牙的配對密碼,密碼輸入正確就可以實(shí)現(xiàn)藍(lán)牙模塊和手機(jī)客戶端的連接及數(shù)據(jù)通訊了?;贏ndroid系統(tǒng)客戶端軟件測試界面如圖6所示。


4 結(jié)論

  以單片機(jī)和藍(lán)牙串口模塊為核心,并擴(kuò)展繼電器、電機(jī)、鎖閂電流監(jiān)測模塊等設(shè)計(jì)的無線智能門鎖控制系統(tǒng)無需機(jī)械鑰匙,非接觸、無磨損,通過智能手機(jī)等智能藍(lán)牙設(shè)備可以實(shí)現(xiàn)對門鎖的開鎖、閉鎖、報(bào)警提示、參數(shù)設(shè)置等人機(jī)交互操作,并采用密碼驗(yàn)證、數(shù)據(jù)加密等方式保證系統(tǒng)的安全性。經(jīng)過實(shí)踐證明,該系統(tǒng)安全性高、操作簡便、成本低廉,并具有很高的實(shí)用價值。

參考文獻(xiàn):

  [1]周文超.基于單片機(jī)的藍(lán)牙智能門鎖設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2013(7)

  [2]National Semiconductor Corporation.LM2576 Series SIMPLE SWITCHER 3A Step-Down Voltage Regulator[P].2004

  [3]宏晶科技公司.系列單片機(jī)器件手冊[P].2014

  [4]徐愛鈞.STC15增強(qiáng)型8051單片機(jī)C語言編程與應(yīng)用[M].北京:電子工業(yè)出版社,2014,10

  [5]上海移摩通訊技術(shù)有限公司.藍(lán)牙串口模塊FBT-06使用手冊.[DB/OL] http://www. modiatek. com /

  [6]Allegro MicroSystems, Inc.ACS712ELC, Fully Integrated, Hall Effect-Based Linear Current Sensor with 2.1 kVRMS Voltage Isolation and a Low-Resistance Current Conductor [P].2008

  [7]毋建軍.Android應(yīng)用開發(fā)案例教程[M].北京:清華大學(xué)出版社,2013

  [8]劉乃琦.Java應(yīng)用開發(fā)與實(shí)踐[M].北京:人民郵電出版社,2012

  [9]張碩.基于Android的藍(lán)牙多點(diǎn)文件傳輸系統(tǒng)[D].內(nèi)蒙古:內(nèi)蒙古大學(xué),2013

光耦相關(guān)文章:光耦原理


穩(wěn)壓二極管相關(guān)文章:穩(wěn)壓二極管的作用


c語言相關(guān)文章:c語言教程


霍爾傳感器相關(guān)文章:霍爾傳感器工作原理


蜂鳴器相關(guān)文章:蜂鳴器原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉