STEAM kit 10+ Projects
Learn - Build - Explore.

Smart Dustbin
A dustbin that opens its lid the moment your hand gets close — no touching required.

Rain Detector
Build a simple Arduino-based system that detects water and activates an output automatically.

Smart Blind Stick
A walking stick that warns of obstacles ahead with vibration and sound before they're reached.

Radar-detaction
Ultrasonic-sensor-based touch-free detection system with automated servo sweep and a buzzer alert.

Rock Paper Scissors
An ultrasonic game console that plays rock-paper-scissors against the Arduino at random.

Auto-Light on/off
A light that switches on automatically as the room gets dark, and off again at daylight.
Safety First
Always disconnect the power source before wiring or changing any connections.
Never touch bare wires or exposed pins while the circuit is powered on.
Double-check polarity before connecting batteries, LEDs, or sensors.
Work on a dry, non-conductive surface, away from spilled liquids.
Ask a teacher or adult for help with soldering or mains-powered devices.
Build Your Own
Once you've finished the kit, try these on your own — tap Hint if you get stuck.
Automatic Gate
An automatic gate that opens when a person or vehicle is detected nearby.
Use an ultrasonic sensor to detect an approaching object and a servo motor to open the gate automatically, then close it after the object moves away.
Water Overflow Alarm
An automatic alarm that detects a high water level and alerts you before the tank overflows.
Place a water level sensor near the maximum fill level and use the Arduino to activate a buzzer when water reaches the sensor.
Smart Parking System
An automatic parking system that detects vehicles and shows whether a parking space is occupied.
Use an ultrasonic sensor to detect a vehicle in the parking area and monitor the distance to determine when the parking space is occupied or free.
Plant Watering Reminder
A soil sensor that tells you when your plant needs water.
A soil moisture sensor's analog output drops as the soil dries out — compare it to a threshold and light an LED or sound a buzzer when it's time to water.
Mini Traffic Light
A simple traffic light system that automatically controls red, yellow, and green LEDs in sequence.
Connect three LEDs to the Arduino and program them to turn on one after another, creating a miniature traffic signal.
Smart Water Tank Level
An automatic system that monitors the water level and detects when the tank needs attention.
Mount the water level sensor in the tank and use the Arduino to monitor the water level, providing an alert when the water reaches the set level.
Smart Dustbin



A dustbin that opens its lid the moment your hand gets close — no touching required.
Components Required





Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| HC-SR04 TRIG | D2 |
| HC-SR04 ECHO | D4 |
| Servo Signal | D9 |
| VCC (all) | 5V |
| GND (all) | GND |
| Battery 9v - | GND |
| Battery 9v + | Vin |
Step-by-Step Setup
Fix the ultrasonic sensor to the front of the dustbin lid, facing outward at hand height.
Mount the servo motor at the lid hinge so its arm can push the lid open.
Connect TRIG to D2 and ECHO to D4 on the Arduino as shown in the wiring table.
Connect the servo signal wire to pin D9, and power to 5V and GND.
Flash the Arduino sketch below using the Arduino IDE.
Wave your hand roughly 20 cm from the sensor and confirm the lid opens and closes.
Arduino Source Code
#define TRIG_PIN 2
#define ECHO_PIN 4
#include <Servo.h>
Servo lidServo;
const int SERVO_PIN = 9;
const int OPEN_ANGLE = 90;
const int CLOSED_ANGLE = 0;
const int TRIGGER_DISTANCE_CM = 20;
bool triggered = false;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
lidServo.attach(SERVO_PIN);
lidServo.write(CLOSED_ANGLE);
}
long readDistanceCm() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
long distance = readDistanceCm();
// Object detected within 20 cm
if (distance > 0 && distance < TRIGGER_DISTANCE_CM && !triggered) {
triggered = true;
// Open lid
lidServo.write(OPEN_ANGLE);
// Keep open for 2 seconds
delay(2000);
// Close lid
lidServo.write(CLOSED_ANGLE);
delay(500);
}
// Reset trigger only after object moves away
if (distance >= TRIGGER_DISTANCE_CM || distance <= 0) {
triggered = false;
}
delay(100);
}
How It Works
The ultrasonic sensor continuously measures the distance to anything in front of it.
When an object, like your hand, comes within 15 cm, the Arduino detects the change.
The Arduino signals the servo motor to rotate and lift the lid open.
After a few seconds with nothing nearby, the servo closes the lid again automatically.
Great Job!
You've completed this STEAM project.
Rain Detector



