This project turns an ESP32 into a high-performance analog signal monitor, accessible via a real-time web interface. Utilizing WebSockets, ADC data is streamed instantly to your browser, allowing for fluid data visualization without page refreshes.
The system reads analog values from the ESP32 ADC pins (dynamically configured via the web UI) and broadcasts them as formatted data frames. The integrated web interface allows users to select which GPIOs to monitor on the fly.
Backend: High-speed WebSocket server running on ESP32 for ultra-low latency. Frontend: Lightweight HTML5/JavaScript interface with optimized string parsing. Flexibility: Dynamic pin configuration supporting the GPIO_XX; protocol.
An ESP32 (DevKit V1, Olimex, or Wemos S2 Mini). Tested with Olimex-Lipo
Install dependencies: WebSocketsServer library. Upload the code using VS Code + PlatformIO.
Connection: Connect to the IP address displayed in the Serial Monitor (e.g., 192.168.1.50) or on your router interface.
- Hotspot or WLAN connexion available
- Initialized WebSocket server on Port 81.
- ADC pin reading implementation
- Dynamic GPIOXX; string splitting and pin mapping system.
- Formatted data broadcasting: ADC;value;0;0;0.
- y scale should be 0 4095 fix for now
- Sending mix measurements
- X scaling should work
- Y channel offset should display the origin and a y correponding legend
- Dynamic timebase should work
- Y Trigger should work
- start measure on page connexion
- sampling change
- coockie configuration
- y trigger is not working well good
C++ / Arduino: Embedded logic and hardware control. JavaScript (ES6): DOM manipulation and WebSocket management. HTML5 / CSS3: Responsive user interface.
Built with ☕ and extensive debugging in VS Code.
