====== Пульсометр aka измеритель счастья ====== Для эксперимента я собрал устройство, которое назвал измеритель счастья. Это автономный пульсометр, который будет записывать каждый удар сердца на sd-карту и выводить его на монитор. ===== Видеообзор ===== {{youtube>pJzalkYwjz8?large}} ==== Что понадобится? ===== * 1x [[amp>product/iskra-nano-pro?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Iskra Nano Pro]] * 1x [[amp>product/pulse-sensor?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Датчик пульса]] * 1x [[amp>product/display-nextion-enhanced-nx4024k032?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Цветной сенсорный TFT-экран Nextion 400×240 / 3,2”]] * 1x [[amp>product/troyka-sd?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | SD картридер (Troyka-модуль)]] * 1x [[amp>product/microsd-16gb?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | MicroSD-карта (16 ГБ, класс 10)]] * 1x [[amp>product/zelo-power-bank?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Power Bank v2 (5 В, 2000 мА·ч)]] * 1x [[amp>product/proto-perfboard?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Макетная плата Perfboard (460 точек)]] * 2x [[amp>product/3-wire-cable-extension?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Трёхпроводной шлейф «папа-мама»]] * 1x [[amp>product/cable_outlet_3-5_mm?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Герметичный кабельный ввод]] * 1x [[amp>product/toggle-switch?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Тумблер]] ===== Чертежи и модель ===== Модель имеет недостатки и кое-где приходится поработать дрелью для того что бы установить например электронику или уголки для креплений. Но это видно только на стадии сборки так что будьте внимательны! {{ :projects:happiness-meter:happiness_meter_cut.zip |Архив файлов для лазерной резки}} {{ :projects:happiness-meter:preview.png?nolink |}} ===== Исходный код ===== * [[https://github.com/DFRobot/DFRobot_Heartrate|Библиотека для датчика пульса]] * [[https://github.com/itead/ITEADLIB_Arduino_Nextion|Библиотека для дисплея Nextion]] Прошейте плату [[amp>product/iskra-nano-pro?utm_source=proj&utm_campaign=happiness-meter&utm_medium=wiki | Iskra Nano Pro]] кодом программы: #include #include #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); }