Пульсометр aka измеритель счастья

Для эксперимента я собрал устройство, которое назвал измеритель счастья. Это автономный пульсометр, который будет записывать каждый удар сердца на sd-карту и выводить его на монитор.

Видеообзор

Что понадобится?

Чертежи и модель

Модель имеет недостатки и кое-где приходится поработать дрелью для того что бы установить например электронику или уголки для креплений. Но это видно только на стадии сборки так что будьте внимательны!

Архив файлов для лазерной резки

Исходный код

Прошейте плату Iskra Nano Pro кодом программы:

happiness_meter.ino
#include <SPI.h>
#include <SD.h>
#include "Nextion.h"
#include "DFRobot_Heartrate.h"
#define heartratePin A0
#define LEVEL_LOW   (0)
#define CH0_OFFSET  (25)
char buffer[100] = {0};
static int ch0_data = LEVEL_LOW;
 
 
NexText txt_bpm  = NexText(0, 3, "t1");
NexWaveform s0 = NexWaveform(0, 1, "s0");
DFRobot_Heartrate heartrate(DIGITAL_MODE);
 
void setup() {
  Serial.begin(9600);
  if (!SD.begin(10)) {
    while (1);
  }
  nexInit();
}
 
void loop() {
  uint8_t rateValue;
  heartrate.getValue(heartratePin); 
  rateValue = heartrate.getRate();
  if (rateValue)  {
    File dataFile = SD.open("datalog.txt", FILE_WRITE);
    if (dataFile) {
      dataFile.print(String(rateValue) + ',');
      dataFile.close();
    }
    txt_bpm.setText(buffer); //bpm
    memset(buffer, 0, sizeof(buffer)); //bpm
    itoa(rateValue, buffer, 10); //bpm
  }
  unsigned long value = analogRead(A0);
  ch0_data = value / 4;
  s0.addValue(0, CH0_OFFSET + ch0_data);
}