基于物聯(lián)網(wǎng)的樹(shù)莓派心跳監(jiān)測(cè)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
健康監(jiān)測(cè)一直是物聯(lián)網(wǎng)(IoT)的一個(gè)有前途的應(yīng)用。通過(guò)使用正確的技術(shù),我們不再需要依靠常規(guī)的健康檢查或當(dāng)?shù)氐尼t(yī)生來(lái)評(píng)估我們的身體。傳感器可以用來(lái)測(cè)量你身體的所有生命體征,這些信息可以遠(yuǎn)程實(shí)時(shí)共享,供世界其他地方的醫(yī)生診斷你,或者人工智能可以處理所有的數(shù)字并診斷你的問(wèn)題。聽(tīng)起來(lái)很有未來(lái)感,對(duì)吧?但我們正在逐漸向它邁進(jìn),我們離遠(yuǎn)程物聯(lián)網(wǎng)機(jī)械臂為我們做手術(shù)不遠(yuǎn)了。在此過(guò)程中,我們將構(gòu)建樹(shù)莓派心率監(jiān)測(cè)器來(lái)測(cè)量遠(yuǎn)程患者的心率,并將其顯示在Processing IDE上。之前我們還使用Arduino和ESP8266構(gòu)建了一個(gè)心率監(jiān)測(cè)器,并將值上傳到Thingspeak。
材料要求:
以下是使用Raspberry Pi構(gòu)建您自己的患者監(jiān)測(cè)系統(tǒng)所需的組件。
?覆盆子π
?脈搏傳感器
?ADS1115 ADC模塊
?跳線(xiàn)
?電源或移動(dòng)電源
脈沖速率傳感器:
在我們進(jìn)入實(shí)際項(xiàng)目之前,讓我們先看看脈沖速率傳感器是如何工作的。脈搏/心跳傳感器的工作非常簡(jiǎn)單。傳感器有兩面,一面是LED和環(huán)境光傳感器,另一面是一些電路。這個(gè)電路負(fù)責(zé)放大和噪聲消除工作。傳感器正面的LED被放置在我們?nèi)梭w的靜脈上。這可以是你的指尖或耳尖,但它應(yīng)該直接放在靜脈的頂部。
現(xiàn)在LED發(fā)出的光會(huì)直接落在靜脈上。只有當(dāng)心臟跳動(dòng)時(shí),靜脈里才會(huì)有血液流動(dòng),所以如果我們監(jiān)測(cè)血液流動(dòng),我們就能監(jiān)測(cè)心臟跳動(dòng)。如果檢測(cè)到血流,那么環(huán)境光傳感器就會(huì)接收到更多的光,因?yàn)樗鼈儠?huì)被血液反射,隨著時(shí)間的推移,這種接收光的微小變化就會(huì)被分析出來(lái),從而確定我們的心跳。在這個(gè)項(xiàng)目中,脈沖傳感器作為樹(shù)莓派的心跳傳感器。
有三根電線(xiàn)從傳感器出來(lái),分別是信號(hào)(S), Vcc (3 - 5 V)和GND。
信號(hào)線(xiàn)分別顯示為紫色、紅色和黑色。在我們的項(xiàng)目中,傳感器將由Arduino的3.3V引腳供電,由于樹(shù)莓派默認(rèn)不能讀取模擬電壓,因此信號(hào)引腳將通過(guò)ADS115 ADC模塊連接到樹(shù)莓派上。
線(xiàn)路圖:
完整的樹(shù)莓派物聯(lián)網(wǎng)患者監(jiān)護(hù)系統(tǒng)電路圖如下圖所示。
正如你所看到的,我們已經(jīng)使用了帶有脈沖傳感器的ADS115 ADC模塊,脈沖傳感器通過(guò)I2C通信連接到樹(shù)莓派,這樣我們就可以在樹(shù)莓派上測(cè)量心跳。以下是它們之間的聯(lián)系:
?脈沖傳感器的信號(hào)引腳- ADC模塊的>a0
?脈沖傳感器的Vcc引腳-> 3.3V的樹(shù)莓
?脈沖傳感器的GND引腳-> Pi的GND
?RPI的Tx -> RPI的Rx
?ADC的GND -> RPI的GND
?ADC模塊的VCC -> +5v的RPI
?ADC模塊的SCL和SDA ->的SCL和SDA的RPI
安裝與配置
由于ADC模塊在I2C通信,我們使用UART進(jìn)行串行通信,我們必須在shell中使用raspi-config命令啟用樹(shù)莓派的UART和I2C,如下所示。
現(xiàn)在選擇Interfacing Options并按enter。
現(xiàn)在選擇I2C并按enter
現(xiàn)在選擇Yes并按enter
現(xiàn)在通過(guò)選擇ok按enter鍵
現(xiàn)在通過(guò)選擇Serial并按enter鍵來(lái)啟用Serial
現(xiàn)在選擇no并按enter鍵禁用串口登錄shell。
現(xiàn)在選擇Yes并按enter鍵以啟用串行。
現(xiàn)在選擇ok并按enter。
現(xiàn)在選擇finish并按enter
現(xiàn)在選擇Yes并按enter鍵進(jìn)行重啟。
現(xiàn)在安裝i2c包
現(xiàn)在使用給定的命令測(cè)試并獲得連接設(shè)備的I2C地址:
現(xiàn)在使用給定的命令為ADC模塊安裝ads1115 python庫(kù)
在樹(shù)莓派上安裝Processing
現(xiàn)在使用給定的命令將Processing安裝到現(xiàn)有的安裝上:
現(xiàn)在我們可以看到樹(shù)莓派菜單中的處理圖標(biāo):
這里我們需要運(yùn)行pulse_sensor python代碼,然后處理本文末尾給出的代碼。然后我們將看到如下圖所示的結(jié)果
一個(gè)完整的工作視頻也可以在這個(gè)頁(yè)面的底部找到。下面將解釋python代碼和Processing代碼。
樹(shù)莓派的Python代碼測(cè)量心跳
在此代碼中,我們通過(guò)I2C通信連接ADC模塊以獲得脈沖傳感器的模擬輸出。從脈沖傳感器獲得原始模擬輸出后,我們找到了上峰值和下峰值。然后找出兩個(gè)峰值點(diǎn)之間的時(shí)間差,然后將其轉(zhuǎn)換為BPM。我們將原始模擬輸出和BPM發(fā)送到串行端口,串行端口從處理IDE中讀取以供進(jìn)一步處理。完整的心跳傳感器樹(shù)莓派python代碼在本頁(yè)的底部給出。
在首先編寫(xiě)代碼時(shí),我們導(dǎo)入了一些模塊,這些模塊在代碼中用于不同的目的
現(xiàn)在我們有一些用于計(jì)算和動(dòng)作的變量。并創(chuàng)建了一個(gè)串行對(duì)象
現(xiàn)在給定的部分代碼用于發(fā)送數(shù)據(jù)到處理
現(xiàn)在給出了讀取脈沖傳感器和測(cè)量BPM的函數(shù)。
處理代碼顯示心跳值圖形在樹(shù)莓派
在處理代碼時(shí),我們從樹(shù)莓的串口獲取數(shù)據(jù),這是我們上面解釋過(guò)的python代碼發(fā)送的環(huán)回信號(hào)?,F(xiàn)在我們找到原始模擬輸入和BPM。并根據(jù)模擬值繪制圖形,顯示BPM值。在處理代碼時(shí),首先導(dǎo)入了一些必要的庫(kù)模塊
在這之后,我們?nèi)×艘恍┳兞?
然后在設(shè)置功能中,我們初始化了串口,配置了串口,初始化了默認(rèn)圖形
現(xiàn)在在serialEvent函數(shù)中,我們已經(jīng)讀取并提取了接收到的數(shù)據(jù)
現(xiàn)在在繪制函數(shù)中,我們已經(jīng)將輸入值映射到圖形維度,然后繪制圖形。
給定的代碼行負(fù)責(zé)在圖上顯示BPM
這里我們還有另一個(gè)功能,用于放大和縮小繪圖。通過(guò)按-,我們可以縮小,按+,我們可以放大脈沖圖。為了控制這個(gè),首先我們必須點(diǎn)擊圖形上的任何地方,然后需要按-和+。
通過(guò)這種方式,您可以使用樹(shù)莓派測(cè)量患者的心跳,并將其顯示為屏幕上的圖形。如果需要,您還可以將此串行數(shù)據(jù)發(fā)送到ThingSpeak或其他物聯(lián)網(wǎng)平臺(tái),如IFTTT, Artik Cloud, Firebase, Particle Cloud, Amazon AWS,并在全球范圍內(nèi)遠(yuǎn)程共享數(shù)據(jù)。
本文編譯自iotdesignpro