Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vortigont/embui
Embedded WebUI framefork. Building interactive UI based on websockets for your Arduino projects. This is a fork of EmbUI project
https://github.com/vortigont/embui
arduino esp32 esp8266 websocket
Last synced: 9 days ago
JSON representation
Embedded WebUI framefork. Building interactive UI based on websockets for your Arduino projects. This is a fork of EmbUI project
- Host: GitHub
- URL: https://github.com/vortigont/embui
- Owner: vortigont
- License: mit
- Created: 2020-10-16T13:49:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T09:16:05.000Z (9 days ago)
- Last Synced: 2024-10-27T10:27:23.571Z (9 days ago)
- Topics: arduino, esp32, esp8266, websocket
- Language: C++
- Homepage:
- Size: 2.9 MB
- Stars: 12
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.en.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
__[RUSSIAN](/README.md) | [EXAMPLES](/examples) | [CHANGELOG](/CHANGELOG.md)__ | [![PlatformIO CI](https://github.com/vortigont/EmbUI/actions/workflows/pio_build.yml/badge.svg)](https://github.com/vortigont/EmbUI/actions/workflows/pio_build.yml)
# EmbUI
Embedded WebUI Interface frameworkA framework that helps to create WebUI and dynamic control elements for Arduino projects. It offers _Interface-as-a-code_ approach to segregate web frontend and MCU backend firmware development.
## Supported platforms
- ESP32, ESP32-S2, ESP32-C3, ESP32-S3 Arduino Core
- ESP8266 Arduino Core [branch v2.6](https://github.com/vortigont/EmbUI/tree/v2.6) only## Features
- asynchronous data exchange with frontend via WebSocket
- creating html elements using DOM and [{{ mustache }}](https://mustache.github.io/) templater
- packet based data exchange with WebUI, allows transfering large objects containing multiple elements split into chunks and using less MCU memory
- dynamic UI elements update without page refresh
- allows fetching data/ui objects via 3rd party AJAX calls
- supports multiple parallel connections, WebUI updates simultaneously on all devices
- embedded WiFi manager, AP-failover on connection lost, autoreconnection
- full support for TimeZones, daylight saving autoswitchover
- embedded NTP sync, NTPoDHCP support, custom NTP servers
- OTA firmware updates via WebUI/CLI tools
- zlib-compressed FOTA using [esp32-flashz](https://github.com/vortigont/esp32-flashz) lib
- [mDNS](https://en.wikipedia.org/wiki/Multicast_DNS)/[ZeroConf](https://en.wikipedia.org/wiki/Zero-configuration_networking) publisher, discovery
- device autodiscovery via:
- WiFi Captive Portal detection - upon connecting to esp's WiFi AP a device/browser will show a pop-up advising to open an EmbUI's setup page
- [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
- self-hosted - all resources resides on LittleFS locally, no calls for CDN resources## Projects using EmbUI
- [FireLamp / Informer](https://github.com/vortigont/FireLamp_JeeUI) - DIY HUB75/ws2812 led panel/matrix informer, clock, cristmas light project
- [ESPEM](https://github.com/vortigont/espem) - ESP32 energy meter for Peacfair PZEM-004
- [InfoClock](https://github.com/vortigont/infoclock) - Clock/weather ticker based on Max72xx modules## WebUI samples based on EmbUI framework
## Usage
To run EmbUI it is required to upload an FS image with resources to LittleFS partition.
Prebuild resources are available [as archive](https://github.com/vortigont/EmbUI/raw/main/resources/data.zip).
Unpack it into *data* folder to the root of [Platformio](https://platformio.org/) project## Documentation/API description
to be continued...