李鳴佩
(武昌工學(xué)院,湖北 武漢 430065)
從20 世紀(jì)末期,手環(huán)出現(xiàn)在國(guó)內(nèi)電子產(chǎn)品市場(chǎng),然而市場(chǎng)上的手環(huán)產(chǎn)品和國(guó)外的產(chǎn)品相差較大,國(guó)內(nèi)的相關(guān)電子科技方案的人員較少,只有較少的企業(yè)愿意投入資金去研發(fā)這類產(chǎn)品,所以產(chǎn)品之間存在差距。此款電子手環(huán)采用三軸加速度傳感器ADXL345,通過單片機(jī)控制,可以獲得人體動(dòng)態(tài)數(shù)據(jù),例如計(jì)步、傾斜角度等數(shù)據(jù)。電子手環(huán)具有功耗低、精度高、靈敏度高的優(yōu)點(diǎn)。整體而言,手環(huán)正朝著多功能,高精度和低價(jià)格的方向發(fā)展。
圖1 最小系統(tǒng)接線圖
整個(gè)系統(tǒng)包括三軸傳感器、體溫采集、心率采集、藍(lán)牙通信、按鍵、顯示以及主控制器。RTC 內(nèi)部時(shí)鐘提供時(shí)鐘信號(hào),通過反射式光電傳感器采集心率信號(hào)STM32 內(nèi)部A/D 轉(zhuǎn)換測(cè)量心率,LMT70 溫度傳感器實(shí)現(xiàn)體溫測(cè)量。OLED 顯示體溫、步數(shù)、日期時(shí)間、心率等信息,可通過BT06 藍(lán)牙模塊傳輸至第三方手機(jī)軟件APP(藍(lán)牙助手)顯示。三個(gè)按鍵用于調(diào)整日期、時(shí)間和數(shù)據(jù),具有一個(gè)清除步數(shù)按鍵,還具有一個(gè)切換信息顯示按鍵。步數(shù)每天00:00 會(huì)自動(dòng)清除前一天的步數(shù),也可通過按鍵清除。
圖2 STM32F103C8T6 引腳圖
本次設(shè)計(jì)采用性能比較高的STM32F103 系列單片機(jī),具有128k Flash 的芯片STM32F103C8T6 作為主控。該器件擁有32位數(shù)據(jù)處理能力,器件的成本低、性能強(qiáng)、能耗小。開發(fā)技術(shù)可以采用THUMB-2 指令,更加方便開發(fā)者進(jìn)行開發(fā),加快了項(xiàng)目完成進(jìn)度。器件封裝為貼片形式,所以占用空間小,集成度高,器件一共有48 個(gè)外設(shè)接口,器件的工作頻率最大可到72MHz。
圖3 藍(lán)牙通信電路圖
藍(lán)牙模塊可以在寬范圍的溫度環(huán)境中運(yùn)行,模塊的穩(wěn)定性強(qiáng),可以在很多復(fù)雜的場(chǎng)景中工作。模塊帶有超低功耗功能,節(jié)省可移動(dòng)設(shè)備的電源功耗。藍(lán)牙通信模塊帶有串口通信方案,模塊通過藍(lán)牙通信傳輸數(shù)據(jù),數(shù)據(jù)再經(jīng)過串口和其他控制器進(jìn)行交互。最終進(jìn)行無線數(shù)據(jù)傳輸,將心率、體溫?cái)?shù)據(jù)傳輸?shù)绞謾C(jī)。
圖4 三軸傳感器電路圖
作為一款低功耗而且體積較小的加速度計(jì),數(shù)字式加速度傳感器ADXL345,主要是通過進(jìn)行加速度變換,進(jìn)而改變內(nèi)部電壓電阻以及電容的變化情況。使用者在行走的過程當(dāng)中,身體會(huì)上下起伏,微控制可讀取該傳感器的三組模擬量,通過計(jì)步算法分析處理數(shù)據(jù),將數(shù)據(jù)合成為運(yùn)動(dòng)信息。ADXL345 數(shù)字式傳感器具有精度高、體積小、反應(yīng)快等特點(diǎn),因此,其廣泛使用與各種產(chǎn)品中。
圖5 體溫檢測(cè)采集電路圖
本次設(shè)計(jì)用于智能手環(huán)設(shè)計(jì),對(duì)于電路上的設(shè)計(jì)需要減小電路,數(shù)字式傳感器電路小,性能穩(wěn)定。LMT70 是高精度傳感器,適用于人體檢測(cè)設(shè)備,并且響應(yīng)及時(shí)且輸出易于調(diào)節(jié)。在室內(nèi)無風(fēng)情況下的溫度分辨率為0.046℃,遠(yuǎn)遠(yuǎn)小于市場(chǎng)上其它的溫度傳感器。此器件另一個(gè)最大的優(yōu)勢(shì)是器件和單片機(jī)連接不需要任何的輔助器件,直接連接就可以實(shí)現(xiàn)溫度的采集。最終選擇LMT70 采集人體體溫?cái)?shù)據(jù)。
圖6 心率檢測(cè)電路圖
心率傳感器采用的是反射式光電式傳感器,反射式光電傳感器自帶光源(綠光)和光接收裝置,光源發(fā)出的光經(jīng)過待測(cè)物體的反射被光敏元件接受,經(jīng)過處理后可得到準(zhǔn)確的脈搏信號(hào)。實(shí)際應(yīng)用中與身體任何部位接觸都可以,當(dāng)光源所經(jīng)過處的血流量改變時(shí),探頭便可捕捉到隨心脈周期改變的光脈沖信號(hào)從而采集到脈搏信息。
圖7 主程序流程圖
在軟件設(shè)計(jì)時(shí),系統(tǒng)首先要完成對(duì)所有接口以及通信的初始化,讀取體溫?cái)?shù)據(jù)、計(jì)步數(shù)據(jù)和心率數(shù)據(jù),判斷是否進(jìn)行顯示切換,按鍵按下后可以進(jìn)行藍(lán)牙數(shù)據(jù)傳輸,同時(shí)判斷時(shí)間數(shù)據(jù)是否到0 點(diǎn),到0 點(diǎn)就清除當(dāng)天數(shù)據(jù)信息。
單片機(jī)只需要通過串口就可以完成對(duì)遠(yuǎn)程通信模塊的控制。所以串口的設(shè)置至關(guān)重要,主要是軟件操作是對(duì)寄存器的設(shè)置,串口的參數(shù)很多,所以設(shè)置寄存器的方案也有很多,只有發(fā)送和接收雙方一致才可以實(shí)現(xiàn)通信,初始化結(jié)束后,只要對(duì)發(fā)送寄存器和接收寄存器進(jìn)行操作,就可以實(shí)現(xiàn)數(shù)據(jù)的傳輸,寄存器SUBF 當(dāng)中包括接收以及發(fā)送的判斷標(biāo)志,所以軟件設(shè)計(jì)很方便。定位數(shù)據(jù)為512 字節(jié)數(shù)據(jù),通過獲取這個(gè)數(shù)據(jù),就得到遠(yuǎn)程通信數(shù)據(jù)。
單片機(jī)此時(shí)檢測(cè)按鍵信號(hào)才是正確的時(shí)刻。按照上述的波形情況,我們?cè)谲浖z測(cè)的時(shí)候需要進(jìn)行消抖,也就是等按鍵抖動(dòng)信號(hào)過去,再檢測(cè)按鍵信號(hào),一般按鍵抖動(dòng)時(shí)間是3 到5 毫秒,所以在首次掃描到有效的按鍵信號(hào)后,再經(jīng)過3 到5 毫秒后,繼續(xù)掃描按鍵的信號(hào),如果既然有效,則表示按鍵確實(shí)按下。
在需要進(jìn)行三軸數(shù)據(jù)的的時(shí)候,單片機(jī)首先要輸入時(shí)鐘信號(hào)到SCL 引腳,再按照時(shí)鐘信號(hào)輸入功能選擇數(shù)據(jù)到SDA 引腳,之后數(shù)據(jù)轉(zhuǎn)換結(jié)果會(huì)通過SDA 輸出到單片機(jī)。單片機(jī)在第一個(gè)時(shí)鐘信號(hào)下降沿前,SDA 引腳為高電平,即為開啟數(shù)據(jù)轉(zhuǎn)換。在第二個(gè)下降沿前輸入數(shù)據(jù),選擇對(duì)應(yīng)的通道。
設(shè)計(jì)采用A/D 轉(zhuǎn)換的原理進(jìn)行心率傳感器的模擬量讀取,從而轉(zhuǎn)換為數(shù)字量,在采集心率時(shí),其步驟如下:首先是初始化A/D 轉(zhuǎn)換器,配置好ADC1 的通道1。并且配置一個(gè)定時(shí)器,定時(shí)50ms 中斷,之后進(jìn)入循環(huán)。在循環(huán)定定時(shí)器50ms 中斷一次,在中斷時(shí)讀取一次A/D 轉(zhuǎn)換的值,將A/D 轉(zhuǎn)換的值通過串口發(fā)送至電腦上位機(jī),同時(shí)通過心率算法算出其心率值,同時(shí)在OLED上顯示出來。
在系統(tǒng)板開機(jī)后,正常運(yùn)行時(shí),OLED 第二行會(huì)顯示“歡迎使用”。第三行顯示“藍(lán)牙智能手環(huán)”2 秒,然后自動(dòng)刷新顯示心率、步數(shù)、體溫?cái)?shù)據(jù)等。
在主界面上實(shí)時(shí)顯示,可通過按鍵實(shí)現(xiàn)其他功能,按下切換鍵時(shí),OLED 將切換到時(shí)間顯示界面,由于OLED 大小關(guān)系,故而選擇分屏顯示。時(shí)間顯示界面顯示日期、時(shí)間、星期等信息。
本次設(shè)計(jì)當(dāng)中采用第三方軟件藍(lán)牙助手APP 軟件進(jìn)行藍(lán)牙連接,實(shí)現(xiàn)系統(tǒng)上電后,打開手機(jī)APP 進(jìn)行藍(lán)牙搜索,本次設(shè)計(jì)采用的是BT06 藍(lán)牙模塊,但是其藍(lán)牙名稱為“BT04-A”,當(dāng)搜到該藍(lán)牙信號(hào)后進(jìn)行連接,第一次使用連接時(shí)需輸入密碼,初始密碼為1234,輸入完成后進(jìn)入數(shù)據(jù)傳輸界面。單片機(jī)控制藍(lán)牙模塊將步數(shù)、心率、體溫?cái)?shù)據(jù)每四秒傳輸一次至手機(jī)APP 進(jìn)行顯示。
對(duì)系統(tǒng)檢測(cè)體溫?cái)?shù)據(jù)的準(zhǔn)確進(jìn)行測(cè)試,測(cè)了5 組數(shù)據(jù),并進(jìn)行了記錄,體溫?cái)?shù)據(jù)數(shù)據(jù)表如表1 所示。
表1 體溫?cái)?shù)據(jù)測(cè)試
系統(tǒng)數(shù)據(jù)為本系統(tǒng)采集的體溫?cái)?shù)據(jù),專業(yè)產(chǎn)品數(shù)據(jù)是由體溫計(jì)進(jìn)行測(cè)量得出的數(shù)據(jù),測(cè)試時(shí)環(huán)境溫度為25℃,測(cè)試時(shí)將手指放在溫度傳感器上測(cè)量。由表1 數(shù)據(jù)可得誤差范圍為0~0.1 攝氏度。經(jīng)過計(jì)算表中數(shù)據(jù)體溫模塊誤差精度不足1%,符合任務(wù)書中的要求。
對(duì)系統(tǒng)檢測(cè)心率數(shù)據(jù)的準(zhǔn)確進(jìn)行測(cè)試,測(cè)試了5 組數(shù)據(jù),并進(jìn)行了記錄,心率數(shù)據(jù)表如表2 所示。
表2 心率數(shù)據(jù)測(cè)試
系統(tǒng)數(shù)據(jù)為本系統(tǒng)采集的心率數(shù)據(jù),專業(yè)產(chǎn)品數(shù)據(jù)是由其他品牌手環(huán)進(jìn)行測(cè)量得出的數(shù)據(jù),其中系統(tǒng)數(shù)據(jù)誤差為0~4(單位次/分鐘),而專業(yè)產(chǎn)品數(shù)據(jù)誤差為3~5(單位次/分鐘)。經(jīng)過對(duì)比后,系統(tǒng)采集的心率數(shù)據(jù)較可靠。由表2 得出系統(tǒng)誤差精度為3%。滿足任務(wù)書要求。
基于STM32 單片機(jī)的藍(lán)牙智能手環(huán)設(shè)計(jì)與實(shí)現(xiàn),最終完成了三軸傳感器、遠(yuǎn)程通信、按鍵、報(bào)警、GPS 模塊、指示燈以及主控制器的方案選擇、電路設(shè)計(jì)、軟件設(shè)計(jì)以及實(shí)物制作。系統(tǒng)實(shí)現(xiàn)的功能是實(shí)時(shí)采集三軸傳感器數(shù)據(jù),以及準(zhǔn)確的測(cè)量心率、體溫。準(zhǔn)確的將身體狀況傳輸至手機(jī)APP,便于隨時(shí)監(jiān)控身體狀況,有效的健康管理。相信經(jīng)過不懈的努力之后藍(lán)牙智能手環(huán)會(huì)越來越好,越來越智能,對(duì)人體的監(jiān)控也會(huì)越來越準(zhǔn)確的。