A comprehensive EV Charger control system consisting of a Flutter mobile application and ESP32 firmware for Bluetooth Low Energy (BLE) communication and device control.
The mobile app is built with Flutter and provides a user-friendly interface for:
- Bluetooth Device Scanning: Discover and connect to ESP32 devices
- Device Control: Send commands to control connected devices
- Real-time Communication: Bidirectional BLE communication with ESP32
- Framework: Flutter
- State Management: GetX
- Bluetooth: flutter_blue_plus
- UI Components: flex_color_scheme, iconsax_flutter
- Utilities: flutter_screenutil, gap, fluttertoast
- Framework: ESP-IDF
- Bluetooth: NimBLE stack
- Language: C
- RTOS: FreeRTOS
- Flutter SDK (^3.8.0)
- ESP-IDF development environment
- Android Studio / VS Code
- ESP32 development board
-
Clone the repository
git clone <repository-url> cd evolte_controller/app_code
-
Install dependencies
flutter pub get
-
Run the app
flutter run
-
Navigate to ESP32 code directory
cd evolte_esp_code -
Configure the project
idf.py menuconfig
-
Build and flash
idf.py build idf.py -p [PORT] flash monitor
evolt_controller/
βββ app_code/ # Flutter mobile application
β βββ lib/
β β βββ app/
β β β βββ controls/ # Device control screens
β β β βββ scan/ # BLE scanning and connection
β β βββ consts/ # Constants and configurations
β β βββ widgets/ # Reusable UI components
β βββ android/ # Android-specific configurations
β βββ ios/ # iOS-specific configurations
β βββ pubspec.yaml # Flutter dependencies
βββ evolte_esp_code/ # ESP32 firmware
β βββ main/
β β βββ main.c # Main firmware code
β β βββ gatts_demo.c # BLE GATT service implementation
β βββ CMakeLists.txt # Build configuration
βββ assets/
βββ workflow.png # System architecture diagram
- ESP32 Development Board: Any ESP32 variant (ESP32, ESP32-C3, ESP32-S2, ESP32-S3)
- Relay Module: For controlling high-power devices
- Power Supply: Appropriate power supply for your devices
- Power on the ESP32 - The device will start advertising as a BLE server
- Open the mobile app - Launch the Evolte Controller app
- Scan for devices - The app will automatically scan for available BLE devices
- Connect to device - Select your ESP32 device from the list
- Send commands - Use the control interface to send commands to your devices
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Review the ESP-IDF documentation
- Consult Flutter documentation for app-related questions
Note: This project is designed for educational and development purposes. Ensure proper safety measures when controlling electrical devices.
