An IoT-based smart locker system developed as a university project using Flutter, Firebase and ESP32.
The goal of this project is to allow users to rent lockers through a web application and access them securely using RFID cards. The system combines cloud services, embedded systems and a modern web interface to provide real-time locker management.
- RFID card authentication
- Real-time Firebase integration
- ESP32-based locker controller
- Servo motor locking mechanism
- RGB LED status indicators
- Reed switch door monitoring
- Organization-based management system
- User and admin dashboards
- Real-time locker status tracking
- Flutter Web
- Dart
- Firebase Authentication
- Firebase Realtime Database
- ESP32
- RC522 RFID Reader
- SG90 Servo Motor
- RGB LED
- Reed Switch
- 5V Power Supply
- Wokwi
- Blender
- Tinkercad
RFID Card
↓
RC522 RFID Reader
↓
ESP32
↓
Firebase Realtime Database
↓
Flutter Web Application
↓
Admin / User
- A user rents a locker through the web application.
- The locker is assigned to the user in Firebase.
- An RFID card is associated with the user account.
- When the card is scanned, ESP32 checks authorization data from Firebase.
- If access is granted, the servo motor unlocks the locker.
- The locker status is updated in real time.
- All actions are logged in Firebase.
smart_locker_system/
│
├── lib/ # Flutter source code
├── web/ # Web configuration
├── esp32/ # ESP32 firmware
├── screenshots/ # Project screenshots
├── README.md
└── pubspec.yaml
- Developed the Flutter-based web application
- Implemented Firebase Authentication and Realtime Database integration
- Developed ESP32 firmware for locker control and cloud communication
- Implemented RFID-based user authentication
- Designed and simulated the electronic circuit using Wokwi
- Designed the locker enclosure and mechanical structure using Blender
- Designed custom screws and mounting components for the locking mechanism using Tinkercad
- Implemented real-time locker status monitoring and management
git clone https://github.com/meehhmett/smart_locker_system.git
cd smart_locker_systemflutter pub getCreate your own Firebase project and configure:
- Firebase Authentication
- Firebase Realtime Database
firebase_options.dart
If Firebase configuration values are replaced with placeholders, update them with your own Firebase project information.
flutter run -d chromeor
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 8080ESP32 firmware is located in the esp32/ folder.
Before uploading the code, update the Wi-Fi credentials:
#define WIFI_SSID "YOUR_WIFI"
#define WIFI_PASSWORD "YOUR_PASSWORD"Also configure Firebase database information if needed.
Upload the firmware to the ESP32 using PlatformIO or Arduino IDE.
- ESP32
- RC522 RFID Reader
- SG90 Servo Motor
- RGB LED
- Reed Switch
- 5V Power Supply
- Jumper wires
- Locker prototype
Smart Locker, Flutter, Firebase ve ESP32 kullanılarak geliştirilmiş IoT tabanlı bir akıllı dolap sistemidir.
Bu projede amaç, kullanıcıların web uygulaması üzerinden dolap kiralayabilmesi ve kiraladıkları dolaba RFID kart ile güvenli şekilde erişebilmesidir. Sistem; bulut servisleri, gömülü sistemler ve modern bir web arayüzünü bir araya getirerek gerçek zamanlı dolap yönetimi sağlar.
- RFID kart ile kullanıcı doğrulama
- Firebase ile gerçek zamanlı veri senkronizasyonu
- ESP32 tabanlı dolap kontrol sistemi
- Servo motor ile kilitleme mekanizması
- RGB LED durum göstergeleri
- Reed switch ile kapı durumu takibi
- Organizasyon bazlı yönetim sistemi
- Kullanıcı ve admin panelleri
- Gerçek zamanlı dolap durumu izleme
- Flutter Web
- Dart
- Firebase Authentication
- Firebase Realtime Database
- ESP32
- RC522 RFID Okuyucu
- SG90 Servo Motor
- RGB LED
- Reed Switch
- 5V Adaptör
- Wokwi
- Blender
- Tinkercad
RFID Kart
↓
RC522 RFID Okuyucu
↓
ESP32
↓
Firebase Realtime Database
↓
Flutter Web Uygulaması
↓
Admin / Kullanıcı
- Kullanıcı web uygulaması üzerinden dolap kiralar.
- Kiralanan dolap Firebase üzerinde kullanıcıya atanır.
- RFID kart kullanıcı hesabı ile eşleştirilir.
- Kart okutulduğunda ESP32, Firebase üzerinden yetki kontrolü yapar.
- Yetkili kart okutulursa servo motor kilidi açar.
- Dolap durumu gerçek zamanlı olarak güncellenir.
- İşlem kayıtları Firebase üzerinde tutulur.
smart_locker_system/
│
├── lib/ # Flutter kaynak kodları
├── web/ # Web yapılandırması
├── esp32/ # ESP32 firmware kodları
├── screenshots/ # Proje ekran görüntüleri
├── README.md
└── pubspec.yaml
- Flutter tabanlı web uygulamasının geliştirilmesi
- Firebase Authentication ve Realtime Database entegrasyonu
- ESP32 firmware geliştirme
- RFID tabanlı kullanıcı doğrulama sistemi
- Wokwi kullanılarak elektronik devre tasarımı ve simülasyonu
- Blender kullanılarak dolap gövdesi ve mekanik yapı tasarımı
- Tinkercad kullanılarak kilit mekanizmasına ait özel vida ve bağlantı parçalarının tasarımı
- Gerçek zamanlı dolap durumu izleme ve yönetim sistemi
git clone https://github.com/meehhmett/smart_locker_system.git
cd smart_locker_systemflutter pub getKendi Firebase projenizi oluşturup gerekli ayarları yapın:
- Firebase Authentication
- Firebase Realtime Database
firebase_options.dart
Eğer Firebase bilgileri örnek değerlerle değiştirildiyse, kendi Firebase proje bilgilerinizi eklemeniz gerekir.
flutter run -d chromeveya
flutter run -d web-server --web-hostname 0.0.0.0 --web-port 8080ESP32 kodları esp32/ klasöründe yer almaktadır.
Kodu yüklemeden önce Wi-Fi bilgilerini güncelleyin:
#define WIFI_SSID "YOUR_WIFI"
#define WIFI_PASSWORD "YOUR_PASSWORD"Gerekirse Firebase veritabanı bilgilerini de kendi projenize göre düzenleyin.
Ardından kodu ESP32 kartına PlatformIO veya Arduino IDE kullanarak yükleyin.
- ESP32
- RC522 RFID Okuyucu
- SG90 Servo Motor
- RGB LED
- Reed Switch
- 5V Adaptör
- Jumper kablolar
- Dolap prototipi
This project was developed for educational purposes as a university project.




