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