雷思睿
摘? ?要:基于STM32單片機(jī),通過在相關(guān)物品身上安裝簡(jiǎn)易藍(lán)牙防丟器,將防丟失裝置固定在易丟失的物品上,在手機(jī)與防丟器之間建立連接,利用安裝在手機(jī)的APP查看物品與人距離,超過預(yù)設(shè)距離后手機(jī)端響鈴馬上報(bào)警提醒用戶。同時(shí)利用手機(jī)APP呼叫防丟失器,裝置發(fā)出蜂鳴聲以達(dá)到示意指引用戶的目的。文章對(duì)此設(shè)計(jì)進(jìn)行了闡述。
關(guān)鍵詞:藍(lán)牙技術(shù);單片機(jī);無線通信;防丟失器
1? ? 藍(lán)牙技術(shù)概述
藍(lán)牙的核心主要是利用跳頻技術(shù)。因超低功耗優(yōu)勢(shì),使得藍(lán)牙技術(shù)得以廣泛應(yīng)用,從而誕生藍(lán)牙防丟器這種產(chǎn)品。為了滿足大眾的使用需求,新一代藍(lán)牙4.0防丟器產(chǎn)品已經(jīng)出現(xiàn)。藍(lán)牙4.0防丟器即智能藍(lán)牙防丟器,采用最新藍(lán)牙4.0技術(shù),專門為iPhone/iPad設(shè)計(jì)的防丟器。工作原理主要是通過距離變化來判斷物品是否還控制在用戶的安全范圍內(nèi),又因?yàn)樵O(shè)計(jì)簡(jiǎn)單輕巧,攜帶方便,很快得到市場(chǎng)認(rèn)可。
2? ? 無線防丟器主要代表設(shè)計(jì)
無線防丟器設(shè)計(jì)是基于物聯(lián)網(wǎng)技術(shù)基礎(chǔ)上設(shè)計(jì)的。目前按市場(chǎng)分類,當(dāng)前主流的智能防丟器主要有兩種:一種是形式比較單一,主要以防丟貼片或防丟掛件形式存在的用于設(shè)備防丟的智能防丟器;一種是以智能穿戴設(shè)備、服飾、鞋等形式多樣的用于人防丟的防丟器。目前有關(guān)無線防丟器在實(shí)際生活中有以下兩種應(yīng)用。
2.1? 基于雷達(dá)的追蹤器
基于雷達(dá)的追蹤器,也被稱為“無線電定位”,此類無線防丟器是利用電磁波探測(cè)目標(biāo)的電子設(shè)備,雷達(dá)發(fā)射電磁波對(duì)目標(biāo)物體進(jìn)行照射并接收其返回波,由此獲得目標(biāo)至電磁波發(fā)射點(diǎn)的距離、距離變化率、方位、高度等信息。美國(guó)的雷達(dá)追蹤器Stick-N-Find,將防丟器附著于物品表面,如果物品找不到了,可利用手機(jī)查看與之匹配的APP,并從APP顯示的數(shù)據(jù)了解物品與自己的距離,并根據(jù)APP的動(dòng)態(tài)指引與距離的變化,即可找到失物[1]。
2.2? 虛擬牽引繩
用于預(yù)防認(rèn)知癥老人、孩童走失,把貼片放在老人、孩子身上。用戶端APP自帶的藍(lán)牙功能與防丟器進(jìn)行信號(hào)通信,當(dāng)預(yù)防主體跑出手機(jī)端預(yù)先設(shè)置的安全距離,手機(jī)端接收不到信號(hào)則將發(fā)出警報(bào)。按技術(shù)分類,目前智能防丟器的種類有藍(lán)牙/WiFi智能防丟器、GPS智能防丟器、RFID智能防丟器等,比較新穎的是結(jié)合磁場(chǎng)或傳感器技術(shù)的智能防丟器。
3? ? 基于STM32單片機(jī)的智慧防丟失系統(tǒng)的設(shè)計(jì)
基于STM32單片機(jī)的智慧防丟失系統(tǒng)包含由單片機(jī)和通信模塊組成的防丟裝置與利用Android Studio開發(fā)的手機(jī)APP兩部分。通過藍(lán)牙通信可以知道附有藍(lán)牙標(biāo)簽的物品距離,當(dāng)距離超過一定程度,用戶手機(jī)端響鈴警報(bào)。還可利用匹配的手機(jī)APP的呼叫裝置,通過蜂鳴讓用戶知道物品的大致位置[2]。
3.1? 系統(tǒng)框架
智慧防丟失系統(tǒng)主要分為用戶端與藍(lán)牙防丟器兩部分。用戶端建立自帶在Android系統(tǒng)的手機(jī)端上,通過Java進(jìn)行程序編寫。程序設(shè)計(jì)大體分為以下4個(gè)模塊:藍(lán)牙通信、人機(jī)交互界面、報(bào)警和信號(hào)處理。藍(lán)牙防丟器是一個(gè)由STM32單片機(jī)、藍(lán)牙模塊和蜂鳴器組成的防丟失硬件裝置,可進(jìn)行無線信號(hào)采集、串口通信模塊和驅(qū)動(dòng)模塊,收發(fā)信號(hào)進(jìn)行數(shù)據(jù)交流并反饋到客戶端。
3.2? 系統(tǒng)設(shè)計(jì)主要任務(wù)
系統(tǒng)構(gòu)成分為硬件電路設(shè)計(jì)和軟件設(shè)計(jì)。硬件中由一個(gè)STM32單片機(jī)作為主機(jī)連接藍(lán)牙模塊和蜂鳴警報(bào)器,構(gòu)成一整個(gè)無外殼的藍(lán)牙防丟失裝置。手機(jī)端安裝基于Java語言自行開發(fā)的應(yīng)用軟件,打開APP,預(yù)先設(shè)置安全距離,若用戶手機(jī)端與裝置的距離超過預(yù)設(shè),則手機(jī)響鈴發(fā)出警報(bào)。藍(lán)牙范圍中,用戶還可通過APP呼叫防丟器,以確定失物大體位置。在整個(gè)過程中需要加強(qiáng)單片機(jī)對(duì)藍(lán)牙模塊進(jìn)行功能控制。無線防丟失系統(tǒng)的硬件設(shè)計(jì)包含單片機(jī)、信號(hào)轉(zhuǎn)換電路和蜂鳴報(bào)警器等。
3.3? 系統(tǒng)設(shè)計(jì)技術(shù)分析
藍(lán)牙防丟器主要技術(shù)手段:網(wǎng)絡(luò)編程技術(shù)、Android開發(fā)技術(shù)、C語言與Java語言的運(yùn)用等。通過低功耗藍(lán)牙的信號(hào)進(jìn)行數(shù)據(jù)轉(zhuǎn)換傳輸,通過對(duì)無線傳感器網(wǎng)絡(luò)中的RSSI進(jìn)行邏輯處理,計(jì)算失物與自己的距離。所使用到的編程工具有Android Studio,Keil;系統(tǒng)硬件分為3個(gè)部分,分別是STM32單片機(jī)、藍(lán)牙模塊及蜂鳴器。關(guān)于通信模塊的設(shè)計(jì)主要包括藍(lán)牙模塊串口通信,TCP/IP簇實(shí)現(xiàn)互聯(lián),進(jìn)行信號(hào)采集、藍(lán)牙模塊驅(qū)動(dòng)程序的設(shè)計(jì)。軟件部分為帶有藍(lán)牙功能的APP設(shè)計(jì),其中包括用戶界面設(shè)計(jì)、網(wǎng)絡(luò)編程、View繪制[3]。
3.4? 系統(tǒng)用戶端模塊方案設(shè)計(jì)
本系統(tǒng)用戶端功能主要分為藍(lán)牙連接和通信。APP與藍(lán)牙防丟器通信;藍(lán)牙信號(hào)處理和轉(zhuǎn)換:將掃描到藍(lán)牙信號(hào)強(qiáng)度指示(Received Signal Strength Indication,RSSI)通過后臺(tái)計(jì)算轉(zhuǎn)為距離;藍(lán)牙報(bào)警功能:當(dāng)藍(lán)牙防丟器超出一定距離,用戶收到警報(bào);同時(shí)用戶還可通過APP呼叫防丟器,此時(shí)防丟器發(fā)出蜂鳴聲進(jìn)行回應(yīng)。
4? ? 基于STM32單片機(jī)的智慧防丟失系統(tǒng)實(shí)現(xiàn)
4.1? 系統(tǒng)硬件設(shè)計(jì)
4.1.1? STM32F103C8T6單片機(jī)的設(shè)計(jì)
STM32F103C8T6有ARM公司的高性能“Cortex-M3”內(nèi)核,是32位處理器,可以升頻到72 MHz。STM32單片機(jī)與藍(lán)牙模塊通過串口通信進(jìn)行互連,串口通信是一種設(shè)備間十分常見的串行通行方式,其操作簡(jiǎn)單便捷,且大部分電子設(shè)備都支持。
4.1.2? HC-05藍(lán)牙模塊的設(shè)計(jì)
選用藍(lán)牙模塊為HC-05,其采用CSR主流藍(lán)牙芯片,藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn)。自帶連接狀態(tài)指示燈,LED快閃表示沒有藍(lán)牙連接;LED慢閃表示進(jìn)入AT命令模式。這款藍(lán)牙模塊可與自帶藍(lán)牙的筆記本電腦、藍(lán)牙適配器等設(shè)備進(jìn)行無縫連接。HC-05藍(lán)牙通信模塊具有兩種工作模式:命令響應(yīng)工作模式和自動(dòng)連接工作模式。
藍(lán)牙實(shí)現(xiàn)的功能包括:(1)掃描其他藍(lán)牙設(shè)備。(2)為可配對(duì)的藍(lán)牙設(shè)備查詢藍(lán)牙適配器。(3)建立RFCOMM通道。(4)通過服務(wù)搜索來鏈接其他的設(shè)備。(5)與其他的設(shè)備進(jìn)行數(shù)據(jù)傳輸。(6)管理多個(gè)連接。
4.1.3? 蜂鳴器電路的設(shè)計(jì)
主板通過USB數(shù)據(jù)線供電后,用戶通過手機(jī)進(jìn)入系統(tǒng)藍(lán)牙配對(duì)HC-05,然后打開APP,此時(shí)即可以收到信號(hào)并計(jì)算距離,超過預(yù)設(shè)距離則報(bào)警。如果用戶要呼叫藍(lán)牙防丟裝置,則在APP最下面的列表點(diǎn)擊HC-05,然后點(diǎn)擊呼叫即可。
4.2? 系統(tǒng)軟件設(shè)計(jì)
4.2.1? APP開發(fā)介紹
智慧防丟失APP的設(shè)計(jì)主要基于Android平臺(tái),通過APP可以看到綁定物品的距離和報(bào)警情況。
采用Android Studio進(jìn)行手機(jī)端的程序編寫,單片機(jī)采用Keil進(jìn)行程序編寫然后通過仿真器將代碼燒錄到目標(biāo)板(PC端仿真器驅(qū)動(dòng)已經(jīng)安裝完畢為前提),當(dāng)用戶端能通過藍(lán)牙模塊與單片機(jī)建立連接后,用STM32單片機(jī)進(jìn)行程序測(cè)試。由于HC-05藍(lán)牙模塊可支持通用AT指令,所以單片機(jī)的串口中斷可對(duì)藍(lán)牙模塊進(jìn)行一些操作。手機(jī)軟件通過藍(lán)牙連接到單片機(jī),單片機(jī)根據(jù)接收到的不同的信號(hào)數(shù)據(jù)做出不同的響應(yīng)。需要設(shè)計(jì)出一個(gè)有著友好界面UI,簡(jiǎn)潔清晰,便于用戶的操作與體驗(yàn)的APP。將布局中的選項(xiàng)按鈕賦予不同的服務(wù)任務(wù),將其與通信模塊通過接口相連從而進(jìn)行數(shù)據(jù)的傳輸與判斷。添加其他模塊功能按鈕,如報(bào)警模塊中的暫停蜂鳴警報(bào)。
4.2.2? APP程序設(shè)計(jì)
在主界面中,設(shè)計(jì)者可通過主界面整體設(shè)計(jì)的標(biāo)簽
4.2.3? 報(bào)警模塊設(shè)計(jì)
報(bào)警模塊主要用于提示用戶,同時(shí)客戶利用手機(jī)端APP也可以呼叫藍(lán)牙防丟器。當(dāng)藍(lán)牙防丟器超過安全距離,手機(jī)APP響鈴警報(bào)。Java中的鈴聲通過RingtoneManager管理,RingtoneManager管理來電鈴聲、提示音、鬧鐘鈴聲等,可根據(jù)實(shí)際應(yīng)用需求通過定義不同的函數(shù)接口來實(shí)現(xiàn)不同的功能。
[參考文獻(xiàn)]
[1]刑子揚(yáng).基于手機(jī)APP的無線自動(dòng)奶茶機(jī)[J].科學(xué)技術(shù)創(chuàng)新,2019(2):25.
[2]何生毫,周川湖,劉宇昊,等.基于STM32的無線定位追蹤系統(tǒng)[J].計(jì)量與測(cè)試技術(shù),2018(30):15-78.
[3]何誠(chéng)剛.安卓移動(dòng)設(shè)備外部通信接口板的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2017(1):114-118.