(Street Light Automation, Smart Gate & Air Quality Alert)
Smart cities are built by combining automation, sensing, and decision-making.
In this project, a Smart City model was developed using an Arduino UNO and commonly available sensors to demonstrate how embedded systems can be used for urban automation.
This project focuses on real-world logic, not just blinking LEDs.
📌 Project Demonstration Video
🎥 Watch the complete working demonstration here:
👉 The video shows the automatic street lights, smart gate operation, and air quality alert system working in real time.
Project Overview
The model demonstrates four smart city subsystems working together:
- Automatic Street Light System (LDR based)
- Smart Entry Gate / Traffic Control (Ultrasonic + Servo)
- Air Quality Monitoring System (MQ135 sensor)
- Alert System (Buzzer for pollution warning)
Each subsystem works independently but is controlled by a single Arduino UNO, simulating how real smart-city nodes operate.
Components Used
- Arduino UNO
- LDR (Light Dependent Resistor – discrete, not module)
- Ultrasonic Sensor (HC-SR04)
- Servo Motor (gate control)
- MQ135 Air Quality Sensor
- Buzzer
- LEDs (street lights)
- 330 Ω resistors (current limiting)
- Breadboard, jumper wires, external LED wiring
🔌 Circuit Diagram
🧩 Complete circuit diagram for this project:
Open circuit
The circuit includes:
- LDR voltage divider connected to an analog input
- Ultrasonic sensor connected to digital pins
- Servo motor connected to a PWM pin
- MQ135 sensor connected to an analog input
- Buzzer connected to a digital output
- LED street lights driven through resistors
Street Light Implementation (Important Design Detail)
To simulate street lights, multiple LEDs were used.
Instead of driving LEDs directly from the Arduino pin, the following safe current-limiting method was implemented:
- Two GPIO pins were used for street lighting
- Each GPIO pin was connected through a 330 Ω resistor
- The other end of each resistor was connected to 4–5 LEDs in parallel
Why this method was used
- The resistor limits the current drawn from the GPIO pin
- Using two GPIOs distributes the load instead of stressing a single pin
- Parallel LEDs represent multiple street lights connected to one junction
This approach keeps the circuit safe for the Arduino while still allowing multiple LEDs to turn ON together during night conditions.
Automatic Street Light Logic (LDR)
- The LDR continuously measures ambient light
- During daytime:
- LDR value is high
- Street LEDs remain OFF
- During night:
- LDR value drops below a threshold
- Street LEDs turn ON automatically
This demonstrates energy conservation, a core principle of smart cities.
Smart Gate / Traffic Control System
An ultrasonic sensor is placed near the entry point of the model.
- When a vehicle or object comes within a fixed distance:
- The ultrasonic sensor detects it
- The servo motor rotates
- The gate opens automatically
- When the object moves away:
This simulates automatic toll gates, parking entry systems, and traffic barriers.
Air Quality Monitoring (MQ135 Sensor)
To introduce environmental monitoring, an MQ135 air quality sensor was added.
- The sensor measures pollution levels in the surrounding air
- When the pollution value crosses a preset threshold:
- The buzzer turns ON
- This acts as an air pollution warning
This models how pollution monitoring stations work in smart cities.
Alert System (Buzzer)
The buzzer is used as a city alert mechanism.
- OFF during normal air conditions
- ON when pollution exceeds safe limits
This introduces the concept of public warning systems and real-time environmental alerts.
💻 Firmware Upload (Arduino Code)
⚡ Flash the firmware directly to Arduino UNO:
👉 This allows users to upload the tested firmware without opening the Arduino IDE.
#include <Servo.h>
#define TRIG_PIN 9
#define ECHO_PIN 8
#define LED_PIN 3
#define LED_PIN1 5
#define LDR_PIN A0
#define MQ135_PIN A1
#define BUZZER_PIN 7
#define SERVO_PIN 6
Servo gateServo;
long duration;
int distance;
int ldrValue;
int airValue;
int LDR_THRESHOLD = 500; // adjust after testing
int DIST_THRESHOLD = 15; // cm
int AIR_THRESHOLD = 400; // MQ135 threshold (adjust)
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN1, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
gateServo.attach(SERVO_PIN);
gateServo.write(90); // gate closed
Serial.begin(9600);
Serial.println("Smart City System Starting...");
}
void loop() {
/* ---------- LDR STREET LIGHT ---------- */
ldrValue = analogRead(LDR_PIN);
if (ldrValue < LDR_THRESHOLD) {
analogWrite(LED_PIN, 255); // street light ON
digitalWrite(LED_PIN1, HIGH);
} else {
digitalWrite(LED_PIN, LOW); // street light OFF
digitalWrite(LED_PIN1, LOW);
}
/* ---------- ULTRASONIC SENSOR ---------- */
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH, 30000);
distance = duration * 0.034 / 2;
/* ---------- SERVO GATE CONTROL ---------- */
if (distance > 0 && distance < DIST_THRESHOLD) {
gateServo.write(0); // open gate
} else {
gateServo.write(90); // close gate
}
/* ---------- MQ135 AIR QUALITY ---------- */
airValue = analogRead(MQ135_PIN);
if (airValue > AIR_THRESHOLD) {
digitalWrite(BUZZER_PIN, HIGH); // pollution alert
} else {
digitalWrite(BUZZER_PIN, LOW);
}
/* ---------- SERIAL MONITOR ---------- */
Serial.print("LDR: ");
Serial.print(ldrValue);
Serial.print(" | Distance: ");
Serial.print(distance);
Serial.print(" cm | Air: ");
Serial.println(airValue);
delay(1000);
}
Software Logic Summary
The Arduino program continuously performs:
- Ambient light measurement (LDR)
- Distance measurement (Ultrasonic)
- Air quality measurement (MQ135)
- Decision-making based on thresholds
- Actuator control (LEDs, servo, buzzer)
All logic runs in a loop, similar to how embedded systems operate in real infrastructure.
Educational Value
This project helps learners understand:
- GPIO usage and current limiting
- Sensor interfacing and calibration
- Real-world automation logic
- Embedded decision-making
- Power and safety considerations
- Smart city concepts beyond theory
Unlike ready-made kits, this setup uses discrete components, encouraging deeper understanding and troubleshooting skills.
Conclusion
This Smart City project demonstrates how simple electronics and embedded programming can be combined to address urban automation challenges such as energy efficiency, traffic control, and pollution monitoring.
It serves as a reference implementation for students and educators exploring smart-city concepts using Arduino.