999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺的智能藍牙防丟器的設計

2018-10-10 11:11:16陳菁李昱釗
數字技術與應用 2018年7期

陳菁 李昱釗

摘要:本設計利用現在已普及的智能手機為載體,設計了一款基于Android平臺和低功耗藍牙技術的智能防丟器。防丟器由兩部分組成,一部分是與物件綁定在一起的從機,一部分是用戶所持有的主機。當從機和主機建立藍牙連接以后,防丟系統便正式開始運行。從機部分采用支持藍牙4.0BLE的CC2540芯片,主機部分是常見的Android手機。在安卓系統上完成對檢測軟件的編程。該軟件能夠通過手機與藍牙芯片之間的信號強度值來進行報警。文章闡述了Android藍牙連接的一些細節并對判斷邏輯的實現做出解釋。

關鍵詞:低功耗藍牙;防丟器;Android系統

中圖分類號:TN925 文獻標識碼:A 文章編號:1007-9416(2018)07-0195-02

隨著科技的進步以及各種新鮮事物的沖擊,個人在單位時間內處理的任務和信息量相較于過去有顯著的提高。在高強度的生活中,遺忘現象十分普遍。如何尋找遺忘的物件也成為人們生活中的一個難題,比如隨手一放的鑰匙,錢幣,飾品,還有信用卡,個人證件,耳機等等物品。設計一款專門針對細小物件的防丟器非常實用,防丟器可以通過與細小物件綁定在一起,當物主和物件分離時提供報警,尋回等功能。本設計利用現在已普及的智能手機為載體,設計了一款基于Android平臺和低功耗藍牙技術的智能防丟器。

1 防丟器的功能實現

藍牙防丟器由兩部分組成。一部分為與物件捆綁在一起藍牙設備從機,一部分為用戶隨身攜帶的藍牙設備主機。用戶與其防丟物件之間往往需要維持較近的距離,所以利用藍牙短距離無線通信這一特點使設計非常便利。首先,從機和主機之間要建立了藍牙配對連接,用戶通過主機搜索到正在廣播的從機,在主機的配對表里選擇從機完成連接。當從機與主機建立連接后,主機周期性地得到一個主從機之間的信號強度值。當該信號強度值小于預設的信號強度閾值時,主機啟動報警,提醒用戶物件即將遺失。

當安卓手機檢測到信號強度過弱并報警時,便通過GPS記錄下此時的位置信息。若施主沒有聽到報警聲,便可以根據這個位置記錄找到失物的大致位置,并實現尋回。此位置信息還可以和一些地圖軟件的API相結合,在地圖上更加直觀地顯示出失物的位置。

2 低功耗藍牙從機設計

本設計的從機由CC2540藍牙芯片組成,實現簡單的藍牙廣播功能。隨著智能手機的普及,市面上的大部分安卓手機都支持藍牙,但不是所有的安卓手機都能支持基于藍牙4.0的低功耗藍牙。所以主機選用搭載支持低功耗藍牙協議4.0的安卓手機(安卓4.3.1及以上)。每當藍牙芯片向手機發送一個數據包,便會提供手機一個信號強度的估計值。本設計的主要過程便基于此實現[1-3]。

2.1 CC2540軟件設計

CC2540藍牙芯片的軟件由OSAL操作系統抽象層和硬件抽象層HAL組成,OSAL操作系統抽象層是藍牙4.0BLE協議棧內加入的一個小的操作系統。BLE協議棧、profile以及所有應用程序都是建立在OSAL的基礎上。硬件抽象層HAL位于操作系統內核與硬件電路之間的接口。隱藏了硬件的具體細節,方便軟件在各平臺上的移植并使得軟硬件測試功能成為可能[4]。

2.1.1 低功耗藍牙協議棧的運行流程簡析

