Banshee is a device management system that allows you to monitor and configure ESP32-based (like the WT32-ETH01) devices remotely. It consists of two main components:
- An ESP32 device running custom firmware (Banshee)
- A PHP-based server API for device registration and configuration
The system allows devices to:
- Generate and register unique device IDs
- Periodically check in with the server
- Receive and apply network configuration updates
- Automatic device registration with unique IDs
- Periodic device check-ins to confirm connectivity
- Remote configuration of network settings (static IP vs DHCP)
- Web interface for viewing registered devices and their last seen times
- Logging of API requests for debugging and monitoring
The ESP32 firmware (banshee.ino
) handles:
- Ethernet connection setup
- Device ID generation and registration
- Periodic check-ins with the server
- Applying network configuration updates
Key functions:
generateAndAssignNewID()
: Creates and registers a new device IDcheckID()
: Verifies the validity of the current device IDcheckAndApplyConfig()
: Fetches and applies network configuration from the server
The PHP-based server API (index.php
) provides endpoints for:
- Device ID registration and validation
- Configuration management
- Logging of requests
Key endpoints:
?action=check_id
: Validates a device ID?action=get_id
: Registers a new device ID?action=check_config
: Provides network configuration for a device
The system uses SQLite (database.php
) to store:
- Device IDs and last seen times
- Request logs
- Device configurations
A simple web interface is provided to:
- View registered device IDs and their last seen times
- Access request logs
- Manage devices (via
device_manager.php
, not included in the provided code)
- Add device location tracking using MapBox
- Implement GPS functionality for precise location data
- Integration with Laravel as a package ???
create credentials.h file with your API endpoint
- FT232RL FTDI USB Type C to TTL Serial Converter
- WT32-ETH01 ESP32 Development Board
- Jump IO01 to GND for programming mode, disconnect after power on