Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino-Based Temperature and Humidity Monitoring with MAX30102 Pulse Oximetry

View and Edit Project In Cirkit DesignerImage of Arduino-Based Temperature and Humidity Monitoring with MAX30102 Pulse Oximetry

Circuit Documentation

Summary

The circuit in question consists of two Arduino UNO microcontrollers, a DHT11 temperature and humidity sensor, and a MAX30102 heart rate and blood oxygen saturation sensor. The DHT11 sensor is connected to one of the Arduino UNOs, which is programmed to read temperature, humidity, and calculate the heat index. The MAX30102 sensor is connected to the second Arduino UNO, but no specific code is provided for its operation. The circuit is designed to monitor environmental data and potentially human health indicators.

Component List

Arduino UNO

DHT11

MAX30102 HR + SpO2 Sensor

Wiring Details

DHT11 Sensor Wiring

MAX30102 Sensor Wiring

Documented Code

Arduino UNO (DHT11 Sensor Code)

#include "DHT.h"

#define DHTPIN 2     // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11   // DHT 11

// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11 test!");

  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" °C ");
  Serial.print(f);
  Serial.print(" °F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" °C ");
  Serial.print(hif);
  Serial.println(" °F");
}

Arduino UNO (MAX30102 Sensor Code)

The code for the MAX30102 sensor is not provided in the input data. However, the sensor is wired to the second Arduino UNO, with SDA and SCL pins connected to A4 and A5, respectively, which are the default I2C pins on the Arduino UNO. The user would need to include a library for the MAX30102 and write code to initialize the sensor and read the data from it.

// Placeholder for MAX30102 sensor code
void setup() {
  // Initialize MAX30102 sensor here
}

void loop() {
  // Read data from MAX30102 sensor here
}

This concludes the documentation for the provided circuit. Further details and operational code for the MAX30102 sensor should be added as per the requirements of the project.