在整個程序的main()函數中包含了整個程序的入口,低功耗藍牙協議棧的運行流程大致如下:(1)初始化硬件。(2)初始化I/O板。(3)初始化HAL驅動。(4)初始化NV系統。(5)初始化操作系統。(6)使能中斷。(7)最后初始化電路板。(8)運行OSAL操作系統。當系統初始化后即進入低功耗模式,若沒有任務,則持續處于低功耗模式。若有任務加入,則喚醒系統,離開低功耗模式,任務處理完成后,回到低功耗模式。

2.1.2 低功耗藍牙實現低功耗的主要方法

連接間隙:低功耗藍牙設備使用跳頻機制實現連接,即設備發送數據選用的信道是隨時間變化而變化的。設備之間可以通過鏈路層的數據交換來維持連接,而不用通過數據的接受和發送。從一次信道切換后收發數據到下一次信道切換收發數據之間的時間間隔叫連接間隔。通過設置較大的連接間隔可以明顯地節省功耗,而數據發送速度更慢。

從機延遲:當沒有數據數據可發送時,從機便可以選擇跳過連接間隙,直到有數據發送,跳過間隙的數量有一定的限制,但通過跳過有限的連接間隙便可以極大地減小功耗的消耗。

2.2 低功耗藍牙防丟器從機的關鍵實現

(1)設備的配置以及藍牙協議棧的初始化:選用CC2540模塊主要是作為與隨身物件綁定的跟蹤器,故芯片模塊的狀態設為從機。初始化配置文件GAP為外部設備模式,設置從機為上電即廣播。

(2)設置GAP參數的部分代碼,設置GAP特性,信號強度值的更新速度,以及廣播間隙的部分代碼。

(3)根據Rssi信號強度值計算兩設備之間的距離。根據大量的調查,發現只在有限范圍內,兩設備之間的距離才和信號強度值成不太標準的線性關系。計算距離的算法精確度并不高,而且距離比起信號強度值參考價值較低。所以經過計算得出的兩設備之間的距離值只具有參考意義,并不運用于實際的報警判斷。

(4)將獲得的Rssi信號強度值經過處理后發送到主機(安卓手機設備),Rssi為信號強度值,是藍牙防丟器的主要參考數據。

3 安卓手機端設計——應用程序的實現

因為要用到只有Android 4.3以上版本才有的API,所以本設計軟件選用Android4.3.1系統開發。而搭載Android4.3.1的設備可以是智能手機,智能手表,智能電視等。智能手機相對其他安卓設備而言更加普及、更加方便攜帶,本軟件設計主要針對手機進行適配[5-7]。

3.1 手機軟件界面

手機軟件界面分為兩部分:第一部分是主要是藍牙設備的掃描,和連接的建立。我們把它叫做設備掃面界面。在此頁面中,軟件掃描外部可連接的藍牙設備,建立一個可連接設備的設備目錄,在其中顯示每一個可連接設備的設備名,UUID地址,Rssi信號強度值和估算的距離值。界面中的顯示設備的滾動目錄通過定義ViewHolder類來輔助實現。目錄通過getView方法來獲取將要顯示的項,而在getView方法中,主要通過findViewById方法來查找,findViewById是一個基于樹的查找方法,對時間的消耗非常大,而且要從XML布局文件中生成View對象。所以當需要列出的項變得很多時,軟件的運行速度將會大大降低。ViewHolder主要針對可以滾動顯示的目錄,通過優化當目錄項滾動到屏幕外時的所進行的操作來大大降低系統消耗。

手機界面設計的第二部分:手機和藍牙芯片建立連接后顯示信號強度值,連接狀態等信息:在上面的可連接設備目錄中選擇一個設備后,就進入正式的監測。該界面中主要顯示的是一些監測得到的數據信息。該部分主要由一個可以滾動的ScrollView組成。在這個ScrollView中滾動顯示一些實時檢測到的數據。

3.2 Android手機中的Service和Activity

Activity包括用戶正在訪問的GUI和創建GUI時需要運行的程序,而GUI和這些程序是相互阻塞的。當一個Activity中運行的代碼時間復雜度太大時,這段代碼就會因為長期阻塞GUI而使界面崩潰。所以需要長時間運行的程序必須放入每個Activity所對應的Service當中。Service是獨立于Activity運行的,兩者可以相互通信。而藍牙建立連接后不斷傳輸數據的過程是一個長時間的過程。所以必須建立一個為藍牙傳輸數據服務的Service。

