The circuit in question is designed around an Arduino UNO microcontroller and includes a variety of sensors and modules to perform multiple functions. The sensors include a Heart Pulse Sensor, a GPS NEO 6M module, an MKE-S14 DHT11 Temperature and Humidity Sensor, and an adxl345 keystudio accelerometer. The Arduino UNO is responsible for interfacing with these sensors, collecting data, and processing it as per the embedded code provided. The circuit is powered through the Arduino's Vin pin, with a common ground shared by all components.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
#include <DHT.h>
#include <SoftwareSerial.h>
// Pin definitions
#define HEARTBEAT_PIN A0
#define DHT_PIN 3
#define GPS_RX_PIN 4
#define GPS_TX_PIN 5
// DHT11 setup
#define DHTTYPE DHT11
DHT dht(DHT_PIN, DHTTYPE);
// ADXL345 setup
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
// GPS setup
SoftwareSerial gpsSerial(GPS_RX_PIN, GPS_TX_PIN);
void setup() {
Serial.begin(9600);
gpsSerial.begin(9600);
dht.begin();
if (!accel.begin()) {
Serial.println("No ADXL345 detected!");
while (1);
}
Serial.println("Setup complete.");
}
void loop() {
// Read heartbeat sensor
int heartbeat = analogRead(HEARTBEAT_PIN);
Serial.print("Heartbeat: ");
Serial.println(heartbeat);
// Read DHT11 sensor
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
// Read ADXL345 sensor
sensors_event_t event;
accel.getEvent(&event);
Serial.print("X: ");
Serial.print(event.acceleration.x);
Serial.print(" \tY: ");
Serial.print(event.acceleration.y);
Serial.print(" \tZ: ");
Serial.print(event.acceleration.z);
Serial.println(" m/s^2");
// Read GPS data
while (gpsSerial.available()) {
char c = gpsSerial.read();
Serial.print(c);
}
delay(2000); // Delay for 2 seconds
}
Filename: sketch.ino
This code initializes and reads data from the connected sensors, then outputs the readings to the serial monitor. It includes setup and loop functions that are standard in Arduino programming. The setup
function initializes serial communication and the sensors, while the loop
function continuously reads data from the sensors and prints it to the serial monitor.