Build a simple Arduino-based system that detects water and activates an output automatically.
Components Required






Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| water sensor signal | D5 |
| Servo Signal | D7 |
| Buzzer + | D8 |
| Buzzer - | GND |
| VCC+ (all) | 5V+ |
| GND- (all) | GND- |
| Battery 9v - | GND |
| Battery 9v + | Vin |
Step-by-Step Setup
Set up the Arduino and breadboard, and mount the rain sensor plate somewhere exposed.
Wire the Water sensor's digital pin S to pin D5, and power it from 5V and GND.
Wire the servo signal to D7 — this will represent closing a window or cover.
Wire the buzzer to D8 to sound an alert when rain is detected.
Flash the sketch below and open the Serial Monitor to watch readings.
Touch the sensor plate with a few drops of water and confirm the buzzer and servo react.
Arduino Source Code
#include <Servo.h>
#define RAIN_PIN 5
#define BUZZER_PIN 8
Servo coverServo;
void setup() {
pinMode(RAIN_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
coverServo.attach(7);
coverServo.write(0);
Serial.begin(9600);
}
void loop() {
int rainDetected = digitalRead(RAIN_PIN) == LOW;
if (rainDetected) {
digitalWrite(BUZZER_PIN, HIGH);
coverServo.write(90);
Serial.println("Rain detected - closing cover");
} else {
digitalWrite(BUZZER_PIN, LOW);
coverServo.write(0);
}
delay(300);
}
How It Works
The rain sensor plate constantly checks whether water is touching its surface.
As soon as water is detected, the sensor sends a signal to the Arduino.
The Arduino immediately sounds the buzzer and moves the servo to close the cover.
Once the surface dries, the system resets and waits for the next reading automatically.
Great Job!
You've completed this STEAM project.
Smart Blind Stick



A walking stick that warns of obstacles ahead with vibration and sound before they're reached.
Components Required





Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| HC-SR04 TRIG | D8 |
| HC-SR04 ECHO | D7 |
| Buzzer + | D4 |
| GND (all) | GND |
| VCC (all) | 5V+ |
| Battery + | VIN |
| Battery - | GND |
Step-by-Step Setup
Fix the Arduino and battery near the stick's handle for easy access.
Mount the ultrasonic sensor near the tip, facing forward, and wire it to D8/D7.
Wire the motor and tape it near the handle so the user can feel it.
Wire the buzzer to D4 for an audible warning at close range.
Flash the sketch below, which scales feedback with distance.
Walk the stick toward a wall and confirm feedback increases as you get closer.
Arduino Source Code
{/* //download arduino ide first then upload this sketch */}
#define TRIG_PIN 8
#define ECHO_PIN 7
#define BUZZ_PIN 4
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZ_PIN, OUTPUT);
}
long readDistanceCm() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
long distance = readDistanceCm();
// Agar distance 35 cm se zyada hai to buzzer ON
if (distance > 35) {
digitalWrite(BUZZ_PIN, HIGH);
}
else {
digitalWrite(BUZZ_PIN, LOW);
}
delay(120);
}
How It Works
The ultrasonic sensor at the tip of the stick scans for obstacles as you walk.
The Arduino constantly compares the distance reading to a safe walking range.
If an obstacle is within 25 cm, the vibration motor turns on to alert you.
If the obstacle gets closer than 35 cm, the buzzer also sounds for an added warning.
Great Job!
You've completed this STEAM project.
Radar-detaction



Ultrasonic-sensor-based touch-free detection system with automated servo sweep and a buzzer alert.
Components Required






Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| ultrasonic trig | D2 |
| ultrasonic echo | D4 |
| Servo signal (orange) | D9 |
| Buzzer (+) | D5 |
| Buzzer (-) | GND |
| servo RED = VCC, Brown = GND | Vcc/GND |
| VCC (all) | 5V |
| GND (all) | GND |
| Battery + | vin |
| Battery - | GND |
Step-by-Step Setup
Mount the ultrasonic sensor on the servo.
Wire the ultrasonic sensor's D2/D3 and the servo's D6 signal pin to the Arduino.
Attach the positive long leg of the buzzer to pin D7, the other leg to GND.
Flash the sketch below, which sweeps the servo and alerts on detection.
Place an object in front of the ultrasonic sensor and confirm the servo stops and the buzzer sounds.
Arduino Source Code
#include <Servo.h>
#define TRIG_PIN 2
#define ECHO_PIN 4
#define SERVO_PIN 9
#define BUZZ_PIN 5
Servo myServo;
int servoPos = 0;
int servoDirection = 1;
const int ALERT_DISTANCE = 25;
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZ_PIN, OUTPUT);
myServo.attach(SERVO_PIN);
myServo.write(servoPos);
digitalWrite(BUZZ_PIN, LOW);
}
long readDistanceCm() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH, 30000);
if (duration == 0) {
return 999;
}
return duration * 0.034 / 2;
}
void loop() {
long distance = readDistanceCm();
// Obstacle within 25 cm
if (distance > 0 && distance <= ALERT_DISTANCE) {
// Servo stop
myServo.write(servoPos);
// Buzzer alert
digitalWrite(BUZZ_PIN, HIGH);
delay(100);
}
// No obstacle
else {
// Buzzer OFF
digitalWrite(BUZZ_PIN, LOW);
// Servo 0 -> 180 -> 0 continuously
servoPos += servoDirection;
if (servoPos >= 180) {
servoPos = 180;
servoDirection = -1;
}
if (servoPos <= 0) {
servoPos = 0;
servoDirection = 1;
}
myServo.write(servoPos);
delay(15);
}
}
How It Works
The ultrasonic sensor is mounted on the servo motor and continuously scans the area by sweeping from 0° to 180°.
When an object is detected within the set distance, the Arduino immediately stops the servo at the detected position.
The buzzer starts beeping to alert the user that an object has been detected.
When the object moves away, the buzzer automatically stops and the servo resumes its 0° to 180° scanning movement.
Great Job!
You've completed this STEAM project.
Rock Paper Scissors