3.3 手機端和設備藍牙連接的建立[8-9]

BLE藍牙通過GATT建立連接。建立連接后便開始數據的傳輸,藍牙在后臺傳輸得到的數據,通過傳遞消息控制Activity的實時更新。軟件流程設計如下:(1)初始化藍牙適配器;(2)打開藍牙:在BlueToothClass類中,定義了一些回調函數,這些回調函數返回了手機和藍牙設備之間的通信結果;(3)連接狀態改變的回調,通過此回調可以得知設備是否連接:(4)發現服務的回調;(5)讀操作的回調;(6)數據返回的回調:在BlueToothCalss類中連接狀態回調函數onConnectionStateChange中打開TimerTask線程,周期性地讀取Rssi信號強度值。藍牙防丟器的從機會不斷向主機發送Rssi的值,作為主機的手機通過Android的readRemoteRssi方法來實現對Rssi值的讀取:(7)通過回調函數onReadRemoteRssi決定當收到Rssi值的時候該做什么工作;(8)在安卓中Intent對象負責完成在Activity和Service之間以及Activity之間的消息傳遞,該函數通過Intent將藍牙進程得到的Rssi信息傳給主進程Activity進行處理。

3.4 手機端報警的實現

接受藍牙線程傳輸過來的Rssi值,當Rssi值大于允許范圍時,手機便將此狀態視作危險狀態,開始報警。但這種方法存在很大的誤差:第一,從機對Rssi值的估計存在一定的誤差,很可能由于天氣,溫度等因素而發生較大的差異。第二,如果物品攜帶者正在移動,那么在手機和防丟物品之間就很有可能出現障礙物。障礙物將干擾設備報送的信號強度值,從而對判斷產生影響。為了減少由上述原因造成的誤差,當收到設備傳送過來的Rssi值時我們并不立即對其做出判斷。而是將每次收到的Rssi值存到一個緩存數組里面。當緩存數組存滿十個值后。對這十個值取一個平均數,把這個平均值作為判斷的主要依據。經過測試這樣將極大地減少誤差,使判斷更加準確。當平均值超過指定的值時,打開音樂報警線程,當平均值在允許的范圍內時,關閉報警線程。

4 防丟器的測試

CC2540芯片的程序編寫在IAR Embedded Workbench中進行。這是一款由IAR公司提供的一款C語言編譯器,支持眾多的微處理器同時也支持CC2540低功耗藍牙芯片,而手機端程序的編寫與調試則是在eclipse平臺上進行。eclipse是一款基于java的開源開發環境,通過安裝Android系統的支持插件,結合Android SDK就可以開發安卓程序。

測試過程以及結果:將CC2540芯片通過配套仿真器燒錄好程序,通上電以后與細小物件綁定在一起。智能手機用數據線與電腦連接,在eclipse上將調試好的程序下載到手機上進行安裝。一切準備就緒后開始測試防丟器。通過手機在打開藍牙的情況下打開軟件,軟件中出現滾動列表,顯示搜索到的正在廣播的藍牙設備。選擇我們的CC2540藍牙芯片建立連接。幾秒后,連接建立成功,手機進入監測報警模式。進入報警模式后,CC2540不斷發送Rssi值到手機上。同時,手機屏幕上也滾動顯示每一次收到的Rssi值以及根據Rssi值計算出來的距離值。移動手機,當手機在安全范圍內時,不報警。將手機移動至遠處,發現當手機與物件之間的距離過遠時,手機開始報警。

5 結語

隨著藍牙4.0的發布,低功耗藍牙便成為短距離無線通信的首要之選。低功耗藍牙可以提高續航時間,而隨身物品恰好也需要長時間和主人在一起,選用藍牙技術提供的支持極大地方便了防丟器的設計。防丟器設計的關鍵問題是如何防丟,怎么判斷物件是否處于遺失狀態。我們選用手機與設備之間的信號強度值來判斷,因為信號強度值隨距離的增大而減弱,當物主與其物件之間的距離較遠時,可以看作物主已經遺失了該物件,實驗證明,通過這樣一種信號弱則報警的簡單判斷是可以應對大多數的情況的,設計具有良好的實用性。

