摘要:隨著人們健康意識(shí)的提升,心率、血氧、體溫等生理參數(shù)的監(jiān)測日益重要。文章設(shè)計(jì)并實(shí)現(xiàn)了一種基于STM32單片機(jī)的心率血氧體溫檢測系統(tǒng),該系統(tǒng)利用MAX30102心率傳感器和DS18B20溫度傳感器實(shí)時(shí)采集心率、血氧、體溫等生理參數(shù),并通過OLED顯示屏進(jìn)行數(shù)據(jù)顯示和分析。系統(tǒng)在檢測到生理參數(shù)異常時(shí),會(huì)觸發(fā)聲光報(bào)警,提醒用戶關(guān)注自身健康狀況。
關(guān)鍵詞:STM32單片機(jī);心率血氧體溫檢測;MAX30102;DS18B20;OLED顯示
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2025)01-0117-04 開放科學(xué)(資源服務(wù)) 標(biāo)識(shí)碼(OSID) :
0 概述
隨著人們?cè)絹碓疥P(guān)注身體健康,許多家庭自備智能健康監(jiān)測設(shè)備以隨時(shí)檢測身體狀況[1]。對(duì)于一些患有心血管、呼吸系統(tǒng)等疾病的人群來說,監(jiān)測這些指標(biāo)可及時(shí)了解身體狀況,從而采取相應(yīng)的治療措施。然而現(xiàn)有的監(jiān)護(hù)裝置大多體積大、成本高、難以隨身攜帶,受環(huán)境因素限制,具有一定局限性[2]。
本文設(shè)計(jì)了一款能檢測心率血氧體溫參數(shù)的系統(tǒng),融合了高精度傳感器、強(qiáng)大的數(shù)據(jù)處理能力及直觀的顯示與報(bào)警功能,為用戶提供了一個(gè)全面實(shí)時(shí)的生理參數(shù)監(jiān)測平臺(tái)。系統(tǒng)由STM32F103C8T6單片機(jī)核心板、MAX30102 心率傳感器、DS18B20 溫度傳感器、OLED顯示屏、蜂鳴器和發(fā)光二極管等元器件組成[3]。通過集成MAX30102 心率傳感器、DS18B20 溫度傳感器等元器件,實(shí)現(xiàn)對(duì)心率、血氧和體溫的實(shí)時(shí)監(jiān)測。STM32單片機(jī)負(fù)責(zé)處理傳感器采集的數(shù)據(jù),并通過OLED顯示屏實(shí)時(shí)顯示相關(guān)數(shù)據(jù)。一旦檢測到參數(shù)異常,系統(tǒng)會(huì)觸發(fā)聲光報(bào)警,提醒用戶關(guān)注自身健康狀況。
1 系統(tǒng)設(shè)計(jì)方案
系統(tǒng)采用模塊化設(shè)計(jì),主要包括STM32單片機(jī)最小系統(tǒng)、傳感器模塊、顯示模塊以及報(bào)警模塊等。STM32單片機(jī)作為系統(tǒng)的主控單元,負(fù)責(zé)整個(gè)系統(tǒng)的數(shù)據(jù)采集、處理、顯示及通信控制。心率血氧檢測模塊采用MAX30102傳感器,實(shí)時(shí)采集心率和血氧飽和度數(shù)據(jù),通過IIC接口與單片機(jī)連接,實(shí)現(xiàn)數(shù)據(jù)的傳輸與處理。體溫測量模塊采用DS18B20溫度傳感器負(fù)責(zé)實(shí)時(shí)測量體溫,與單片機(jī)的一個(gè)I/O口連接,實(shí)現(xiàn)數(shù)據(jù)的讀取與處理。顯示模塊采用OLED顯示屏,通過IIC接口與單片機(jī)連接,顯示相關(guān)數(shù)據(jù)信息。聲光報(bào)警模塊會(huì)觸發(fā)蜂鳴器發(fā)出警報(bào),并通過LED燈閃爍進(jìn)行視覺提示。整個(gè)系統(tǒng)結(jié)構(gòu)框圖如圖1所示:
2 硬件電路設(shè)計(jì)
STM32單片機(jī)作為系統(tǒng)的主控單元,負(fù)責(zé)采集傳感器數(shù)據(jù)、處理數(shù)據(jù)、控制顯示屏等;傳感器模塊包括心率血氧傳感器和溫度傳感器,負(fù)責(zé)采集人體生理信號(hào);OLED顯示屏用于顯示心率、血氧和體溫?cái)?shù)據(jù);電源模塊為系統(tǒng)提供穩(wěn)定的工作電壓。系統(tǒng)原理圖如圖2所示。
2.1 心率血氧傳感器電路設(shè)計(jì)
MAX30102心率傳感器集成了脈搏血氧儀和心率監(jiān)測儀的功能,用于檢測心率和血氧采集,采用5V直流電源供電。MAX30102心率傳感器需要處理輸入信號(hào),并將其轉(zhuǎn)換為數(shù)字信號(hào)。MAX30102心率傳感器通過IIC接口與STM32單片機(jī)進(jìn)行通信,實(shí)現(xiàn)信號(hào)處理。SDA為數(shù)據(jù)引腳端,接單片機(jī)PB0引腳,用于與單片機(jī)進(jìn)行數(shù)據(jù)通信。SCL 為時(shí)鐘引腳,接單片機(jī)PB1引腳,用于同步數(shù)據(jù)傳輸。通過編寫相應(yīng)的驅(qū)動(dòng)程序,STM32可以讀取MAX30102傳感器的心率和血氧數(shù)據(jù),進(jìn)而實(shí)現(xiàn)率監(jiān)測功能。
2.2 溫度傳感器電路設(shè)計(jì)
DS18B20是一款高精度的數(shù)字溫度傳感器,其工作原理基于低溫度系數(shù)和高溫度系數(shù)晶振的頻率變化,通過計(jì)數(shù)器測量來得到溫度值[4]。其主要性能指標(biāo)包括測溫范圍、精度、分辨率及輸出格式等。DS18B20的使用無需任何外圍元件,且支持多點(diǎn)組網(wǎng)功能,便于構(gòu)建復(fù)雜的測溫系統(tǒng)。它與STM32單片機(jī)的接口方式采用單總線通信協(xié)議,通過數(shù)據(jù)端DQ即可實(shí)現(xiàn)雙向通信,這大大提高了系統(tǒng)的抗干擾性。數(shù)據(jù)端DQ連接單片機(jī)PA11引腳,使用上拉電阻將DQ 引腳拉高,指令發(fā)送和數(shù)據(jù)接收通過DQ引腳完成。
2.3 OLED 顯示電路設(shè)計(jì)
OLED顯示器是基于有機(jī)發(fā)光二極管技術(shù),通過在有機(jī)材料層上施加電壓,使電子和空穴在材料中移動(dòng)并復(fù)合,從而釋放出光能,實(shí)現(xiàn)自發(fā)光顯示。OLED 顯示器使用IIC通信協(xié)議與單片機(jī)通信,時(shí)鐘線SCL 連接單片機(jī)PB6引腳,數(shù)據(jù)線SDA連接單片機(jī)PB7引腳上。程序設(shè)計(jì)時(shí)需要初始化IIC接口,設(shè)置正確的時(shí)鐘速度、從設(shè)備地址等參數(shù)。根據(jù)OLED顯示器的數(shù)據(jù)手冊(cè),編寫用于初始化顯示器、發(fā)送命令和數(shù)據(jù)以及設(shè)置顯示參數(shù)的驅(qū)動(dòng)代碼。
2.4 聲光報(bào)警電路設(shè)計(jì)
聲光報(bào)警電路由三極管S8050、1K 上拉電阻和蜂鳴器構(gòu)成。如果當(dāng)前心率低于或高于閾值,蜂鳴器就會(huì)發(fā)出警報(bào)聲,以提醒人們注意身體健康。三極管在電路中的主要作用是放大電流和驅(qū)動(dòng)蜂鳴器。設(shè)計(jì)中三極管S8050 采用高電平特性來驅(qū)動(dòng)蜂鳴器報(bào)警,它可以放大電流達(dá)到200倍以上,其基極與單片機(jī)PC13引腳連接。單片機(jī)可以控制蜂鳴器的開關(guān)狀態(tài),當(dāng)單片機(jī)輸出低電平時(shí),晶體管的上拉電阻將限制電流以防止晶體管擊穿,起到保護(hù)晶體管的作用。
3 軟件設(shè)計(jì)
硬件一旦上電啟動(dòng),各部分都會(huì)開始程序初始化,之后進(jìn)入顯示主界面。本設(shè)計(jì)的主要流程包含OLED液晶初始化、傳感器模塊等初始化,進(jìn)入循環(huán)while判斷按鍵是否按下、設(shè)置當(dāng)前心率的上下限、當(dāng)心率超過設(shè)置的上下限則啟動(dòng)聲光報(bào)警。程序流程圖如圖3所示:
3.1 心率血氧程序設(shè)計(jì)
程序采用單片機(jī)內(nèi)部定時(shí)器定時(shí)檢測周期10 s,在10 s過程中引腳檢測方波脈搏信號(hào),每次高電平來臨,系統(tǒng)進(jìn)行判斷相鄰兩次高電平的時(shí)間差是否大于10 ms,這與人的心跳特征有關(guān),此判斷能消除電壓比較器的誤判和彌補(bǔ)個(gè)人心跳的差異性。首先初始化IIC通信,設(shè)置STM32為主機(jī),MAX30102為從機(jī)。配置MAX30102的寄存器,包括采樣率、LED亮度、工作模式等。啟動(dòng)MAX30102的采樣,讀取傳感器數(shù)據(jù)。對(duì)讀取的數(shù)據(jù)進(jìn)行濾波和去噪處理,得到心率和血氧飽和度的值。將心率和血氧飽和度的值通過OLED顯示出來,實(shí)現(xiàn)實(shí)時(shí)監(jiān)測心率和血氧飽和度的功能。心率血氧模塊程序流程如圖4所示:
3.2 液晶模塊程序設(shè)計(jì)
系統(tǒng)使用OLED顯示屏來實(shí)時(shí)反應(yīng)心率血氧體溫監(jiān)測數(shù)據(jù)。要讓液晶顯示屏正常工作,首先寫入命令控制字,再寫入需要顯示的數(shù)據(jù)。寫入命令控制字之前,須用指令來查看液晶是否處于忙狀態(tài)。如果處于忙狀態(tài),就需等待,直到顯示器發(fā)出工作完成的指令,才能寫入控制字和數(shù)據(jù)[5]。程序開始時(shí),需要初始化OLED顯示屏,包括設(shè)置OLED的分辨率、亮度、對(duì)比度等參數(shù),并清空OLED屏幕。監(jiān)測數(shù)據(jù)時(shí),將數(shù)據(jù)寫入OLED顯示屏,包括心率、血氧和體溫等數(shù)據(jù)。
液晶顯示模塊程序流程如圖5所示。
3.3 按鍵模塊程序設(shè)計(jì)
當(dāng)按下按鍵時(shí),單片機(jī)會(huì)檢測對(duì)應(yīng)的引腳電平是否為0。如果電平為0,表示按鍵被按下。經(jīng)過短暫延時(shí),單片機(jī)會(huì)根據(jù)按下的具體按鍵進(jìn)行判斷。若按下K1按鍵,系統(tǒng)就會(huì)判斷當(dāng)前處于設(shè)置模式。若按下K2按鍵,系統(tǒng)將對(duì)當(dāng)前的心率上限進(jìn)行增加操作。若按下K3按鍵,系統(tǒng)將對(duì)當(dāng)前的心率進(jìn)行減少操作。通過按鍵操作,可調(diào)整心率上限,以實(shí)現(xiàn)相應(yīng)功能。按鍵模塊程序流程如圖6所示:
3.4 報(bào)警模塊程序設(shè)計(jì)
按鍵處理函數(shù)用于處理按鍵操作。當(dāng)按鍵被按下時(shí),單片機(jī)會(huì)進(jìn)行判斷,經(jīng)過短暫的延遲后確認(rèn)按鍵是否被按下。接著判斷設(shè)置的報(bào)警閾值,并根據(jù)設(shè)置的具體報(bào)警值進(jìn)行相應(yīng)處理。如果達(dá)到了報(bào)警值,聲光報(bào)警器將被觸發(fā)并發(fā)出報(bào)警信號(hào)。這樣,按鍵處理函數(shù)能有效地處理按鍵輸入和相應(yīng)的報(bào)警操作。報(bào)警模塊程序流程如圖7所示。
4 測試結(jié)果分析
本文對(duì)所設(shè)計(jì)的基于STM32單片機(jī)的心率血氧體溫檢測系統(tǒng)進(jìn)行了全面的性能測試。測試環(huán)境包括STM32 單片機(jī)、MAX30102 心率血氧傳感器、DS18B20 溫度傳感器及OLED 顯示屏等硬件,并在Keil uVision IDE環(huán)境下編寫測試程序。硬件測試包括傳感器的連接和數(shù)據(jù)采集的準(zhǔn)確性。通過對(duì)不同心率、血氧和體溫值的模擬測試,驗(yàn)證了系統(tǒng)的準(zhǔn)確性和穩(wěn)定性。軟件測試包括數(shù)據(jù)處理算法和用戶界面的測試。通過對(duì)心率、血氧和體溫?cái)?shù)據(jù)的處理和顯示,驗(yàn)證了系統(tǒng)數(shù)據(jù)處理的正確性和用戶界面的友好性。通過實(shí)際測量,系統(tǒng)響應(yīng)時(shí)間快,心率、血氧和體溫能正常顯示且準(zhǔn)確度高。當(dāng)超過或低于閾值,會(huì)產(chǎn)生聲光報(bào)警,符合設(shè)計(jì)要求。最后,通過對(duì)多個(gè)測試對(duì)象的心率、血氧和體溫?cái)?shù)據(jù)的檢測和分析,驗(yàn)證了系統(tǒng)的實(shí)用性和可靠性,測試結(jié)果如圖8所示。
5 結(jié)論
本文設(shè)計(jì)并實(shí)現(xiàn)了一款基于STM32單片機(jī)的心率血氧體溫檢測系統(tǒng),通過集成MAX30102心率傳感器、DS18B20溫度傳感器及OLED顯示屏,實(shí)現(xiàn)了心率、血氧和體溫的實(shí)時(shí)監(jiān)測與顯示。系統(tǒng)能夠?qū)崟r(shí)分析數(shù)據(jù)并在異常時(shí)發(fā)出聲光報(bào)警,提高了健康監(jiān)測的便捷性和有效性。創(chuàng)新之處為具有多參數(shù)集成監(jiān)測與實(shí)時(shí)報(bào)警功能,為用戶提供全面的健康監(jiān)測服務(wù)。但系統(tǒng)仍存在功耗管理、數(shù)據(jù)傳輸與長期存儲(chǔ)及用戶交互界面等方面的不足,未來將聚焦于低功耗設(shè)計(jì)、遠(yuǎn)程數(shù)據(jù)傳輸與智能分析以及用戶界面的優(yōu)化,以進(jìn)一步提升系統(tǒng)的實(shí)用性和用戶體驗(yàn)感。
參考文獻(xiàn):
[1] 趙亞娟.基于互聯(lián)網(wǎng)+平臺(tái)心血管疾病的慢病隨訪模式探索及其在房顫射頻消融術(shù)后患者隨訪中的應(yīng)用[D].濟(jì)南:山東大學(xué),2018.
[2] 趙錦程.基于多功能傳感器的健康檢測系統(tǒng)研究[D].青島:青島大學(xué),2022.
[3] 劉賽靜,謝金鵬,胡海峰.基于STM32的人體健康檢測系統(tǒng)設(shè)計(jì)[J].電子制作, 2023,31 (23):16-19.
[4] 薛宇.基于RBF神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償?shù)姆巧⒓t外SF_6氣體傳感器[D].南京:南京信息工程大學(xué),2017.
[5] 張青春,郁嵐. 智能人體電子秤的系統(tǒng)設(shè)計(jì)[J]. 儀表技術(shù),2008(7):11-12,14.
【通聯(lián)編輯:梁書】
基金項(xiàng)目:安徽省高校自然科學(xué)研究重點(diǎn)項(xiàng)目“基于QoS 約束的無線傳感網(wǎng)絡(luò)覆蓋研究”(2023AH052570) ;安徽省質(zhì)量工程項(xiàng)目-計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)專業(yè)教學(xué)創(chuàng)新團(tuán)隊(duì)(2023cxtd252) ;校級(jí)質(zhì)量工程項(xiàng)目-物聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)教學(xué)創(chuàng)新團(tuán)隊(duì)項(xiàng)目(SZ2023007)