Smart House System
For this project, I am designing a Smart House System using Arduino UNO and p5.js.
The idea was to automate key parts of a house and parking lot, and to create a more interactive experience using voice announcements made with p5.js.
The main features include:
-
Automatic main door that opens when a person approaches.
-
Car parking system that displays the number of available spots and automatically opens a parking barricade if spots are available.
-
Indoor lighting system that switches on when it gets dark, based on a photoresistor sensor.
-
Real-time voice announcements generated in p5.js based on Arduino sensor inputs, to make the system feel alive and responsive during an exhibition demo.
Design and Description of Arduino Program
The Arduino is responsible for all hardware sensor readings, actuator controls, and sending/receiving messages to and from p5.js.
Component | Type | Description |
---|
Distance Sensor (Main Door) | Input | Measures distance to detect a visitor near the main door. |
Distance Sensor (Parking Entrance) | Input | Detects a car approaching the parking gate (entry). |
Distance Sensor (Parking Exit) | Input | Detects a car leaving the parking area (exit). |
Photoresistor (Indoor Lighting) | Input | Detects ambient light levels to determine if indoor lights should be turned on. |
Servo Motor (Main Door) | Output | Opens or closes the main entrance door based on visitor detection. |
Servo Motor (Parking Gate) | Output | Opens or closes the parking barricade when a car is allowed entry. |
LED Display | Output | Shows the number of parking spots left. |
Indoor LEDs / Lights | Output | Turns indoor lights on/off based on photoresistor readings. |
Design and Description of p5.js Program
The p5.js program is responsible for interaction, feedback, and visualization.
Main Tasks:
-
Connects to Arduino through Serial communication.
-
Reads messages sent from Arduino (e.g., “door_open”, “lights_on”, “parking_spots:3”).
-
Plays real-time voice announcements using the p5.speech library based on events detected.
-
Displays a virtual dashboard showing the current number of available parking spots and statuses like door open/closed, lights on/off.
Voice Announcements Based on Arduino Events:
Arduino Message | p5.js Voice Announcement |
---|---|
door_open |
“Welcome! The door is opening.” |
car_entry |
“Vehicle detected. Checking parking availability.” |
car_exit |
“Vehicle exited. Parking spot now available.” |
parking_full |
“Parking is full. Please wait.” |
lights_on |
“Lights are now on for your comfort.” |
lights_off |
“Lights are off to save energy.” |