An ultrasonic game console that plays rock-paper-scissors against the Arduino at random.
Components Required






Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| TRIG | D8 |
| ECHO | D7 |
| LED | D4 |
| Servo | D11 |
Step-by-Step Setup
Arrange the ultrasonic sensor in front of the breadboard.
Attach the servo to pin D8, with a small cube or arm on top.
Wire TRIG to D2 and ECHO to D3.
Flash the sketch below, which picks a random move each round.
Place your hand in front of the ultrasonic sensor and confirm the move and result.
Arduino Source Code
#include <Servo.h> #include#define TRIG_PIN 8 #define ECHO_PIN 7 #define LED_PIN 4 #define SERVO_PIN 11 Servo myServo; bool detected = false; long readDistanceCm() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); long duration = pulseIn(ECHO_PIN, HIGH, 30000); if (duration == 0) { return 999; } return duration * 0.034 / 2; } void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(LED_PIN, OUTPUT); myServo.attach(SERVO_PIN); myServo.write(0); digitalWrite(LED_PIN, LOW); randomSeed(analogRead(A0)); } void loop() { long distance = readDistanceCm(); // Object detected within 20 cm if (distance > 0 && distance <= 20 && !detected) { detected = true; // LED ON digitalWrite(LED_PIN, HIGH); // Random servo movement int movement = random(0, 4); if (movement == 0) { myServo.write(90); } else if (movement == 1) { myServo.write(0); } else if (movement == 2) { myServo.write(180); } else { myServo.write(0); } } // Object moved away if (distance > 20 || distance <= 0) { detected = false; // LED OFF digitalWrite(LED_PIN, LOW); } delay(100); }
How It Works
The ultrasonic sensor continuously measures the distance of objects in front of the system.
When an object is detected within 20 cm, the Arduino activates the buzzer for a single beep.
The Arduino randomly selects a servo movement and moves it to a position such as 0°, 90°, or 180°.
After the object moves away beyond 20 cm, the system resets and waits for the next detection.
Great Job!
You've completed this STEAM project.
Auto-Light on/off



A light that switches on automatically as the room gets dark, and off again at daylight.
Components Required






Circuit Diagram

Wiring / Connections
| Component | Pin |
|---|---|
| LDR | A0 |
| LED | D2 |
| VCC (all) | 5V |
| GND (all) | GND |
| Battery 9v - | GND |
| Battery 9v + | VIN |
Step-by-Step Setup
Mount the LDR somewhere it can sense ambient room light directly.
Wire the LDR with its resistor as a voltage divider into A0.
Attach the LED to Arduino pin D3.
Flash the sketch below and adjust DARK_THRESHOLD if needed.
Cover the LDR with your hand and confirm the LED switches on.
Arduino Source Code
#define LDR_PIN A0
#define LED_PIN 2
{/* adjust thershold according to darkness ....*/}
const int DARK_THRESHOLD = 400;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int lightLevel = analogRead(LDR_PIN);
// Dark -> LED ON
if (lightLevel < DARK_THRESHOLD) {
digitalWrite(LED_PIN, HIGH);
}
else {
// Bright -> LED OFF
digitalWrite(LED_PIN, LOW);
}
delay(500);
}
How It Works
The LDR sensor continuously measures how much light is in the room.
The Arduino compares this reading against a set brightness threshold.
When the room gets dark enough, the Arduino switches the LED on.
The LED turns off again automatically once it's bright.
Great Job!
You've completed this STEAM project.
