This project implements an IoT-based lift access control system using ESP8266 microcontroller, Firebase for real-time database management, and mobile app development for user interaction. The system utilizes RFID for user authentication, a keypad for selecting lift destinations, and integrates with a mobile application for remote control and monitoring.
- RFID User Authentication: Users can gain access by scanning their RFID cards.
- Keypad Input: Users can select lift destinations using a numeric keypad.
- Mobile Application: A companion mobile app (developed using Flutter) allows users to control and monitor the lift system remotely.
- Real-time Database: Firebase is used to store user data, lift positions, and usage statistics.
- ESP8266 Development Board (e.g., NodeMCU, Wemos D1 Mini)
- RFID Reader Module (e.g., MFRC522)
- Keypad Module (4x3 or similar)
- Jumper Wires
- Breadboard (optional)
- Power Source (USB or battery)
- Arduino IDE with ESP8266 Board Support
- Firebase Project for real-time database
- Flutter SDK for mobile app development
Clone this repository to your local machine:
git clone https://github.com/GaneshAdimalupu/your-repo-name.git
cd your-repo-name- Create a new project in Firebase Console.
- Add a Realtime Database to your project and set the necessary rules for read/write access.
- Obtain the API key and project ID from the project settings.
- Enable email/password authentication in the Authentication section.
-
Download and install the Arduino IDE.
-
Open the Arduino IDE and go to
File>Preferences. -
Add the following URL to the "Additional Board Manager URLs":
http://arduino.esp8266.com/stable/package_esp8266com_index.json -
Go to
Tools>Board>Boards Manager, search foresp8266, and install the package. -
Install the required libraries:
- Firebase ESP Client
- Keypad
- MFRC522
- NTPClient
- TimeLib
You can install these libraries via the Library Manager (
Sketch>Include Library>Manage Libraries).
-
Open the
lift_access_control.inofile in Arduino IDE. -
Update the following variables in the code with your Firebase and Wi-Fi credentials:
#define WIFI_SSID "Your_SSID" #define WIFI_PASSWORD "Your_Password" #define API_KEY "Your_Firebase_API_Key" #define FIREBASE_PROJECT_ID "Your_Firebase_Project_ID" #define USER_EMAIL "Your_Email" #define USER_PASSWORD "Your_Password"
-
Connect your ESP8266 board to your computer via USB.
-
Select the correct board and port in
Tools>BoardandTools>Port. -
Upload the code by clicking on the upload button (→).
-
Ensure you have Flutter installed on your machine.
-
Navigate to the mobile app directory in your terminal:
cd mobile_app_directory -
Update the Firebase configuration in the Flutter app with your project details.
-
Run the mobile app:
flutter run
- Power on the ESP8266 board. It will connect to Wi-Fi and Firebase.
- Scan an RFID card to authenticate the user. The system will display a welcome message for authorized users.
- Use the keypad to enter the lift destination.
- Monitor and control the system via the mobile app.
- Developed and deployed a smart home automation system using ESP8266 and Firebase.
- Led the creation of a wearable health monitoring device with real-time processing and cloud storage.
- Implemented an IoT-based asset tracking system for logistics, improving inventory management.
Feel free to contribute to this project by opening issues or submitting pull requests. Collaboration is welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
Packages we are using:
- flutter_svg: link
We design 3 responsive screens first one is a welcome screen the user opens your app it shows then users have two options if the user has an account then press the login button and it just shifts the user to the login screen, or if they don't have an account then press signup button its transfers to the signup screen. All of those screens work perfectly on Android, iOS, Web, and Desktop.
Specal Thanks to: Muhammad Hamza (@mhmzdev)

