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

Arduino UNO-Based Environmental Monitoring System with Soil Moisture, Temperature, Humidity, and Light Sensors

View and Edit Project In Cirkit DesignerImage of Arduino UNO-Based Environmental Monitoring System with Soil Moisture, Temperature, Humidity, and Light Sensors

Circuit Documentation

Summary

This circuit is designed to read data from a soil moisture sensor, a DHT11 temperature and humidity sensor, and a photocell (LDR). The sensor readings are then displayed on the Serial Monitor using an Arduino UNO microcontroller.

Component List

  1. Arduino UNO

    • Description: A microcontroller board based on the ATmega328P.
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  2. Soil Moisture Sensor

    • Description: A sensor used to measure the moisture level in the soil.
    • Pins: VCC, GND, SIG
  3. DHT11

    • Description: A sensor used to measure temperature and humidity.
    • Pins: VCC, GND, DATA
  4. Photocell (LDR)

    • Description: A light-dependent resistor used to measure light levels.
    • Pins: pin 0, pin 1
  5. Resistor

    • Description: A 10k Ohm resistor used in the circuit.
    • Pins: pin1, pin2
    • Properties: Resistance = 10k Ohms

Wiring Details

Arduino UNO

Soil Moisture Sensor

DHT11

Photocell (LDR)

Resistor

Code Documentation

/*
 * This Arduino Sketch reads data from a soil moisture sensor, a DHT11 sensor,
 * and a photocell (LDR). It then displays the sensor readings on the Serial
 * Monitor.
 */

#include <DHT.h>

// Pin definitions
#define SOIL_MOISTURE_PIN A0
#define DHT_PIN 2
#define LDR_PIN A1
#define DHT_TYPE DHT11

DHT dht(DHT_PIN, DHT_TYPE);

void setup() {
  // Initialize Serial Monitor
  Serial.begin(9600);
  Serial.println("Initializing...");

  // Initialize the DHT sensor
  dht.begin();

  // Wait for sensors to stabilize
  delay(2000);
}

void loop() {
  // Read soil moisture
  int soilMoistureValue = analogRead(SOIL_MOISTURE_PIN);

  // Read temperature and humidity from DHT11
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // Read light level from LDR
  int ldrValue = analogRead(LDR_PIN);

  // Display soil moisture
  Serial.print("Soil Moisture: ");
  Serial.println(soilMoistureValue);

  // Display temperature and humidity
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" C");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  // Display light level
  Serial.print("Light Level: ");
  Serial.println(ldrValue);

  // Wait before next update
  delay(2000);
}

This code initializes the sensors and reads data from the soil moisture sensor, DHT11 sensor, and photocell (LDR). The readings are then displayed on the Serial Monitor every 2 seconds.