Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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 framework

A 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

embui UI
embui options
embui dtime
InfoClock

## 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...