This circuit integrates a variety of sensors and modules with an Arduino UNO microcontroller to perform multiple functions including GPS tracking, heart rate monitoring, temperature and humidity sensing, and motion detection through an accelerometer. The Arduino UNO serves as the central processing unit, interfacing with the GPS NEO 6M module for location tracking, the Heart Pulse Sensor for monitoring heartbeat, the MKE-S14 DHT11 Temperature and Humidity Sensor for environmental data, and the adxl345 keystudio accelerometer for motion detection. The circuit is designed to read data from these sensors and output the information through the Arduino's serial interface.
Vin
connected to the 5V power supply netGND
connected to the ground netA0
connected to the Heart Pulse Sensor signal outputA4
(SDA) connected to the adxl345 keystudio SDA pinA5
(SCL) connected to the adxl345 keystudio SCL pinD3
connected to the DHT11 signal pinD4
connected to the GPS NEO 6M RX pinD5
connected to the GPS NEO 6M TX pinVCC
connected to the 5V power supply netGND
connected to the ground netSIGNAL
connected to Arduino UNO A0
VCC
connected to the 5V power supply netGND
connected to the ground netRX
connected to Arduino UNO D4
TX
connected to Arduino UNO D5
5V
connected to the 5V power supply netGND
connected to the ground netSIG
connected to Arduino UNO D3
5V
connected to the 5V power supply netGND
connected to the ground netSDA
connected to Arduino UNO A4
SCL
connected to Arduino UNO A5
#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
}
This code initializes and reads data from the connected sensors, outputting the results to the serial monitor. It includes setup and loop functions that are standard in Arduino programming. The setup()
function initializes the serial communication, sensors, and checks for the presence of the ADXL345 accelerometer. The loop()
function reads data from the heartbeat sensor, DHT11 sensor, ADXL345 accelerometer, and GPS module, printing the results to the serial monitor every two seconds.