An Android application to control a NodeMCU-based RC car over WiFi, with real-time leaderboard and announcement features using Firebase.
Android · Java · Firebase · NodeMCU · WiFi Networking
Overview
This project is an Android-based remote control system designed to interact with a NodeMCU-powered RC car over a local WiFi network. In addition to car control, the app includes real-time data features such as leaderboards and announcements powered by Firebase Realtime Database.
The app is highly configurable, allowing users to modify request codes, IP address, and port values directly from the settings screen.
Key Features
🚘 RC Car Control
• Directional controls: Forward, Backward, Left, Right, Stop
• Rotation controls: Clockwise & Anti-clockwise
• 5 configurable action buttons (e.g., speed control or custom actions)
• Communication via HTTP requests over local WiFi
⚙️ Dynamic Configuration
• Request codes for each button are user-editable
• IP address and port can be updated from the app
• Settings stored using SharedPreferences
📊 Real-Time Leaderboard
• Displays team rankings with:
-
Team name
-
Mentor name
-
Leader name
-
Time taken
-
Points
• Automatically updates using Firebase Realtime Database
• Conflict handling using points + time logic
📢 Announcements & Notifications
• Announcements fetched from Firebase
• Push notifications sent for important updates
• Notification click opens the app directly
🔐 Authentication
• Firebase Authentication for controlled access
• Credentials managed externally (via Firebase Console)
🛠 Admin Support
• Separate admin-side workflow for:
• Adding leaderboard data
• Posting announcements
🧱 Tech Stack
| Category | Technologies Used |
|---|---|
| Language | Java |
| UI | XML |
| Backend | Firebase Realtime Database |
| Authentication | Firebase Authentication |
| Networking | HTTP (WiFi-based local server) |
| Hardware | NodeMCU (ESP8266) |
| Architecture | Activity-based Android Architecture |
🌐 How It Works
-
NodeMCU creates a local WiFi hotspot
-
The app connects to the NodeMCU using IP + port
-
Button actions send request codes like:
http://<ip-address>/?dir=forward -
NodeMCU parses the request and triggers hardware actions
-
Firebase handles:
A) Leaderboard data
B) Announcements
c) Notifications
📱 Screenshots
Screenshots of the app UI are provided below for reference.
🔒 Security & Privacy
• google-services.json is not included
• Sensitive keys and credentials are excluded
• Firebase rules should be configured before use
📄 License
This project is intended for learning, demonstration, and academic use.
🙌 Acknowledgements
Thanks to my team, those who contributed in making of this app, everyone who contributed in ideas, testing, and feedback during development.




