ESP32 BMS Dashboard - PlatformIO Build & Flash Guide
ESP32 BMS Dashboard - PlatformIO Build & Flash Guide
Prerequisites
2. Hardware Requirements
ESP32 Development Board (ESP32-WROOM-32)
MAX485 Module
USB Cable (Type-A to Micro-USB or USB-C depending on your ESP32)
Project Setup
4. Configure project:
Name: ESP32_BMS_Dashboard
Framework: Arduino
2. Project Structure
ESP32_BMS_Dashboard/
├── src/
│ └── main.cpp # Main source code
├── platformio.ini # Project configuration
└── README.md
3. Configure platformio.ini
Replace the contents of platformio.ini with:
ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_speed = 921600
; Libraries
lib_deps =
emelianov/modbus-esp8266@^4.1.0
bblanchon/ArduinoJson@^6.21.3
tzapu/WiFiManager@^0.16.0
; Build flags
build_flags =
-DCORE_DEBUG_LEVEL=3
-DCONFIG_ARDUHAL_LOG_COLORS=1
; Monitor configuration
monitor_filters =
esp32_exception_decoder
time
; Flash settings
board_build.flash_mode = dio
board_build.flash_size = 4MB
board_build.partitions = default.csv
; Upload settings
upload_port = AUTO
monitor_port = AUTO
Build Project:
Flash to ESP32:
Open Terminal:
Build Commands:
bash
# Build project
pio run
bash
Hardware Connections
Troubleshooting
Common Issues:
1. Upload Failed
bash
# Solutions:
- Hold BOOT button during upload
- Try different baud rate: upload_speed = 115200
- Check USB cable and driver
- Verify COM port in Device Manager
2. Library Errors
bash
# Update libraries:
pio lib update
bash
Debugging:
bash
ini
build_flags =
-DCORE_DEBUG_LEVEL=5
-DDEBUG_ESP_PORT=Serial
-DDEBUG_ESP_WIFI
-DDEBUG_ESP_HTTP_CLIENT
1. WiFi Setup:
1. After flashing, ESP32 will create WiFi hotspot: "BMS_Monitor_Config"
2. Access Dashboard:
1. Note the IP address from serial monitor
3. API Endpoints:
Main Dashboard: http://[IP]/
@echo off
echo Building ESP32 BMS Dashboard...
pio run -t clean
pio run
echo.
echo Flashing to ESP32...
echo Please hold BOOT button on ESP32 now!
timeout /t 3
pio run -t upload
echo.
echo Starting serial monitor...
pio device monitor
bash
#!/bin/bash
echo "Building ESP32 BMS Dashboard..."
pio run -t clean
pio run
echo ""
echo "Flashing to ESP32..."
echo "Please hold BOOT button on ESP32 now!"
sleep 3
pio run -t upload
echo ""
echo "Starting serial monitor..."
pio device monitor
Production Build
For final deployment:
bash
The firmware will automatically scan for BMS devices on IDs 0-15 and display the detected BMS ID in the
web interface.