Arduino ve LCD'ye dayalı kalp atış hızını göster

Lorin1987

Üye
Katılım
8 Tem 2021
Mesajlar
23
Puanları
1
Yaş
37
Arduino LCD ekran projesi kısa tanıtım

Bir süre önce, bir kalp atış hızı sensörü modülü MAX30100 buldum. Bu modül, aynı zamanda basit ve kullanımı kolay olan kullanıcıların kan oksijen ve kalp atış hızı verilerini toplayabilir.

Verilere göre Arduino kütüphane dosyalarında MAX30100 kütüphaneleri olduğunu buldum. Yani Arduino ile MAX30100 arasındaki iletişimi kullanırsam sürücü dosyalarını yeniden yazmaya gerek kalmadan doğrudan Arduino kütüphane dosyalarını çağırabilirim. Bu iyi bir şey, bu yüzden MAX30100 modülünü satın aldım.

MAX30100'ün kalp atış hızı ve kan oksijen toplama işlevini doğrulamak için Arduino kullanmaya karar verdim. Tansiyonu izlemek için STONE TFT LCD ekranlı.

Temel elektronik malzemeler şu şekilde belirlenir

1. Arduino Mini Pro geliştirme kartı

2. MAX30100 kalp atış hızı ve kan oksijen sensörü modülü

3. TAŞ 7 inç LCD seri port ekran modülü

4. MAX3232 modülü

donanım bağlantısı

8.jpg


GUI tasarımı

12.jpg


kod

C:
#include

#include "MAX30100_PulseOximeter.h"

 

#define REPORTING_PERIOD_MS 1000

#define Heart_dis_addr 0x01

#define Sop2_dis_addr 0x05

#define connect_sta_addr 0x08

 

unsigned char heart_rate_send[8]= {0xA5, 0x5A, 0x05, 0x82,\

0x00, Heart_dis_addr, 0x00, 0x00};

unsigned char Sop2_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, \

Sop2_dis_addr, 0x00, 0x00};

unsigned char connect_sta_send[8]={0xA5, 0x5A, 0x05, 0x82, 0x00, \

connect_sta_addr,0x00, 0x00};

 

// PulseOximeter is the higher level interface to the sensor

// it offers:

// * beat detection reporting

// * heart rate calculation

// * SpO2 (oxidation level) calculation

PulseOximeter pox;

 

uint32_t tsLastReport = 0;

 

// Callback (registered below) fired when a pulse is detected

void onBeatDetected()

{

// Serial.println("Beat!");

}

 

void setup()

{

Serial.begin(115200);

 

// Serial.print("Initializing pulse oximeter..");

 

// Initialize the PulseOximeter instance

// Failures are generally due to an improper I2C wiring, missing power supply

// or wrong target chip

if (!pox.begin()) {

// Serial.println("FAILED");

// connect_sta_send[7]=0x00;

// Serial.write(connect_sta_send,8);

for(;;);

} else {

connect_sta_send[7]=0x01;

Serial.write(connect_sta_send,8);

// Serial.println("SUCCESS");

}

 

// The default current for the IR LED is 50mA and it could be changed

// by uncommenting the following line. Check MAX30100_Registers.h for all the

// available options.

pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);

 

// Register a callback for the beat detection

pox.setOnBeatDetectedCallback(onBeatDetected);

}

 

void loop()

{

// Make sure to call update as fast as possible

pox.update();

 

// Asynchronously dump heart rate and oxidation levels to the serial

// For both, a value of 0 means "invalid"

if (millis() - tsLastReport > REPORTING_PERIOD_MS) {

// Serial.print("Heart rate:");

// Serial.print(pox.getHeartRate());

// Serial.print("bpm / SpO2:");

// Serial.print(pox.getSpO2());

// Serial.println("%");

heart_rate_send[7]=(uint32_t)pox.getHeartRate();

Serial.write(heart_rate_send,8);

Sop2_send[7]=pox.getSpO2();

Serial.write(Sop2_send,8);

tsLastReport = millis();

}

}

Nihai görüntüleme sonuçları

21.jpg
 
Selam. Proje kendinizin mi yoksa alıntı mı? Alıntı ise kaynak belirtin lütfen.
 
Bu benim ve daha fazla insanın görmesini istiyorum, bu yüzden bu proje makalesini başka bir yerde yayınlamaya çalışacağım.
 

Forum istatistikleri

Konular
127,959
Mesajlar
913,917
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst