一、前言
這幾年智能穿戴設(shè)備大火,尤其是手環(huán)類姐帚,從Apple Watch到榮耀手環(huán),再到不知名的某些品牌障涯,智能穿戴設(shè)備是鋪天蓋地的來了罐旗。而其中心率監(jiān)測基本上是所有穿戴設(shè)備的“標(biāo)配”,為啥會如此重視心率監(jiān)測唯蝶?心率監(jiān)測到底有必要嗎九秀?
1.持續(xù)的心率監(jiān)測有助于診斷疾病
人每一次脈搏的搏動,都代表一次有效的心臟跳動粘我,每分鐘心臟跳動的次數(shù)就是心率鼓蜒。心率是最直接反映我們心臟健康的標(biāo)志。心臟是血液泵出的動力征字,也是各器官系統(tǒng)以及整個身體正常運(yùn)行的保證都弹。
2.心率是最好的運(yùn)動“導(dǎo)師”
如果是經(jīng)常做運(yùn)動的朋友應(yīng)該都知道,平時運(yùn)動時可以根據(jù)心率數(shù)據(jù)更好地控制運(yùn)動強(qiáng)度匙姜,因?yàn)樾穆屎臀趿考白畲髷z氧量呈線性關(guān)系畅厢,而且最大心率百分比也和最大攝氧量的百分比呈線性關(guān)系,所以在跑步過程中氮昧,使用心率控制運(yùn)動強(qiáng)度是最簡單易行的方法框杜。
二、心率監(jiān)測的方法
1袖肥、PPG光電容積法
由于人體的皮膚咪辱、骨骼、肌肉椎组、脂肪等對于光的反射是固定值油狂,而毛細(xì)血管和動脈、靜脈由于隨著脈搏容積不停變大變小,所以對光的反射值是波動值专筷,而這個波動值正好與心率一致弱贼,所以光電容積法正是通過這個波動的頻率來確定使用者的心率數(shù)據(jù)。目前市面上絕大多數(shù)的智能手環(huán)/手表都采用這種方式監(jiān)測心率仁堪,而且這種方式的技術(shù)方案已經(jīng)比較成熟哮洽,所以價格也相對較低。
2弦聂、心電信號測量法
還有一種就是心電信號測量法鸟辅,它通過智能穿戴設(shè)備上搭載的傳感器捕捉人每次心跳時微小的電極變化,再經(jīng)過算法還原出心率跳動的頻率莺葫,原理和心電圖類似原理匪凉。目前已經(jīng)很少有智能穿戴設(shè)備采用這種方式了。
三捺檬、TPYBoard心率監(jiān)測器的制作過程
上面叨叨了這么多再层,接下來就進(jìn)入正題。開始心率監(jiān)測器的制作堡纬。首先先來介紹聂受,里面最重要的器件-MAX30102心率模塊。
MAX30102心率模塊介紹
MAX30102是一個集成的脈搏血氧儀和心率監(jiān)測儀生物傳感器的模塊烤镐。它集成了一個紅光 LEO 和一個紅外光 LEO 蛋济、光電檢測器、光器件炮叶,以及帶環(huán)境光抑制的低噪聲電子電路碗旅。MAX30102采用一個 1.8V電源和一個獨(dú)立的 5.0V 用于內(nèi)部 LEO 的電源,應(yīng)用于可穿戴設(shè)備進(jìn)行心率和血氧采集檢測镜悉,佩戴于手指祟辟、耳垂和手腕等處。標(biāo)準(zhǔn)的I2C兼容的通信接口可以將采集到的數(shù)值傳輸給Arduino侣肄、STM32等單片機(jī)進(jìn)行心率和血氧計(jì)算旧困。此外,該芯片還可通過軟件關(guān)斷模塊茫孔,待機(jī)電流接近為零叮喳,實(shí)現(xiàn)電源始終維持供電狀態(tài)。
參考了各種資料缰贝,用micropython寫了個MAX30102模塊的驅(qū)動,這里不就不貼源碼畔濒,給個地址(文章末)大家自己去下載學(xué)習(xí)剩晴,里面也有各種手冊、STM32單片機(jī)以及Arduino實(shí)現(xiàn)的源碼。現(xiàn)在可以監(jiān)測心率數(shù)據(jù)赞弥,但是還需要一個顯示屏來進(jìn)行顯示毅整,這里我選擇用OLED顯示屏。先參照下面信息绽左,把硬件連接起來悼嫉。
TPYBoard v102? ? MAX30102模塊
3V3? ? =>? ? ? ? ? ?VIN? ? ? ? ? ?
Y10? ? =>? ? ? ? ? SDA
Y9? ? ? =>? ? ? ? ? SCL? ? ? ? ? ? ? ? ? ? ? ? ?
GND? =>? ? ? ? ? GND
Y12? ? =>? ? ? ? ? INT? ? ?
接好線了之后,把MAX30102模塊的相關(guān)驅(qū)動文件拷貝到TPYBFLASH磁盤中拼窥,然后編寫main.py戏蔑。保存完畢,使用PuTTY軟件啟動運(yùn)行程序鲁纠,確認(rèn)程序無錯誤总棵。
四、演示效果
1. 程序運(yùn)行后改含,顯示屏?xí)@示一個心形的圖案,同時MAX30102模塊上的紅色LED燈會亮起情龄;
2. 將手指放置模塊紅色LED處,按下板載的USR按鍵啟動測量捍壤,顯示屏?xí)崾緶y量中骤视;
3. 確保手指接觸良好的情況下,大約等待40秒左右鹃觉,顯示屏?xí)@示測量出的心率值专酗,此時就可以把手拿開了。
五帜慢、總結(jié)
使用MAX30102測量的心率值與榮耀手環(huán)4測量的心率值接近(大概有2-3值的差別)笼裳。程序中也有對血氧飽和度的測試,大家可以從程序中提取出來顯示在顯示屏上粱玲。但是需要注意的是躬柬,因?yàn)槭腔诓檎冶韥泶_定血氧含量,所以每個血氧傳感器都需要和專業(yè)儀器進(jìn)行標(biāo)定才準(zhǔn)確抽减。此外允青,RED LED的波長尤其容易受到環(huán)境溫度影響,所以程序上要考慮到溫度對血氧精確度的影響卵沉,這也是MAX30102本身帶有溫度傳感器功能的主要原因颠锉。所以程序中的血氧飽和度是僅供參考,并不準(zhǔn)準(zhǔn)確史汗。
GitHub源碼下載地址:https://github.com/TPYBoard/TPYBoard-v102
MAX30102參考資料:http://old.tpyboard.com/downloads/docs/MAX30102參考資料.rar