Giter VIP home page Giter VIP logo

embui's Introduction

EmbUI

Embedded WebUI Interface

arduino-library-badge PlatformIO CI

CHANGELOG

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/ZeroConf
  • device discovery capability:
  • 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 - ws2812 led matrix fire lamp
  • ESPEM - energy meter based on the PZEM-004 module

Examples of building interfaces

EmbUI image

Other picturesespem uiespem opts

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. In Platformio 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

embui's People

Contributors

dmytrokorniienko avatar kostyamat avatar lumenjer avatar vortigont avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

embui's Issues

WiFi connect and frame-flush racing

В методах set_settings_wifi/set_settings_wifiAP переключение wifi происходит раньше чем закончится обработка кадра интерфейса. Веб-сокет не может закончит передачу.
TODO: отложить переключение WiFi через планировщик

FreeRTOS

Дмитро доброго дня.
Підкажіть будьласка чи є можливість використовувати фреймворк з FreeRTOS для esp32?
За замовчуваням для 32-гої серії ардуіна вже йде з таском loop().
Коли в example/sensor_02 намагався створити xTaskCreate... не має.
Того Shedulera мені недостатньо, бо хотілося б затримки в тілі таска.

Удаленный апдейт.

Хотелось бы иметь возможность апдейтить поделки на фреймворке с удаленного хоста.
Предполагается, что пользователь фреймворка сам создает себе хост и размещает на нем свои бинари, под конкретно свой проект на фреймворке. Ссылку на хост-папку апдейтов предполагается задавать дефайном при сборке проекта.

Примерные наработки на эту тему тут, у Алекса Морозова
https://youtu.be/XCnZeeHn8GQ

Возможность закрыть паролем настройки.

Очень не хватает возможности закрывать паролем настройки. Важно для отцов продвинутых детишех, сыновей "современных" дедушек и бабушек.
В оригинальной jeeUI такая возможность была.
Спасибо.

Не збирається

NAME="Linux Mint"
VERSION="21.2 (Victoria)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 21.2"
VERSION_ID="21.2"

Visual Studio Code

Завантажив через 'git clone'. Відкрив в VS Code.
` * Executing task: platformio run

Processing esp8266dev (platform: [email protected]; board: nodemcuv2; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 (2.6.3) > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:

  • framework-arduinoespressif8266 @ 3.20704.0 (2.7.4)
  • tool-esptool @ 1.413.0 (4.13)
  • tool-esptoolpy @ 1.30000.201119 (3.0.0)
  • toolchain-xtensa @ 2.40802.200502 (4.8.2)
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 46 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- FastLED @ 3.4.0+sha.2fe6aeb
    |-- DFRobotDFPlayerMini @ 1.0.5+sha.bc15936
    |-- EmbUI @ 2.7.0+sha.71b684f
    |-- microDS18B20 @ 1.1
    |-- GyverButton
    |-- EncButton
    |-- TM1637 Driver @ 2.1.0
    |-- ESP Async WebServer @ 1.2.3+sha.c49d7c1
    |-- ArduinoJson @ 6.21.3
    |-- iarduino RTC (часы реального времени) @ 1.3.4
    |-- ESPAsyncE131-wled
    |-- arduinoFFT @ 1.9.1
    |-- EspSoftwareSerial @ 6.8.5
    |-- ArduinoOTA @ 1.0
    Building in release mode
    Compiling .pio/build/esp8266dev/lib694/FastLED/FastLED.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/bitswap.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/colorpalettes.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/colorutils.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/hsv2rgb.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/lib8tion.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/noise.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/platforms.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/platforms/esp/32/clockless_rmt_esp32.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/power_mgt.cpp.o
    sh: 1: Syntax error: "(" unexpected
    Compiling .pio/build/esp8266dev/lib694/FastLED/wiring.cpp.o
    sh: 1: Syntax error: "(" unexpected
    *** [.pio/build/esp8266dev/lib694/FastLED/FastLED.cpp.o] Error 2
    Compiling .pio/build/esp8266dev/src/DS18B20.cpp.o
    *** [.pio/build/esp8266dev/lib694/FastLED/bitswap.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/colorpalettes.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/colorutils.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/hsv2rgb.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/lib8tion.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/noise.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/platforms.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/platforms/esp/32/clockless_rmt_esp32.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/power_mgt.cpp.o] Error 2
    *** [.pio/build/esp8266dev/lib694/FastLED/wiring.cpp.o] Error 2
    sh: 1: Syntax error: "(" unexpected
    *** [.pio/build/esp8266dev/src/DS18B20.cpp.o] Error 2
    ===================================================================================== [FAILED] Took 1.86 seconds =====================================================================================

Environment Status Duration


esp8266dev FAILED 00:00:01.864
=============================================================================== 1 failed, 0 succeeded in 00:00:01.864 ===============================================================================

  • The terminal process "platformio 'run'" terminated with exit code: 1.
  • Terminal will be reused by tasks, press any key to close it. `

Not compatible with current ArduinoJSON library

Not compatible with current ArduinoJSON library:

c:\Users\xxx\Documents\Arduino\libraries\EmbUI\src\ui.cpp:103:40: error: 'class ArduinoJson::V6212PB::JsonArray' has no member named 'getElement'
103 | while (!section_stack.end()->block.getElement(idx) && idx){

fatal: not a git repository

Добрий день. Підкажіть будьласка esp32c3, esp8266 білдяться а esp32 не білдиться. На трьох ноутах намагався.
Відкрив папку example/sensor_02 додав /data

PACKAGES:

  • framework-arduinoespressif32 @ 3.20004.220825 (2.0.4)
  • tool-esptoolpy @ 1.30300.0 (3.3.0)
  • toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
    fatal: not a git repository (or any of the parent directories): .git
    .........
    In file included from src/interface.cpp:2:
    .pio/libdeps/esp32_dev_debug/EmbUI/src/EmbUI.h: In constructor 'EmbUI::EmbUI()':
    .pio/libdeps/esp32_dev_debug/EmbUI/src/EmbUI.h:317:14: error: 'LittleFS' was not declared in this scope
    , ftpSrv(LittleFS)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.