Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include "MAX30105.h"
- #include "heartRate.h"
- #include <OneWire.h>
- #include <DallasTemperature.h>
- // GPIO where the DS18B20 is connected to
- const int oneWireBus = 10;
- // Setup a oneWire instance to communicate with any OneWire devices
- OneWire oneWire(oneWireBus);
- // Pass our oneWire reference to Dallas Temperature sensor
- DallasTemperature sensors(&oneWire);
- MAX30105 particleSe
- byte rateSpot = 0;
- long lastBeat = 0;
- float beatsPerMinute;
- int beatAvg;
- float temperature;
- unsigned long dataMillis = 0;
- long irValue;
- long delta;
- float temperatureC;
- void setup() {
- Serial.begin(115200);
- delay(10000);
- Serial.println("11111");
- init_heart_rate_sensor();
- // Start the DS18B20 sensor
- sensors.begin();
- }
- void loop() {
- //readTempSensor();
- read_heart_rate_sensor();
- }
- void init_heart_rate_sensor() {
- Serial.println("Initializing...");
- // Initialize sensor
- if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed
- {
- Serial.println("MAX30105 was not found. Please check wiring/power. ");
- while (1);
- }
- Serial.println("Place your index finger on the sensor with steady pressure.");
- particleSensor.setup(); //Configure sensor with default settings
- particleSensor.enableDIETEMPRDY(); //Enable the temp ready interrupt. This is required.
- particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running
- particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED
- }
- void read_heart_rate_sensor() {
- irValue = particleSensor.getIR();
- if (checkForBeat(irValue) == true)
- {
- //We sensed a beat!
- delta = millis() - lastBeat;
- lastBeat = millis();
- beatsPerMinute = 60 / (delta / 1000.0);
- if (beatsPerMinute < 255 && beatsPerMinute > 20) {
- rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array
- rateSpot %= RATE_SIZE; //Wrap variable
- //Take average of readings
- beatAvg = 0;
- for (byte x = 0 ; x < RATE_SIZE ; x++)
- beatAvg += rates[x];
- beatAvg /= RATE_SIZE;
- }
- }
- Serial.print("IR=");
- Serial.print(irValue);
- Serial.print(", BPM=");
- Serial.print(beatsPerMinute);
- Serial.print(", Avg BPM=");
- Serial.print(beatAvg);
- //temperature = particleSensor.readTemperature();
- //Serial.print(", temperatureC=");
- //Serial.print(temperature, 4);
- if (millis() - previousMillis >= 10000) {
- Serial.print(", temperatureC=");
- readTempSensor();
- previousMillis = millis();
- }
- if (irValue < 50000)
- Serial.print(" No finger?");
- Serial.println();
- }
- void readTempSensor() {
- sensors.requestTemperatures();
- temperatureC = sensors.getTempCByIndex(0);
- Serial.print(temperatureC);
- Serial.println("ΒΊC");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement