胡艷茹
(寧夏師范學(xué)院 物理與電子信息工程學(xué)院,寧夏 固原 756000)
針對(duì)時(shí)常困擾人們的尋找日常生活用品的問(wèn)題,已有人嘗試采用貼標(biāo)簽、射頻識(shí)別等方法來(lái)解決[1-2]。市面上也出現(xiàn)了一些智能防丟器,但大多存在一些問(wèn)題,如:操作上必須單獨(dú)下載安裝APP 后才能使用;使用中常發(fā)生連接不上,無(wú)法準(zhǔn)確定位的現(xiàn)象;耗電量高、定位效果不好和效率低下等[3]。本文根據(jù)STM32 單片機(jī)控制技術(shù)的優(yōu)點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了一種基于藍(lán)牙連接,利用RSSI 算法準(zhǔn)確定位,能夠代替門(mén)禁卡的智能防丟器。防丟器的體型小巧,方便攜帶,手機(jī)端操作簡(jiǎn)便,能夠真正地為人們提供便利[4-5]。
智能防丟器采用STM32F103C8T6 作為主控芯片,通過(guò)2 顆3 V 鋰電池提供電源。實(shí)現(xiàn)的主要功能有:日常生活用品定位、聲光報(bào)警、門(mén)禁。圖1 是智能防丟器系統(tǒng)電路。
圖1 智能防丟器系統(tǒng)電路
硬件電路主要由電源模塊、RFID 模塊、藍(lán)牙模塊、核心模塊組成。
防丟器主控芯片選取型號(hào)為STM32F103C8T6,由于其工作電壓為1.65 ~3.6 V,則選用AMS1117-3.3 穩(wěn)壓器,將電路電壓穩(wěn)定在3.3 V 左右[6]。電源轉(zhuǎn)換電路如圖2 所示。
圖2 電源轉(zhuǎn)換電路
本系統(tǒng)所選用的藍(lán)牙串口通信模塊是PW02 模塊,基于藍(lán)牙BLE5.0 協(xié)議架構(gòu),封裝僅為6.8 mm×9.6 mm;功耗全部在毫安級(jí)以?xún)?nèi),600 ms 廣播周期待機(jī)最高平均功耗僅為23 μA,全速傳輸時(shí)功耗僅為619 μA[7-8]。相比其他公司的藍(lán)牙模塊傳輸時(shí)的10 mA 功耗,PW02 功耗僅為它們的1/16。圖3 是PW02 藍(lán)牙串口通信模塊的實(shí)物圖,模塊尺寸比直徑為1.05 cm 的硬幣小很多。
圖3 PW02 藍(lán)牙串口通信模塊的實(shí)物圖
藍(lán)牙模塊采用的RSSI 算法主要是接收信號(hào)強(qiáng)度表示法。首先確定發(fā)射端的發(fā)射功率,并對(duì)接收端接收到的RSSI 數(shù)據(jù)進(jìn)行檢測(cè);再對(duì)接收器和接收器的距離進(jìn)行測(cè)量[9]。在此基礎(chǔ)上利用接收到的信號(hào)強(qiáng)度信息,求出接收器與發(fā)射端之間的距離,并利用三角重心方法求解被測(cè)點(diǎn)的位置,如圖4 所示。
圖4 RSSI 方法
藍(lán)牙測(cè)距方法主要是通過(guò)RSSI 和最小二乘迭代算法進(jìn)行計(jì)算,其基本公式為:
式中:RSSI 為接收到的信號(hào)強(qiáng)度;d為信號(hào)受環(huán)境影響的衰減程度系數(shù);S0為發(fā)射器與接收器相距1 m 時(shí)的信號(hào)強(qiáng)度??紤]到實(shí)際應(yīng)用環(huán)境的復(fù)雜程度,在藍(lán)牙定位功能投入使用之前進(jìn)行大量測(cè)試以進(jìn)行校準(zhǔn)[10]。設(shè)計(jì)中藍(lán)牙模塊P02 引腳連接MCU 模塊I/O1,復(fù)位RESET 引腳連接MCU 模塊I/O2,P05、P06 引腳分別為藍(lán)牙模塊收發(fā)信息引腳,需要與主控模塊TX、RX 引腳對(duì)應(yīng)連接;P03 引腳必須要接高電平,整個(gè)藍(lán)牙模塊才能接通。
RFID(Radio Frequency Identification),也就是所謂的“電子標(biāo)簽”,是一種非接觸的信息訪問(wèn)技術(shù),是物聯(lián)網(wǎng)技術(shù)的一個(gè)重要組成部分。射頻識(shí)別技術(shù)是通過(guò)無(wú)線通信來(lái)讀出被測(cè)對(duì)象所攜帶的信息[11]。RFID 是一種典型的電子標(biāo)簽、讀卡器和應(yīng)用軟件,其工作流程是首先通過(guò)讀卡機(jī)生成射頻磁場(chǎng),然后通過(guò)天線發(fā)射出去。當(dāng)日常生活用品被放入讀卡機(jī)所產(chǎn)生的射頻場(chǎng)中,它就會(huì)得到工作所需要的電能,并產(chǎn)生一個(gè)工作電壓,然后激活電子標(biāo)簽,使其工作起來(lái)。電子標(biāo)簽接收到工作電能后,對(duì)自己內(nèi)存中的資料進(jìn)行調(diào)制,然后通過(guò)天線傳送到卡片閱讀機(jī)[12]。在收到電子標(biāo)簽所傳送的資料后,該資料被傳送到微處理器進(jìn)行處理,以顯示刷卡成功。其通信原理如圖5 所示。
圖5 RFID 通信原理
本設(shè)計(jì)采用無(wú)源RFID,它是最早、最成熟、應(yīng)用最廣的一種RFID 產(chǎn)品。它是利用無(wú)線射頻識(shí)別裝置接收到微波信號(hào),并利用電磁感應(yīng)線圈獲得電能,實(shí)現(xiàn)信息交流。由于省去了電力供應(yīng),因此無(wú)源RFID 的體積可達(dá)毫米級(jí)或以下,其本身構(gòu)造簡(jiǎn)單、造價(jià)低廉、故障率低、壽命長(zhǎng)。
本設(shè)計(jì)的核心處理器使用STM32 系列的STM32F103C8T6。它是內(nèi)核為32 位的ARM?Cortex?-M3 微處理器芯片,代碼效率高,配置的外設(shè)接口數(shù)量較多,并且集成度高、功能強(qiáng)、實(shí)時(shí)性良好、性?xún)r(jià)比高,常用于智能家居和智能設(shè)備上[13]。主控芯片通過(guò)采集藍(lán)牙定位信號(hào)找尋防丟器,發(fā)出聲光信號(hào);當(dāng)有日常生活用品丟失情況發(fā)生時(shí),也會(huì)通過(guò)燈光閃爍加蜂鳴器報(bào)警的方式提醒用戶(hù),利用RFID 模塊還能夠?qū)崿F(xiàn)門(mén)禁功能,用戶(hù)入戶(hù)通過(guò)刷卡開(kāi)門(mén)。實(shí)物搭建的具體材料、數(shù)量及規(guī)格見(jiàn)表1所列。
表1 實(shí)物搭建材料
本設(shè)計(jì)的軟件程序部分是通過(guò)Keil 公司開(kāi)發(fā)的MDK 軟件來(lái)完成的,Keil 擁有強(qiáng)大的代碼編譯器、宏匯編、鏈接器、庫(kù)管理以及一個(gè)強(qiáng)大的模擬調(diào)試器,利用μVision 把它們結(jié)合起來(lái),實(shí)現(xiàn)了一套完整的聯(lián)機(jī)模擬調(diào)試。通過(guò)軟體或軟體的模擬,可以較快地進(jìn)行模擬和調(diào)試。本設(shè)計(jì)采用了Keil μVision5 的開(kāi)發(fā)環(huán)境,可以極大地減少開(kāi)發(fā)時(shí)間,使程序的開(kāi)發(fā)速度更快、更有效率[14-15]。
系統(tǒng)首先進(jìn)行初始化,然后MCU 采集距離數(shù)據(jù),藍(lán)牙連接主控芯片后,對(duì)數(shù)據(jù)進(jìn)行分析處理,進(jìn)而實(shí)現(xiàn)定位。圖6 是本系統(tǒng)的軟件流程。
圖6 系統(tǒng)的軟件流程
本系統(tǒng)設(shè)計(jì)選取PW02 模塊作為藍(lán)牙通信模塊,通過(guò)串口與STM32 的USART3 進(jìn)行通信,完成數(shù)據(jù)的發(fā)送和接收。當(dāng)藍(lán)牙連接成功時(shí),指示燈常亮藍(lán)色;STM32 對(duì)防丟器與手機(jī)所處距離進(jìn)行判斷,如果大于1 m,防丟器進(jìn)行聲光報(bào)警,提醒用戶(hù)。藍(lán)牙模塊工作流程如圖7 所示。
圖7 藍(lán)牙模塊工作流程
STM32 與藍(lán)牙模塊進(jìn)行通信時(shí),先配置中斷收發(fā)器的I/O 口,將USART3 中的TX 引腳設(shè)置為推挽輸出模式,同時(shí)將引腳輸出時(shí)鐘頻率設(shè)為50 MHz,將RX 引腳設(shè)置為推挽浮空輸入模式,此處不需要設(shè)置切換速率。本系統(tǒng)中的波特率一致配置成9 600 b/s,并且藍(lán)牙模塊的波特率也是9 600 b/s,兩者的配置應(yīng)當(dāng)相同,這是很重要的一點(diǎn),否則后續(xù)無(wú)法進(jìn)行正常的通信。此外還需要在幀結(jié)尾傳輸1 個(gè)停止位,設(shè)置為無(wú)奇偶校驗(yàn)位,接著打開(kāi)使能串口1 的中斷,驅(qū)動(dòng)部分代碼如下:
射頻模塊與主控模塊通信流程如圖8 所示,刷卡成功后顯示器上會(huì)顯示“讀卡成功”字樣。
圖8 RFID 模塊通信流程
將程序經(jīng)燒錄軟件下載至成型硬件電路中,并進(jìn)行調(diào)試。調(diào)試完成后對(duì)電路板進(jìn)行固定并美化成品,實(shí)物完成上電后整體效果如圖9 所示。
圖9 成品正反面效果
針對(duì)完整的智能防丟器系統(tǒng)進(jìn)行功能測(cè)試,藍(lán)牙模塊測(cè)試內(nèi)容包括藍(lán)牙連接、響鈴情況、燈光閃爍情況。藍(lán)牙連接完成后藍(lán)色燈光會(huì)閃爍,指示藍(lán)牙已經(jīng)連接,如圖10 所示代表藍(lán)牙模塊連接成功。
如圖11 所示,RFID 模塊初始化后,指示燈常亮紅色。
圖11 RFID 模塊初始化顯示
將防丟器貼近刷卡感應(yīng)區(qū),收集得到完整的數(shù)據(jù)信息后,OLED 屏幕上就會(huì)顯示刷卡成功,如圖12 所示。如果沒(méi)有顯示,則可能原因?yàn)椋海?)防丟器離傳感器距離過(guò)遠(yuǎn);(2)硬件發(fā)生故障。
圖12 RFID 模塊刷卡成功顯示
本文設(shè)計(jì)的基于STM32 的智能防丟器,可以通過(guò)采集藍(lán)牙定位信息找尋防丟器,當(dāng)人與物品距離超過(guò)1 m 時(shí),蜂鳴器會(huì)發(fā)出聲音,模塊會(huì)閃爍紅色燈光,提醒用戶(hù)防丟器丟失。另外,還可以通過(guò)RFID 模塊實(shí)現(xiàn)刷卡,當(dāng)防丟器未接觸到模塊時(shí),屏幕顯示讀卡器;當(dāng)防丟器接觸到模塊時(shí),顯示刷卡成功。防丟器小巧輕便,可輕松放入錢(qián)包、卡包等隨身小包中,隨時(shí)隨地追蹤需要查找的物品,基于近距離定位技術(shù)快速找回失物。