shutterscripter / evolte

EV Charger control system

Repository from Github https://github.comshutterscripter/evolteRepository from Github https://github.comshutterscripter/evolte

Evolte - EV Charger Controller

A comprehensive EV Charger control system consisting of a Flutter mobile application and ESP32 firmware for Bluetooth Low Energy (BLE) communication and device control.

Workflow Diagram

πŸ“± Mobile Application

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

Mobile App Tech Stack

  • Framework: Flutter
  • State Management: GetX
  • Bluetooth: flutter_blue_plus
  • UI Components: flex_color_scheme, iconsax_flutter
  • Utilities: flutter_screenutil, gap, fluttertoast

ESP32 Firmware Tech Stack

  • Framework: ESP-IDF
  • Bluetooth: NimBLE stack
  • Language: C
  • RTOS: FreeRTOS

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (^3.8.0)
  • ESP-IDF development environment
  • Android Studio / VS Code
  • ESP32 development board

Mobile App Setup

  1. Clone the repository

    git clone <repository-url>
    cd evolte_controller/app_code
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

ESP32 Firmware Setup

  1. Navigate to ESP32 code directory

    cd evolte_esp_code
  2. Configure the project

    idf.py menuconfig
  3. Build and flash

    idf.py build
    idf.py -p [PORT] flash monitor

πŸ“ Project Structure

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

πŸ”Œ Hardware Requirements

  • 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

πŸ“± Usage

  1. Power on the ESP32 - The device will start advertising as a BLE server
  2. Open the mobile app - Launch the Evolte Controller app
  3. Scan for devices - The app will automatically scan for available BLE devices
  4. Connect to device - Select your ESP32 device from the list
  5. Send commands - Use the control interface to send commands to your devices

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

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.

About

EV Charger control system

License:MIT License


Languages

Language:Dart 46.4%Language:C++ 16.7%Language:CMake 13.9%Language:C 9.9%Language:JavaScript 8.7%Language:Ruby 1.9%Language:Swift 1.4%Language:HTML 0.8%Language:Dockerfile 0.2%Language:Kotlin 0.1%Language:Objective-C 0.0%