惠鵬飛,鄒立穎,周健
基于STM32的藍牙無線多功能智能手環設計
惠鵬飛,鄒立穎,周健
(齊齊哈爾大學 通信與電子工程學院,黑龍江 齊齊哈爾 161006)
將藍牙技術應用到智能手環,發揮其低功耗的優勢,設計了藍牙無線多功能智能手環.設備以STM32為核心處理器,包括加速度傳感器、心率血氧傳感器、OLED液晶顯示器、電源線路、PM2.5傳感器、DS1302時鐘芯片和溫度傳感器.利用加速度傳感器監測重力加速度,進而判定人體的行走速度和姿態,將監測數據轉換成計步的功能.利用心率血氧飽和度傳感器采集人體的心率血氧飽和度信息,數據經放大處理后發送至單片機,并將步數、心率血氧飽和度、溫度、時間顯示在OLED屏幕上.使用JDK和Android SDK 開發了手機APP,能夠通過HC-05無線藍牙把當前的數據發送到手機端進行顯示,方便用戶隨時觀察自身體征狀況.該智能手環工作性能穩定,操作方便,數據顯示準確,具有較好的實用價值.
智能手環;STM32;傳感器;藍牙;計步器;液晶顯示
隨著人們健康意識的提高,便攜式可穿戴人體體征監測設備逐漸受到人們青睞.智能手環作為一種便攜式可穿戴健康監測設備,具有檢測諸如心率血氧、運動步數、時間、環境信息等功能,而且可以將這些信息顯示在手環顯示屏上[1],但如果有陪練人員在身邊,陪練人員無法得知手環穿戴者當前的狀況.目前,市場上很多智能手環并未應用藍牙傳輸,低功耗優勢不明顯.還有些手環僅在手環上用屏幕顯示數據,沒有對應的手機APP.設計一款既保證穿戴者隨時觀察自身健康數據,也方便陪練人員隨時觀察運動者狀態的多功能智能手環就非常契合當前需要.
基于此,本文應用物聯網技術設計藍牙無線多功能智能手環,該智能手環涵蓋STM32單片機、傳感器、手機APP、藍牙、C#程序設計等多項技術,開發了智能手環的硬件電路和手機端上位機界面,并進行了功能測試.各模塊電路功能正常,手機APP端可準確顯示心率和血氧、步數、溫度、PM2.5等信息.該智能手環對于穿戴者和陪練人員隨時掌握人體生理指標和健康狀況,具有重要實際意義.
藍牙無線多功能智能手環由主控制單片機、藍牙數據傳輸模塊、計步電路、數據信息采集模塊、時鐘電路、液晶顯示電路、手機端上位機等組成.系統硬件電路按照功能可分為主控制器STM32、藍牙無線數據傳輸電路、按鍵電路、PM2.5傳感器電路、DS18B20溫度采集電路、心率血氧傳感器電路、液晶顯示電路.硬件整體構成見圖1.

圖1 系統硬件整體構成
手環以STM32為數據處理中心,通過DS18B20采集當前溫度,PM2.51051A負責采集當前空氣中PM2.5濃度,心率血氧傳感器采集當前人體心率血氧含量,ADXL345進行計步,OLED液晶顯示屏顯示當前信息,通過HC05將數據無線傳輸到手機端進行顯示,采用按鍵就可以進行修改,操作非常方便快捷.
智能手環控制部分的核心為STM32單片機最小系統,這是一個完整的計算機系統,其以微芯片為核心,負責對智能手環工作過程的相關控制.包括晶振電路、定時器電路、輸出設備和通信端口等[2-3].單片機最小系統電路見圖2.

圖2 STM32單片機最小系統電路
單片機的供電通過直流5 V供電,電源模塊主要分為一個三腳電源底座和一個六腳電源開關.電源開關中的2腳和5腳作為單片機的接地腳,可根據實際需要適當選擇[4],即可以1腳輸入,4腳輸出,2腳為接地端,或者3腳輸入,6腳輸出,5腳為接地端.如果有12 V或其他電壓的傳感器,也可能通過升壓模塊把5 V提高至更高的電壓,從而實現供電.

