Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmytrokorniienko/embui
Embedded WebUI Interface
https://github.com/dmytrokorniienko/embui
esp32 esp32-arduino esp8266 esp8266-arduino framework websockets
Last synced: 3 months ago
JSON representation
Embedded WebUI Interface
- Host: GitHub
- URL: https://github.com/dmytrokorniienko/embui
- Owner: DmytroKorniienko
- License: mit
- Created: 2020-10-11T14:51:06.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-04-09T12:04:53.000Z (almost 2 years ago)
- Last Synced: 2024-10-15T03:25:46.365Z (3 months ago)
- Topics: esp32, esp32-arduino, esp8266, esp8266-arduino, framework, websockets
- Language: C++
- Homepage:
- Size: 2.15 MB
- Stars: 59
- Watchers: 8
- Forks: 13
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# EmbUI
Embedded WebUI Interface[![arduino-library-badge](https://www.ardu-badge.com/badge/EmbUI.svg?)](https://www.ardu-badge.com/EmbUI)
[![PlatformIO CI](https://github.com/DmytroKorniienko/EmbUI/actions/workflows/pio_build.yml/badge.svg)](https://github.com/DmytroKorniienko/EmbUI/actions/workflows/pio_build.yml)__[CHANGELOG](/CHANGELOG.md)__
Framework for building a web-interface and controls for projects under Arduino ESP
## Supported controllers/platforms
- ESP8266 Arduino Core
- ESP32/ESP32-S2/ESP32-C3/ESP32-S3 Arduino Core## Capabilities
- automatic publication of the controller in the local network via [mDNS](https://en.wikipedia.org/wiki/Multicast_DNS)/[ZeroConf](https://en.wikipedia.org/wiki/Zero-configuration_networking)
- device discovery capability:
- [Service Browser](https://play.google.com/store/apps/details?id=com.druk.servicebrowser) Android
- [SSDP](https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol) for Windows
- [Bonjour](https://en.wikipedia.org/wiki/Bonjour_(software)) iOS/MacOS
- communication with the browser via WebSocket
- support for multiple parallel connections, the interface is updated simultaneously on all devices
- self-hosted - no dependencies on external resources/CDN/Cloud services
- built-in WiFi manager, auto-switch to AP mode when client connection is lost
- full support for all existing Time Zones, automatic changeover to summer/winter time, correct calculation of dates/time intervals
- OTA, FS firmware/image update via browser
- the ability to load data / interface elements via AJAX## Projects based at EmbUI
- [FireLamp_EmbUI](https://github.com/DmytroKorniienko/FireLamp_EmbUI/tree/dev) - ws2812 led matrix fire lamp
- [ESPEM](https://github.com/vortigont/espem) - energy meter based on the PZEM-004 module## Examples of building interfaces
![EmbUI](https://user-images.githubusercontent.com/26786760/140750180-65de2694-3ed8-41de-87eb-6f7e94ac12b2.png)
![image](https://user-images.githubusercontent.com/26786760/169590465-2947514b-a29f-446c-a8bb-16ab23abc912.png)Other pictures
## Usage
For WebUI to work, it is necessary to upload an image of the LittleFS file system with web resources to the controller.
Prepared resources for creating an image can be deployed [from the archive](https://github.com/DmytroKorniienko/EmbUI/raw/main/resources/data.zip).
In [Platformio](https://platformio.org/) this is usually the *data* directory at the root of the project.## Depends
Projects | URL | Remarks
------------------ | :-------------------------------------------------------------------------------:| --------------
ArduinoJson | https://github.com/bblanchon/ArduinoJson.git |
AsyncWebServer-mod | https://github.com/DmytroKorniienko/ESPAsyncWebServer/tree/ESPAsyncWebServerMod | manual install, fork
AsyncMqttClient | https://github.com/marvinroger/async-mqtt-client.git | manual install
TaskScheduler | https://github.com/arkhipenko/TaskScheduler.git |
FtpClientServer | https://github.com/charno/FTPClientServer.git | manual install, fork
ESP32SSDP | https://github.com/luc-github/ESP32SSDP.git | manual install, esp32
AsyncTCP | https://github.com/me-no-dev/AsyncTCP.git | manual install, esp32