Smart Elevator
Author: Lazar Mihai
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-mihailazar6
Descriptionβ
Modern elevators can waste time and energy by stopping at unnecessary floors or responding inefficiently to requests. This project introduces a smarter elevator that processes requests in real time, prioritizing efficient travel and reducing both wait times and energy consumption.
Motivationβ
I chose this project because it addresses a real-world need for smarter, more efficient building systems. Elevators are critical for accessibility and convenience, and optimizing their operation can have a significant impact on energy use and user experience. This project combines my interest in automation and control with the challenge of creating a practical solution that benefits everyday life.
Architectureβ
Main Componentsβ
π¦ Input Module: Floor Request Buttonsβ
- Function: Simulate user requests for specific floors.
- Details: Each button is wired to a GPIO input on the Raspberry Pi Pico 2W.
π¨ Input Module: MFRC522 RFID Moduleβ
- Function: Simulate card-based access.
- Details: The MFRC522 module is connected to the Raspberry Pi Pico 2W via SPI and GPIO.
πͺ Controller Module: Raspberry Pi Pico 2Wβ
- Function: Central brain that processes button inputs, manages the elevator request queue, determines optimal direction, and issues movement commands.
- Features: Real-time scheduling, efficient route planning, and queue management logic.
π§ Output Module: Stepper Motor & Floor Indicatorsβ
- Stepper Motor: Simulates elevator movement between floors, controlled via the A4988 driver.
- LED Indicators: Display the current elevator floor and travel direction.
π Component Connectionsβ
Component | Connection | Purpose |
---|---|---|
Buttons | GPIO Inputs | Capture floor requests from users |
Pico 2W Logic | GPIO Outputs | Control LEDs and stepper motor driver |
A4988 Driver | Stepper Motor Pins | Translate Pico signals to motor movement |
LEDs | GPIO Outputs | Indicate elevator position & direction |
MFRC522 | SPI & GPIO | Read RFID cards for priority access |
Schematic Overview:
- Buttons β Pico 2W (GPIO Inputs)
- Pico 2W (Logic) β LEDs & A4988 (GPIO Outputs)
- A4988 β Stepper Motor (Controls elevator movement)
Logβ
Week 5 - 11 Mayβ
Week 12 - 18 Mayβ
Week 19 - 25 Mayβ
Hardwareβ
The hardware components used in this project are:
-
π’ Raspberry Pi Pico 2W
Acts as the main controller, processing all elevator logic. -
β¬ Push Buttons
Simulate floor requests and elevator calls. -
π‘ LEDs
Indicate elevator position and movement. -
π Breadboard & Jumper Wires
Facilitate easy prototyping and circuit connections. -
π Resistors
Protect LEDs and ensure reliable button input (pull-down configuration). -
βοΈ Stepper Motor
Physically simulates elevator movement between floors. -
π© A4988 Stepper Motor Driver
Precisely controls the stepper motor. -
π Power Supply (USB)
Powers the Raspberry Pi Pico and peripherals. -
π Buzzer
Provides auditory feedback for floor arrivals and events. -
π¨ MFRC522 RFID Module
Simulate card-based access.
These components combine to create an interactive, physical model of a smart elevator systemβenabling the practical exploration of efficient control algorithms, real-time feedback, and responsive user interaction.
Schematicsβ
Bill of Materialsβ
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 35 RON |
Push Buttons (10 pack) | Floor request and elevator call buttons | 5 RON |
LEDs (assorted colors, 100 pack) | Floor indicators and movement display | 25 RON |
Breadboard | Circuit prototyping | 15 RON |
Jumper Wires (40 pack) | Connecting components | 10 RON |
Resistors Kit (600 pcs) | LED circuits and button pull-downs | 30 RON |
USB Cable | Power supply for Raspberry Pi Pico | 10 RON |
NEMA 17 Stepper Motor | Motor for the elevator | 45 RON |
A4988 Stepper Motor Driver | Driver for the stepper motor | 20 RON |
Buzzer (5V, 5mm) | Auditory feedback for floor arrival and other events | 5 RON |
MFRC522 RFID Module | Card-based access or priority call | 10 RON |
Total | 160 RON |
Softwareβ
Library | Description | Usage |
---|---|---|
embassy-executor | Async runtime for embedded systems | Runs async tasks on the microcontroller |
embassy-net | Networking stack for embedded systems | Provides networking capabilities (TCP/IP, etc.) |
embassy-rp | Hardware abstraction layer for Raspberry Pi Pico | Low-level access to Pico peripherals |
embassy-time | Time-related utilities for embedded systems | Async timers, delays, and timeouts |
static-cell | Static memory allocation | Enables safe static data storage |
defmt-rtt | Logging over RTT (Real-Time Transfer) | Real-time logging for debugging |
panic-probe | Panic handler for debug probes | Captures panics for debugging via probe |
defmt | Logging framework for embedded systems | Efficient debug output |
embedded-hal-bus | Hardware abstraction layer bus implementations | Shared bus abstractions (I2C, SPI, etc.) |
mfrc522 | Driver for the MFRC522 RFID reader | Controls and interfaces with RFID module |