參考文獻

[1]包健.基于安卓系統的智能藍牙音箱設計研究[D].昆明理工大學,2013.

[2]霍丙乾.基于藍牙4.0的防丟系統的研究與設計[D].北京郵電大學,2015.

[3]王磊,基于藍牙4.0的防丟系統的研究與設計[D].太原理工大學,2013.

[4]葉冬,謝東力.無線防丟器設計[J].科技創新與應用,2017,(8):52.

[5]顏俊杰.基于WIFI的室內定位技術研究[D].華南理工大學,2013.

[6]羅瑋.一種新興的藍牙技術—超低功耗藍牙技術[J].現在電信科技,2010,(10):31-34.

[7]歐陽駿,陳子龍,黃寧淋.藍牙4.0BLE開發完全手冊—物聯網開發技術實戰[M].化學工業出版社,2016.

[8]李曉.基于Android平臺的手持終端應用功能開發與設計[D].湖北大學,2010.

[9]王長青.Android智能穿戴設備開發指南[M].人民郵電出版社.

主站蜘蛛池模板: 亚洲无码91视频| 黄色网址手机国内免费在线观看| 亚洲天堂免费在线视频| 亚洲第一成网站| 玖玖免费视频在线观看| 九九热精品在线视频| 国产精品第一区| 国产视频大全| 久久亚洲日本不卡一区二区| 一本大道视频精品人妻 | 国产日本欧美亚洲精品视| 青青草原国产精品啪啪视频| 欧美日韩va| 国产91小视频在线观看| 国产精品福利在线观看无码卡| 久久综合色88| 国产aaaaa一级毛片| 欧美亚洲第一页| 日韩av手机在线| 中文字幕无码中文字幕有码在线| 日本高清有码人妻| 伊人蕉久影院| 国产精品第| 九色免费视频| 丰满的熟女一区二区三区l| 国产精品视频白浆免费视频| 亚洲成年人片| 日韩天堂视频| 国产精品免费露脸视频| 成人午夜精品一级毛片| 麻豆精品在线| 婷婷激情五月网| 无码中文AⅤ在线观看| 亚洲综合久久成人AV| 午夜成人在线视频| 久久香蕉国产线看精品| 五月婷婷激情四射| 亚洲一区色| 在线观看无码av五月花| 国产流白浆视频| 国产你懂得| 一本一本大道香蕉久在线播放| 国产成人啪视频一区二区三区| 免费一级全黄少妇性色生活片| 亚洲国产成人在线| 国产第二十一页| 国产一区二区三区夜色| 国产高清不卡视频| 亚洲精品天堂自在久久77| 久久亚洲美女精品国产精品| 亚洲日韩国产精品无码专区| 丁香婷婷激情网| 精品国产中文一级毛片在线看| 999国内精品久久免费视频| 国产91成人| 美女国内精品自产拍在线播放| 成人在线观看不卡| 欧美一级夜夜爽www| 国产成人精品高清不卡在线| 亚洲欧美自拍视频| 99久久精品免费视频| 国产人免费人成免费视频| 国产成本人片免费a∨短片| 亚洲综合18p| 中国特黄美女一级视频| 中文字幕在线看| 亚洲国产精品国自产拍A| 亚洲欧美另类专区| 国产成人av大片在线播放| 伊人久久精品亚洲午夜| 日韩中文字幕免费在线观看| 欧美亚洲一区二区三区在线| 国产亚洲欧美日韩在线一区| 色综合a怡红院怡红院首页| 精品国产一区91在线| 欧美日韩第三页| 91午夜福利在线观看精品| 久久久精品无码一二三区| 欧美日韩第三页| 国产视频入口| 视频一区视频二区日韩专区| 亚洲人成色77777在线观看|