A modern web-based device management interface for ESP32 devices, specifically designed for ESP-NOW Tree Network devices. This application provides real-time monitoring, configuration management, and serial communication capabilities through a clean, responsive web interface.
- Serial Communication: Connect to ESP32 devices via Web Serial API
- Real-time Monitoring: Live status updates for network, I/O, and device data
- Configuration Management: Dynamic form generation for device parameters
- Visual I/O Display: Intuitive pin state visualization with input/output grids
- Network Status: Hierarchical ID, Bit Index, Parent HID, Tree Depth
- Network Statistics: Message counts, signal strength, last activity
- ESP-NOW Tree Support: Optimized for distributed I/O networks
- Multi-Input Shared Data: Visual display of 32-bit × 3-input shared data
- Dynamic Bit Index Highlighting: Automatic highlighting of device's assigned bit
- Configuration Persistence: Save/load device configurations
- Debug Console: Separate debug and serial consoles with export capabilities
- Open the Web App: Navigate to the GitHub Pages URL (see below)
- Connect Device: Click "Connect Serial" and select your ESP32 device
- Load Configuration: Click "Load Configuration" to get current device settings
- Monitor & Configure: Use the tabs to view and modify device parameters
- Upload Firmware: Flash the
HELTEC_ESPNOW_TREE_BCAST
firmware to your ESP32 - Configure Device: Set Hierarchical ID and Bit Index via the web interface
- Network Setup: Configure ESP-NOW tree network parameters as needed
WEB_UPLOAD/
├── web-flasher/ # Web application
│ ├── index.html # Main interface
│ ├── js/
│ │ └── app.js # Main application logic
│ ├── css/
│ │ └── style.css # Styling and layout
│ └── README.md # Web app documentation
├── HELTEC_ESPNOW_TREE_BCAST/ # ESP32 firmware
│ ├── HELTEC_ESPNOW_TREE_BCAST.ino
│ ├── DataManager.h/.cpp # Data management
│ ├── IoDevice.h/.cpp # I/O handling
│ ├── TreeNetwork.h/.cpp # ESP-NOW tree network
│ ├── SerialCommandHandler.h/.cpp # Web interface communication
│ └── MenuSystem.h/.cpp # OLED display management
└── README.md # This file
- HTML5: Modern semantic markup
- CSS3: Responsive design with Bootstrap 5
- JavaScript ES6+: Modern async/await patterns
- Web Serial API: Direct device communication
- Web Workers: Background processing
- ESP-NOW: Wireless mesh networking
- NVS: Non-volatile storage for configuration
- ArduinoJson: JSON communication protocol
- OLED Display: Status visualization
- Multi-Input Support: 3-input × 32-bit shared data
- Serial Commands:
CONFIG_SCHEMA
,CONFIG_SAVE
,IO_STATUS
, etc. - JSON Responses: Structured data exchange
- Real-time Updates: 2-second monitoring intervals
This application is designed to run on GitHub Pages. The web interface is completely client-side and can be accessed directly from the repository.
Once deployed to GitHub Pages, you can access the application at:
https://[your-username].github.io/[repository-name]/
For local development, you can run a simple HTTP server:
cd web-flasher
python3 -m http.server 8080
# Then visit http://localhost:8080
- Chrome/Edge: Web Serial API support
- Firefox: Limited Web Serial API support
- Safari: No Web Serial API support
- Arduino IDE: For firmware compilation
- Required Libraries:
ArduinoJson
(v6.x)WiFi
(built-in)ESP32
board package
- Enhanced Display: Horizontal layout for 32-bit × 3-input shared data
- Dynamic Highlighting: Automatic bit index highlighting based on device configuration
- Improved UX: Larger cells, better spacing, and clearer visual hierarchy
- Real-time Updates: Immediate configuration reflection without reload
- Device Management: Serial connection and configuration
- Network Monitoring: ESP-NOW tree network status
- I/O Visualization: Input/output pin state display
- Configuration Persistence: Save/load device settings
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- ESP32 Community: For excellent documentation and examples
- Web Serial API: For enabling direct browser-to-device communication
- Bootstrap: For responsive UI components
- ArduinoJson: For efficient JSON handling on embedded systems
Note: This application requires a modern browser with Web Serial API support. For best experience, use Chrome or Edge on desktop platforms.