“計數規則”用于確定步伐是否是一個節奏模式的一部分.ADXL345有“搜索規則”和“確認規則”兩個工作狀態,假設經過四個連續有效步伐之后,發現存在某種規則(in regulation),那么計步器就會刷新和顯示結果,并進入“確認規則”工作模式.工作在這種模式時,每經過一個有效步伐,步伐計數器就會更新一次.只要存在一個無效步伐,立即返回“搜索規則”模式.
“時間窗口”的作用是排除無效振動.假設最快的運動速度為每秒5步,最慢速度為每秒1步.這樣,兩個有效步伐的間隔在時間窗口[0.2~2.0 s]之間,時間間隔不在窗口范圍內的步伐都應該被排除.
1.4.2 心率血氧傳感器電路 心率血氧傳感器電路部分采用生物傳感器模塊MAX30102,該模塊用于收集和監測手環使用者的心跳頻率和血氧飽和度信息.MAX30102芯片集成在一個PCB模塊上,內部增加一個1.8 V和3.3 V LDO穩壓電路,可對模塊單獨供5.0 V電源.
MAX30102的VIN引腳表示電源的輸入端,一般可接為3.3 V或5 V,VIN腳的電壓是I2C總線的最上拉輸入輸出電平.SCL引腳連接I2C總線的時鐘,SDA引腳是指接收I2C總線的設備,INT引腳為中斷引腳,IR LED為接地端(但一般不接地),GND 端口為接地線,IRD和RD腳通常不使用[6].
1.4.3 OLED顯示屏電路設計 本系統采用4引腳的OLED12864液晶模塊作為顯示模塊,在智能手環的設計中,為了節省單片機的引腳,OLED采用I2C總線與STM32進行通信,通信過程的時序由SCL時鐘線負責控制,指令和數據由SDA負責輸出,包括開始、停止指令和顯示的數據.
1.4.4 溫度傳感器電路 智能手環利用溫度傳感器DS18B20采集溫度信息,DS18B20與微處理器連接后,僅須占據一個I/O端口,并擁有特殊的單線接口方法.DS18B20可使用數據線供電,并具有超低耗電量運行方式[7].
1.4.5 藍牙模塊電路 本系統采用的無線通信器件為HC05藍牙模塊,其可與3.3 V或5 V單片機設備兼容.在工作時選用跳頻和時分多址方式,使用偽隨機的碼序列來完成頻移鍵控.HC05的VCC腳接5 V電源,EN腳不用,GND接地,RXD腳接STM32的6腳(RXD端).
1.4.6 DS0302時鐘電路 本系統采用 DS0302作為時鐘芯片,其晶體振蕩器為32.768 kHz,是一種低功耗的實時ARM電路[8].時鐘芯片有一個ARM寄存器,用于在內存中存儲數據,還可以一次傳輸多個字節的時鐘信號,時鐘芯片的工作電壓為2.5~5.5 V.
1.4.7 按鍵設置電路 智能手環共配置有4個控制命令的按鈕:參數設置、設定加、設定減、清除當前步數,按鍵為獨立型按鍵,每一個按鈕配置一個獨立的I/O線.鍵盤抖動的消除采用軟件消除,當使用者按下按鍵時,會先向MCU輸出一個低電平信號,并通過程序中輸入的按鍵掃描函數來完成相應的功能.
1.4.8 PM2.5模塊設置電路 PM2.5模塊的輸出通過串口轉換到單片機,環境中的粉塵濃度與收集的電壓值呈正比關系.測得電壓值就能獲得環境空氣中的粉塵濃度,然后輸出粉塵濃度對應的頻率信號由STM32進行處理.
主程序模塊:系統上電后,需要配置多個傳感器的引腳,然后初始化I2C 讓OLED進行液晶顯示和ADXL345進行數據采集,采集完成后藍牙串口初始化等待發送數據,DS18B20進行溫度采集,心率血氧傳感器通過內部AD轉換后獲取心率血氧值,時鐘顯示當前的時間,PM2.5模塊采集空氣中PM2.5含量,最后把數據通過藍牙發送到手機端,控制OLED顯示當前采集到的數據,最后進入按鍵掃描判斷按鍵是否按下,如果按下則處理按鍵掃描函數.
開發環境為Keil Uvision5,刻錄程序使用STLINKV2下載器,按照如下步驟進行:
第一步對MAX30102的I2C進行通信設置,這需要在程序里面對I2C數據傳輸的引腳分別進行配置,之后對I2C進行初始化,函數為 bsp_InitI2C();
第二步MAX30102寫寄存器,函數為maxim_max30102_write_reg(uint8_tuch_addr,uint8_tuch_data);
第三步MAX30102讀寄存器,函數為maxim_max30102_read_reg(uint8_tuch_addr,uint8_t *puch_data);
第四步在MAX30102中初始化,函數為maxim_max30102_init();
第五步在MAX30102中讀緩沖器FIFO,函數為maxim_max30102_read_fifo(uint32_t*pun_red_led, uint32_t *pun_ir_led);
第六步計算心率和血氧飽和度,通過檢測PPG 周期的峰值和相應的紅/紅外信號的AC/DC,計算出SPO2的an/u比值和心率值.
一開始要寫入命令控制字,并且也要把顯示的數據寫上去,目的是使液晶正常工作.當然要先使用該命令檢查液晶是否工作,然后再寫入命令控制字,那么正在工作時,想要寫入控制字和數據就必須等到LCD發出工作完成信號.液晶顯示模塊程序流程見圖3.

