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

Arduino-Based Weather Station with LCD Display and Data Logging

View and Edit Project In Cirkit DesignerImage of Arduino-Based Weather Station with LCD Display and Data Logging

Circuit Documentation

Summary

This circuit involves two Arduino UNO microcontrollers interfacing with various sensors and modules, including a BMP180 barometric pressure sensor, a DHT22 temperature and humidity sensor, a 16x2 I2C LCD, a Micro SD Card Module, a Micro Servo 9G, a rain sensor, a buzzer, and two LEDs (green and red). The circuit is designed to read environmental data, display it on an LCD, log it to an SD card, and provide visual and auditory alerts based on certain conditions.

Component List

  1. Arduino UNO

    • Description: 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. DHT22

    • Description: Temperature and humidity sensor.
    • Pins: +, Out, -
  3. 16x2 I2C LCD

    • Description: 16x2 character LCD with I2C interface.
    • Pins: GND, VCC, SDA, SCL
  4. BMP180

    • Description: Barometric pressure sensor.
    • Pins: 3.3, SDA, SCL, GND, VCC
  5. RAIN SENSOR

    • Description: Rain detection sensor.
    • Pins: AO, DO, GRD, VCC
  6. Micro Servo 9G

    • Description: Small servo motor.
    • Pins: GND, +5V, PWM
  7. Micro SD Card Module

    • Description: Module for interfacing with SD cards.
    • Pins: cs, sck, mosi, miso, vcc, gnd
  8. Buzzer

    • Description: Simple piezoelectric buzzer.
    • Pins: +, GND
  9. LED: Two Pin (green)

    • Description: Green LED.
    • Pins: cathode, anode
  10. LED: Two Pin (red)

    • Description: Red LED.
    • Pins: cathode, anode
  11. Resistor

    • Description: 10k Ohm resistor.
    • Pins: pin1, pin2
    • Properties: Resistance: 10000 Ohms
  12. DC Motor

    • Description: Direct current motor.
    • Pins: pin 1, pin 2

Wiring Details

Arduino UNO (1)

Arduino UNO (2)

DHT22

16x2 I2C LCD

BMP180

RAIN SENSOR

Micro Servo 9G

Micro SD Card Module

Buzzer

LED: Two Pin (green)

LED: Two Pin (red)

Resistor (1)

Resistor (2)

DC Motor

Documented Code

Arduino UNO (1)

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <DHT.h>
#include <SD.h>

// BMP180 Sensor Initialization
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(180); // '180' is just an ID for the sensor

// LCD Initialization
LiquidCrystal_I2C lcd(0x27, 16, 2); // 16x2 LCD at address 0x27

#define CS_PIN 10 // chip select pin for SD Module

// DHT Sensor Initialization
#define DHTPIN 7     // Pin connected to the DHT sensor
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Servo Initialization
Servo tap_servo;

// Sensor and Servo Pins
int sensor_pin = 4;       // Digital input sensor pin
int tap_servo_pin = 5;    // Servo control pin

// Variables
int val;                  // Digital sensor reading
float h;                  // Humidity
float dht_temp;           // Temperature from DHT22
float bmp_temp;           // Temperature from BMP180
float pressure;           // Pressure
float altitude;           // Altitude

// Pin Definitions for Buzzer and LEDs
#define BUZZER_PIN 8        // Buzzer connected to pin 8
#define GREEN_LED_PIN 9     // Green LED connected to pin 9
#define RED_LED_PIN 6       // Red LED connected to pin 6

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