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

ESP32-Based Smart Traffic Monitoring and Environmental Sensing System with Wi-Fi Connectivity

View and Edit Project In Cirkit DesignerImage of ESP32-Based Smart Traffic Monitoring and Environmental Sensing System with Wi-Fi Connectivity

Circuit Documentation

Summary

This circuit is designed to monitor various environmental parameters and control devices based on sensor inputs. It uses an ESP32 microcontroller to interface with multiple sensors and actuators, including a DHT11 temperature and humidity sensor, an HC-SR04 ultrasonic sensor, a sound sensor, an MQ135 air quality sensor, a PIR sensor, a 16x2 I2C LCD, two micro servos, a traffic light module, a buzzer, and two photocells (LDRs). The data collected is sent to a Google Sheet for logging and analysis.

Component List

  1. ESP32 (30 pin)

    • Description: Microcontroller with Wi-Fi and Bluetooth capabilities.
    • Pins: EN, VP, VN, D34, D35, D32, D33, D25, D26, D27, D14, D12, D13, GND, Vin, D23, D22, TX0, RX0, D21, D19, D18, D5, TX2, RX2, D4, D2, D15, 3V3
  2. HC-SR04 Ultrasonic Sensor

    • Description: Measures distance using ultrasonic waves.
    • Pins: VCC, TRIG, ECHO, GND
  3. 16x2 I2C LCD

    • Description: Displays information on a 16x2 character screen.
    • Pins: GND, VCC, SDA, SCL
  4. Sound Sensor

    • Description: Detects sound levels.
    • Pins: Analog, GND, VCC, Digital
  5. DHT11

    • Description: Measures temperature and humidity.
    • Pins: DATA, GND, VCC
  6. Micro servo 9G

    • Description: Small servo motor for precise control.
    • Pins: GND, +5V, PWM
  7. PIR sensor

    • Description: Detects motion.
    • Pins: VDD, SIG, GND
  8. Photocell (LDR)

    • Description: Light-dependent resistor for measuring light intensity.
    • Pins: pin 0, pin 1
  9. Traffic Light

    • Description: Simulates a traffic light with red, yellow, and green LEDs.
    • Pins: Green, Yellow, Red, GND
  10. MQ135

    • Description: Measures air quality.
    • Pins: VCC, GND, A0, D0
  11. Resistor

    • Description: Provides resistance in the circuit.
    • Pins: pin1, pin2
    • Properties: Resistance: 2000 Ohms
  12. Buzzer

    • Description: Emits sound when activated.
    • Pins: PIN, GND

Wiring Details

ESP32 (30 pin)

HC-SR04 Ultrasonic Sensor

16x2 I2C LCD

Sound Sensor

DHT11

Micro servo 9G

PIR sensor

Photocell (LDR)

Traffic Light

MQ135

Resistor

Buzzer

Code Documentation

#include <Arduino.h>
#include "time.h"
#include <ESP_Google_Sheet_Client.h>
#include <ESP32Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <WiFi.h>

// Define pin mappings
#define BUZZER2_PIN 15     // Buzzer for MQ (air quality) and DHT (temperature/humidity)
#define TRIG_PIN 5         // Ultrasonic trigger
#define ECHO_PIN 18        // Ultrasonic echo
#define PIR_PIN 16         // PIR sensor for recycle bin
#define DHT_PIN 4          // DHT11 temperature and humidity sensor
#define MQ135_PIN 35       // MQ135 air quality sensor
#define SOUND_PIN 34       // Sound sensor
#define SERVO1_PIN 13      // Servo for recycle bin
#define SERVO2_PIN 19      // Servo for solar tracker
#define RED_LED_PIN 14     // Red LED for traffic light
#define GREEN_LED_PIN 12   // Green LED for traffic light
#define YELLOW_LED_PIN 27  // Yellow LED for traffic light
#define SDA_PIN 21         // LCD SDA pin
#define SCL_PIN 22         // LCD SCL pin
#define BIG_LDR_PIN 32     // Solar tracker LDR (big)
#define SMALL_LDR_PIN 33   // Solar tracker LDR (small)

// WIFI & Firebase Credentials
#define WIFI_SSID "TonyJR"
#define WIFI_PASSWORD "003456789"

// Google Project ID
#define PROJECT_ID "traffic-monitoring-system-data"

// Service Account's client email
#define CLIENT_EMAIL "traffic-storage-data@traffic-monitoring-system-data.iam.gserviceaccount.com"

// Service Account's private key
const char PRIVATE_KEY[] PROGMEM =
  "-----BEGIN PRIVATE KEY-----\n"
  "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCRsOXK9keH5MwN\n"
  "4NMUVvyCvxxBMxNNNbbYBUFkqF0Ag/1xtqtVZHgrpD86giSpQ+J1GmtwRYqQp2LU\n"
  "3kQb/ZDCpgDLHmdrnsvrKZ+OVLd3HLvBDursibPxzgWGbDBdC9Sf7xO