圖3 液晶顯示模塊程序流程

軟件編程部分還包括PM2.51051A程序設計、DS1302時鐘程序設計以及按鍵時鐘程序設計.
硬件調試是確保設備正常工作必不可少的步驟,只有這些硬件設備的指標正常時,才能進行軟件測試.無線藍牙智能手環包含了計步模組、心率血氧模塊、體溫模組、PM2.5模塊、藍牙模塊和OLED顯示屏,手環內部整體電路見圖4.本設計使用OLED液晶模塊和按鍵控制裝置組成,當系統開啟后,通過寫入命令控制字,把需要顯示的數據也寫上去,目的是使液晶正常工作.不過碰到正在工作時,必須等到LCD發出工作完成信號才能寫入控制字和數據.正常啟動后,各項數值顯示在OLED顯示屏上.當開啟藍牙手環時,OLED顯示屏初始化,調試出編寫好的指令,顯示各行數據,人員根據當前數據信息做出相應的調整.OLED屏幕數值顯示見圖5a.

圖4 手環內部整體電路實物
當MAX30102心率血氧傳感器接通STM32對應的接口時,傳感器板上的電源燈亮,表明此時設備已連上供電線.由單片機處理心率血氧的濃度,輸出與心率血氧濃度對應的信號,此傳感器測試到的心率血氧濃度數據傳輸到手機顯示于上位機.MAX30102心率血氧傳感器測試見圖5b.
在溫度感應器中,讀出溫度的過程是首先得到溫度感應器中BCD碼形式的溫度數值,然后輸出是通過轉換的十進制形式.第一步是初始化功能,第二步讀出環境溫度感應器的環境溫度,第三步監測實際的環境溫度值.該傳感器測量的溫度數據被傳輸到手機并顯示在上位機上.
三軸傳感器有兩種通訊方法,本系統中為I2C數據傳輸方式.當ADXL345三軸傳感器接通STM32接口時,地板上的LED燈亮起,表示此時已經連上了供電,LED為開關指示燈.上電后,ADXL345先進行初始化,寫入開始信號和停止信號.
當接收應答信號時,ADXL345開始讀取采集到的數據,讀取ADXL345的加速度值,從而判斷是否發生位移,如果讀取到的數據為0XE5表示發生位移行走.此時傳感器測試到的位移數據傳輸到手機并以步數顯示在上位機.ADXL345測試見圖5c.

圖5 系統主要功能模塊調試結果
手機端上位機顯示界面見圖6,手環佩戴者或陪練人員可以在手機APP端隨時觀察各項生理監測數值、步數及環境信息.

圖 6 手機端上位機顯示界面
基于STM32的藍牙無線多功能智能手環,集計步、人體心率、環境溫度、血氧檢測、環境PM2.5檢測等多種功能于一體,通過藍牙模塊把當前的體征和監測數據發送到手機端上位機進行顯示,這樣保證了手環佩戴者和陪練人員都能隨時觀察運動者當前狀態和環境參數.開發了系統的硬件電路和手機端上位機界面,完成了系統的功能調試.調試結果表明,藍牙手環系統工作正常,系統功能指標符合預期,數據顯示準確,操作方便,功能較全面,具有一定的推廣應用價值.
[1] 陳立舜.基于雙通訊模式的氣動在線監控系統的研究與實現[D].成都:電子科技大學,2020.
[2] 劉育勝,宋鑫,李永樂,等.基于單片機防丟失設備的設計和實踐[J].電腦知識與技術,2021,17(13):237-240.
[3] 李雪梅,車愛靜,高煥明.基于加速度傳感器的計步器設計[J].山東工業技術,2019(11):142,162.
[4] 吳全玉,賈恩祥,戴飛杰,等.便攜式低功耗可穿戴心率血氧監測系統的設計[J].江蘇理工學院學報,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的可穿戴體感控制系統設計[J].電子設計工程,2022,30(1):189-193.
[8] 孫皓楠,梁東云.智能手環心率監測系統設計[J].無線互聯網科技,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
黑龍江省省屬高等學?;究蒲袠I務費科研項目(145109147)
惠鵬飛(1980-),男,遼寧凌源人,副教授,碩士,從事無線傳感器網絡技術研究.E-mail:hui_pengfei@126.com