惠鵬飛,鄒立穎,周健
基于STM32的藍(lán)牙無(wú)線多功能智能手環(huán)設(shè)計(jì)
惠鵬飛,鄒立穎,周健
(齊齊哈爾大學(xué) 通信與電子工程學(xué)院,黑龍江 齊齊哈爾 161006)
將藍(lán)牙技術(shù)應(yīng)用到智能手環(huán),發(fā)揮其低功耗的優(yōu)勢(shì),設(shè)計(jì)了藍(lán)牙無(wú)線多功能智能手環(huán).設(shè)備以STM32為核心處理器,包括加速度傳感器、心率血氧傳感器、OLED液晶顯示器、電源線路、PM2.5傳感器、DS1302時(shí)鐘芯片和溫度傳感器.利用加速度傳感器監(jiān)測(cè)重力加速度,進(jìn)而判定人體的行走速度和姿態(tài),將監(jiān)測(cè)數(shù)據(jù)轉(zhuǎn)換成計(jì)步的功能.利用心率血氧飽和度傳感器采集人體的心率血氧飽和度信息,數(shù)據(jù)經(jīng)放大處理后發(fā)送至單片機(jī),并將步數(shù)、心率血氧飽和度、溫度、時(shí)間顯示在OLED屏幕上.使用JDK和Android SDK 開(kāi)發(fā)了手機(jī)APP,能夠通過(guò)HC-05無(wú)線藍(lán)牙把當(dāng)前的數(shù)據(jù)發(fā)送到手機(jī)端進(jìn)行顯示,方便用戶隨時(shí)觀察自身體征狀況.該智能手環(huán)工作性能穩(wěn)定,操作方便,數(shù)據(jù)顯示準(zhǔn)確,具有較好的實(shí)用價(jià)值.
智能手環(huán);STM32;傳感器;藍(lán)牙;計(jì)步器;液晶顯示
隨著人們健康意識(shí)的提高,便攜式可穿戴人體體征監(jiān)測(cè)設(shè)備逐漸受到人們青睞.智能手環(huán)作為一種便攜式可穿戴健康監(jiān)測(cè)設(shè)備,具有檢測(cè)諸如心率血氧、運(yùn)動(dòng)步數(shù)、時(shí)間、環(huán)境信息等功能,而且可以將這些信息顯示在手環(huán)顯示屏上[1],但如果有陪練人員在身邊,陪練人員無(wú)法得知手環(huán)穿戴者當(dāng)前的狀況.目前,市場(chǎng)上很多智能手環(huán)并未應(yīng)用藍(lán)牙傳輸,低功耗優(yōu)勢(shì)不明顯.還有些手環(huán)僅在手環(huán)上用屏幕顯示數(shù)據(jù),沒(méi)有對(duì)應(yīng)的手機(jī)APP.設(shè)計(jì)一款既保證穿戴者隨時(shí)觀察自身健康數(shù)據(jù),也方便陪練人員隨時(shí)觀察運(yùn)動(dòng)者狀態(tài)的多功能智能手環(huán)就非常契合當(dāng)前需要.
基于此,本文應(yīng)用物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)藍(lán)牙無(wú)線多功能智能手環(huán),該智能手環(huán)涵蓋STM32單片機(jī)、傳感器、手機(jī)APP、藍(lán)牙、C#程序設(shè)計(jì)等多項(xiàng)技術(shù),開(kāi)發(fā)了智能手環(huán)的硬件電路和手機(jī)端上位機(jī)界面,并進(jìn)行了功能測(cè)試.各模塊電路功能正常,手機(jī)APP端可準(zhǔn)確顯示心率和血氧、步數(shù)、溫度、PM2.5等信息.該智能手環(huán)對(duì)于穿戴者和陪練人員隨時(shí)掌握人體生理指標(biāo)和健康狀況,具有重要實(shí)際意義.
藍(lán)牙無(wú)線多功能智能手環(huán)由主控制單片機(jī)、藍(lán)牙數(shù)據(jù)傳輸模塊、計(jì)步電路、數(shù)據(jù)信息采集模塊、時(shí)鐘電路、液晶顯示電路、手機(jī)端上位機(jī)等組成.系統(tǒng)硬件電路按照功能可分為主控制器STM32、藍(lán)牙無(wú)線數(shù)據(jù)傳輸電路、按鍵電路、PM2.5傳感器電路、DS18B20溫度采集電路、心率血氧傳感器電路、液晶顯示電路.硬件整體構(gòu)成見(jiàn)圖1.
圖1 系統(tǒng)硬件整體構(gòu)成
手環(huán)以STM32為數(shù)據(jù)處理中心,通過(guò)DS18B20采集當(dāng)前溫度,PM2.51051A負(fù)責(zé)采集當(dāng)前空氣中PM2.5濃度,心率血氧傳感器采集當(dāng)前人體心率血氧含量,ADXL345進(jìn)行計(jì)步,OLED液晶顯示屏顯示當(dāng)前信息,通過(guò)HC05將數(shù)據(jù)無(wú)線傳輸?shù)绞謾C(jī)端進(jìn)行顯示,采用按鍵就可以進(jìn)行修改,操作非常方便快捷.
智能手環(huán)控制部分的核心為STM32單片機(jī)最小系統(tǒng),這是一個(gè)完整的計(jì)算機(jī)系統(tǒng),其以微芯片為核心,負(fù)責(zé)對(duì)智能手環(huán)工作過(guò)程的相關(guān)控制.包括晶振電路、定時(shí)器電路、輸出設(shè)備和通信端口等[2-3].單片機(jī)最小系統(tǒng)電路見(jiàn)圖2.
圖2 STM32單片機(jī)最小系統(tǒng)電路
單片機(jī)的供電通過(guò)直流5 V供電,電源模塊主要分為一個(gè)三腳電源底座和一個(gè)六腳電源開(kāi)關(guān).電源開(kāi)關(guān)中的2腳和5腳作為單片機(jī)的接地腳,可根據(jù)實(shí)際需要適當(dāng)選擇[4],即可以1腳輸入,4腳輸出,2腳為接地端,或者3腳輸入,6腳輸出,5腳為接地端.如果有12 V或其他電壓的傳感器,也可能通過(guò)升壓模塊把5 V提高至更高的電壓,從而實(shí)現(xiàn)供電.
“計(jì)數(shù)規(guī)則”用于確定步伐是否是一個(gè)節(jié)奏模式的一部分.ADXL345有“搜索規(guī)則”和“確認(rèn)規(guī)則”兩個(gè)工作狀態(tài),假設(shè)經(jīng)過(guò)四個(gè)連續(xù)有效步伐之后,發(fā)現(xiàn)存在某種規(guī)則(in regulation),那么計(jì)步器就會(huì)刷新和顯示結(jié)果,并進(jìn)入“確認(rèn)規(guī)則”工作模式.工作在這種模式時(shí),每經(jīng)過(guò)一個(gè)有效步伐,步伐計(jì)數(shù)器就會(huì)更新一次.只要存在一個(gè)無(wú)效步伐,立即返回“搜索規(guī)則”模式.
“時(shí)間窗口”的作用是排除無(wú)效振動(dòng).假設(shè)最快的運(yùn)動(dòng)速度為每秒5步,最慢速度為每秒1步.這樣,兩個(gè)有效步伐的間隔在時(shí)間窗口[0.2~2.0 s]之間,時(shí)間間隔不在窗口范圍內(nèi)的步伐都應(yīng)該被排除.
1.4.2 心率血氧傳感器電路 心率血氧傳感器電路部分采用生物傳感器模塊MAX30102,該模塊用于收集和監(jiān)測(cè)手環(huán)使用者的心跳頻率和血氧飽和度信息.MAX30102芯片集成在一個(gè)PCB模塊上,內(nèi)部增加一個(gè)1.8 V和3.3 V LDO穩(wěn)壓電路,可對(duì)模塊單獨(dú)供5.0 V電源.
MAX30102的VIN引腳表示電源的輸入端,一般可接為3.3 V或5 V,VIN腳的電壓是I2C總線的最上拉輸入輸出電平.SCL引腳連接I2C總線的時(shí)鐘,SDA引腳是指接收I2C總線的設(shè)備,INT引腳為中斷引腳,IR LED為接地端(但一般不接地),GND 端口為接地線,IRD和RD腳通常不使用[6].
1.4.3 OLED顯示屏電路設(shè)計(jì) 本系統(tǒng)采用4引腳的OLED12864液晶模塊作為顯示模塊,在智能手環(huán)的設(shè)計(jì)中,為了節(jié)省單片機(jī)的引腳,OLED采用I2C總線與STM32進(jìn)行通信,通信過(guò)程的時(shí)序由SCL時(shí)鐘線負(fù)責(zé)控制,指令和數(shù)據(jù)由SDA負(fù)責(zé)輸出,包括開(kāi)始、停止指令和顯示的數(shù)據(jù).
1.4.4 溫度傳感器電路 智能手環(huán)利用溫度傳感器DS18B20采集溫度信息,DS18B20與微處理器連接后,僅須占據(jù)一個(gè)I/O端口,并擁有特殊的單線接口方法.DS18B20可使用數(shù)據(jù)線供電,并具有超低耗電量運(yùn)行方式[7].
1.4.5 藍(lán)牙模塊電路 本系統(tǒng)采用的無(wú)線通信器件為HC05藍(lán)牙模塊,其可與3.3 V或5 V單片機(jī)設(shè)備兼容.在工作時(shí)選用跳頻和時(shí)分多址方式,使用偽隨機(jī)的碼序列來(lái)完成頻移鍵控.HC05的VCC腳接5 V電源,EN腳不用,GND接地,RXD腳接STM32的6腳(RXD端).
1.4.6 DS0302時(shí)鐘電路 本系統(tǒng)采用 DS0302作為時(shí)鐘芯片,其晶體振蕩器為32.768 kHz,是一種低功耗的實(shí)時(shí)ARM電路[8].時(shí)鐘芯片有一個(gè)ARM寄存器,用于在內(nèi)存中存儲(chǔ)數(shù)據(jù),還可以一次傳輸多個(gè)字節(jié)的時(shí)鐘信號(hào),時(shí)鐘芯片的工作電壓為2.5~5.5 V.
1.4.7 按鍵設(shè)置電路 智能手環(huán)共配置有4個(gè)控制命令的按鈕:參數(shù)設(shè)置、設(shè)定加、設(shè)定減、清除當(dāng)前步數(shù),按鍵為獨(dú)立型按鍵,每一個(gè)按鈕配置一個(gè)獨(dú)立的I/O線.鍵盤(pán)抖動(dòng)的消除采用軟件消除,當(dāng)使用者按下按鍵時(shí),會(huì)先向MCU輸出一個(gè)低電平信號(hào),并通過(guò)程序中輸入的按鍵掃描函數(shù)來(lái)完成相應(yīng)的功能.
1.4.8 PM2.5模塊設(shè)置電路 PM2.5模塊的輸出通過(guò)串口轉(zhuǎn)換到單片機(jī),環(huán)境中的粉塵濃度與收集的電壓值呈正比關(guān)系.測(cè)得電壓值就能獲得環(huán)境空氣中的粉塵濃度,然后輸出粉塵濃度對(duì)應(yīng)的頻率信號(hào)由STM32進(jìn)行處理.
主程序模塊:系統(tǒng)上電后,需要配置多個(gè)傳感器的引腳,然后初始化I2C 讓OLED進(jìn)行液晶顯示和ADXL345進(jìn)行數(shù)據(jù)采集,采集完成后藍(lán)牙串口初始化等待發(fā)送數(shù)據(jù),DS18B20進(jìn)行溫度采集,心率血氧傳感器通過(guò)內(nèi)部AD轉(zhuǎn)換后獲取心率血氧值,時(shí)鐘顯示當(dāng)前的時(shí)間,PM2.5模塊采集空氣中PM2.5含量,最后把數(shù)據(jù)通過(guò)藍(lán)牙發(fā)送到手機(jī)端,控制OLED顯示當(dāng)前采集到的數(shù)據(jù),最后進(jìn)入按鍵掃描判斷按鍵是否按下,如果按下則處理按鍵掃描函數(shù).
開(kāi)發(fā)環(huán)境為Keil Uvision5,刻錄程序使用STLINKV2下載器,按照如下步驟進(jìn)行:
第一步對(duì)MAX30102的I2C進(jìn)行通信設(shè)置,這需要在程序里面對(duì)I2C數(shù)據(jù)傳輸?shù)囊_分別進(jìn)行配置,之后對(duì)I2C進(jìn)行初始化,函數(shù)為 bsp_InitI2C();
第二步MAX30102寫(xiě)寄存器,函數(shù)為maxim_max30102_write_reg(uint8_tuch_addr,uint8_tuch_data);
第三步MAX30102讀寄存器,函數(shù)為maxim_max30102_read_reg(uint8_tuch_addr,uint8_t *puch_data);
第四步在MAX30102中初始化,函數(shù)為maxim_max30102_init();
第五步在MAX30102中讀緩沖器FIFO,函數(shù)為maxim_max30102_read_fifo(uint32_t*pun_red_led, uint32_t *pun_ir_led);
第六步計(jì)算心率和血氧飽和度,通過(guò)檢測(cè)PPG 周期的峰值和相應(yīng)的紅/紅外信號(hào)的AC/DC,計(jì)算出SPO2的an/u比值和心率值.
一開(kāi)始要寫(xiě)入命令控制字,并且也要把顯示的數(shù)據(jù)寫(xiě)上去,目的是使液晶正常工作.當(dāng)然要先使用該命令檢查液晶是否工作,然后再寫(xiě)入命令控制字,那么正在工作時(shí),想要寫(xiě)入控制字和數(shù)據(jù)就必須等到LCD發(fā)出工作完成信號(hào).液晶顯示模塊程序流程見(jiàn)圖3.
圖3 液晶顯示模塊程序流程
軟件編程部分還包括PM2.51051A程序設(shè)計(jì)、DS1302時(shí)鐘程序設(shè)計(jì)以及按鍵時(shí)鐘程序設(shè)計(jì).
硬件調(diào)試是確保設(shè)備正常工作必不可少的步驟,只有這些硬件設(shè)備的指標(biāo)正常時(shí),才能進(jìn)行軟件測(cè)試.無(wú)線藍(lán)牙智能手環(huán)包含了計(jì)步模組、心率血氧模塊、體溫模組、PM2.5模塊、藍(lán)牙模塊和OLED顯示屏,手環(huán)內(nèi)部整體電路見(jiàn)圖4.本設(shè)計(jì)使用OLED液晶模塊和按鍵控制裝置組成,當(dāng)系統(tǒng)開(kāi)啟后,通過(guò)寫(xiě)入命令控制字,把需要顯示的數(shù)據(jù)也寫(xiě)上去,目的是使液晶正常工作.不過(guò)碰到正在工作時(shí),必須等到LCD發(fā)出工作完成信號(hào)才能寫(xiě)入控制字和數(shù)據(jù).正常啟動(dòng)后,各項(xiàng)數(shù)值顯示在OLED顯示屏上.當(dāng)開(kāi)啟藍(lán)牙手環(huán)時(shí),OLED顯示屏初始化,調(diào)試出編寫(xiě)好的指令,顯示各行數(shù)據(jù),人員根據(jù)當(dāng)前數(shù)據(jù)信息做出相應(yīng)的調(diào)整.OLED屏幕數(shù)值顯示見(jiàn)圖5a.
圖4 手環(huán)內(nèi)部整體電路實(shí)物
當(dāng)MAX30102心率血氧傳感器接通STM32對(duì)應(yīng)的接口時(shí),傳感器板上的電源燈亮,表明此時(shí)設(shè)備已連上供電線.由單片機(jī)處理心率血氧的濃度,輸出與心率血氧濃度對(duì)應(yīng)的信號(hào),此傳感器測(cè)試到的心率血氧濃度數(shù)據(jù)傳輸?shù)绞謾C(jī)顯示于上位機(jī).MAX30102心率血氧傳感器測(cè)試見(jiàn)圖5b.
在溫度感應(yīng)器中,讀出溫度的過(guò)程是首先得到溫度感應(yīng)器中BCD碼形式的溫度數(shù)值,然后輸出是通過(guò)轉(zhuǎn)換的十進(jìn)制形式.第一步是初始化功能,第二步讀出環(huán)境溫度感應(yīng)器的環(huán)境溫度,第三步監(jiān)測(cè)實(shí)際的環(huán)境溫度值.該傳感器測(cè)量的溫度數(shù)據(jù)被傳輸?shù)绞謾C(jī)并顯示在上位機(jī)上.
三軸傳感器有兩種通訊方法,本系統(tǒng)中為I2C數(shù)據(jù)傳輸方式.當(dāng)ADXL345三軸傳感器接通STM32接口時(shí),地板上的LED燈亮起,表示此時(shí)已經(jīng)連上了供電,LED為開(kāi)關(guān)指示燈.上電后,ADXL345先進(jìn)行初始化,寫(xiě)入開(kāi)始信號(hào)和停止信號(hào).
當(dāng)接收應(yīng)答信號(hào)時(shí),ADXL345開(kāi)始讀取采集到的數(shù)據(jù),讀取ADXL345的加速度值,從而判斷是否發(fā)生位移,如果讀取到的數(shù)據(jù)為0XE5表示發(fā)生位移行走.此時(shí)傳感器測(cè)試到的位移數(shù)據(jù)傳輸?shù)绞謾C(jī)并以步數(shù)顯示在上位機(jī).ADXL345測(cè)試見(jiàn)圖5c.
圖5 系統(tǒng)主要功能模塊調(diào)試結(jié)果
手機(jī)端上位機(jī)顯示界面見(jiàn)圖6,手環(huán)佩戴者或陪練人員可以在手機(jī)APP端隨時(shí)觀察各項(xiàng)生理監(jiān)測(cè)數(shù)值、步數(shù)及環(huán)境信息.
圖 6 手機(jī)端上位機(jī)顯示界面
基于STM32的藍(lán)牙無(wú)線多功能智能手環(huán),集計(jì)步、人體心率、環(huán)境溫度、血氧檢測(cè)、環(huán)境PM2.5檢測(cè)等多種功能于一體,通過(guò)藍(lán)牙模塊把當(dāng)前的體征和監(jiān)測(cè)數(shù)據(jù)發(fā)送到手機(jī)端上位機(jī)進(jìn)行顯示,這樣保證了手環(huán)佩戴者和陪練人員都能隨時(shí)觀察運(yùn)動(dòng)者當(dāng)前狀態(tài)和環(huán)境參數(shù).開(kāi)發(fā)了系統(tǒng)的硬件電路和手機(jī)端上位機(jī)界面,完成了系統(tǒng)的功能調(diào)試.調(diào)試結(jié)果表明,藍(lán)牙手環(huán)系統(tǒng)工作正常,系統(tǒng)功能指標(biāo)符合預(yù)期,數(shù)據(jù)顯示準(zhǔn)確,操作方便,功能較全面,具有一定的推廣應(yīng)用價(jià)值.
[1] 陳立舜.基于雙通訊模式的氣動(dòng)在線監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2020.
[2] 劉育勝,宋鑫,李永樂(lè),等.基于單片機(jī)防丟失設(shè)備的設(shè)計(jì)和實(shí)踐[J].電腦知識(shí)與技術(shù),2021,17(13):237-240.
[3] 李雪梅,車(chē)愛(ài)靜,高煥明.基于加速度傳感器的計(jì)步器設(shè)計(jì)[J].山東工業(yè)技術(shù),2019(11):142,162.
[4] 吳全玉,賈恩祥,戴飛杰,等.便攜式低功耗可穿戴心率血氧監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].江蘇理工學(xué)院學(xué)報(bào),2020,26(4):53-61.
[5] Borda,Ann,Gilbert Cecily,et al.Consumer Wearable Information and Health Self Management by Older Adults[J] .Studies in Health Technology and InformatIcs,2018,246:42-61.
[6] LI Xue,NIE Lanshun,XU Hanchuan ,et al.Collaborative Fall Detection Using Smart Phone and Kinect[J].Mobile Networks and Applications,2018(23):775-788.
[7] 陳雪嬌,繆文南.基于STM32的可穿戴體感控制系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2022,30(1):189-193.
[8] 孫皓楠,梁東云.智能手環(huán)心率監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].無(wú)線互聯(lián)網(wǎng)科技,2022,19(5):59-60.
Design of bluetooth wireless multifunctional intelligent bracelet based on STM32
HUI Pengfei,ZOU Liying,ZHOU Jian
(School of Communication and Electronic Engineering,Qiqihar University,Qiqihar 161006,China)
Applying bluetooth technology to the intelligent bracelet and leveraging its low-power advantages,a bluetooth wireless multifunctional intelligent bracelet has been designed.The device uses STM32 as the core processor,including acceleration sensor,heart rate and blood oxygen sensor,OLED LCD display,power circuit, PM2.5sensor,DS1302 clock chip,and temperature sensor.Utilizing acceleration sensors to monitor gravity acceleration and determine the walking speed and posture of the human body,converting the monitoring data into a step counting function.The heart rate and blood oxygen saturation sensor is used to collect the information of the human body′ s heart rate and blood oxygen saturation.The data is amplified and sent to the microcontroller,and the steps,heart rate and blood oxygen saturation,temperature,and time are displayed on the OLED screen.A mobile APP has been developed using JDK and Android SDK,which can send current data to the phone for display through HC-05 wireless bluetooth,making it convenient for users to observe their physical condition at any time.The intelligent bracelet has stable working performance,convenient operation,accurate data display,and good practical value.
intelligent bracelet;STM32;sensors;bluetooth;pedometer;LCD display
1007-9831(2023)11-0027-06
TN919.72
A
10.3969/j.issn.1007-9831.2023.11.006
2023-07-19
黑龍江省省屬高等學(xué)?;究蒲袠I(yè)務(wù)費(fèi)科研項(xiàng)目(145109147)
惠鵬飛(1980-),男,遼寧凌源人,副教授,碩士,從事無(wú)線傳感器網(wǎng)絡(luò)技術(shù)研究.E-mail:hui_pengfei@126.com