Skip to content

A Simple OTA web page implemented over ESPAsyncWebServer(by me-no-dev)

License

Notifications You must be signed in to change notification settings

IPdotSetAF/ESPAsyncHTTPUpdateServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP Async HTTP Update Server

This is an advanced version ESP8266HTTPUpdateServer/ESP32's HTTPUpdateServer library, modified to be compatible with ESPAsyncWebServer and also add optional Styling 🌈 to the page.

It will provide a webpage for updating the firmware/filesystem of ESP8266 or ESP32 microcontrollers.

Important

If you found this library helpful, please consider leaving a Star⭐

It helps a lot in maintaining the project ❤️

Features

  • Supports:
    • ESP8266
    • ESP32
  • Can Update:
    • Firmware
    • FileSystem
  • Styling:
    • Stylized (Additional ~350 bytes)
    • Minimal
  • Update modes:
    • Firmware + FileSystem
    • Firmware only
    • FileSystem only
  • Update route customization (default: /update)
  • Update credentials customization (default: No credentials)
    • Username
    • Password
  • FileSystem Options:
    • SPIFFS
    • LittleFS

HowTo

Install

This Library is available in Arduino Library Repository and PIO and you can install it from:

Arduino IDE Library Manager PlatformIO Libraries
Arduino library manager pltformio library

ipdotsetaf/ESPAsyncHTTPUpdateServer@^2.0.0

Setup

  1. Include the library after ESPAsyncWebServer.h
#include <ESPAsyncWebServer.h>
#include <ESPAsyncHTTPUpdateServer.h>
  1. Create an object from ESPAsyncHTTPUpdateServer
ESPAsyncHTTPUpdateServer _updateServer;
AsyncWebServer _server(80);
  1. Setup the update server before starting the webServer
_updateServer.setup(&_server);
_server.begin();

Custom Route

_updateServer.setup(&_server, "/customroute");

Credentials

_updateServer.setup(&_server, "username", "password");

or

_updateServer.setup(&_server, "/customroute", "username", "password");

Styling and Customizing OTA Page

Stylized Minimal
Stylized OTA Page Minimal OTA Page

Important

By default styling is disabled to save ~350 bytes of flash memory.

You can enable the styling by adding the -DESPASYNCHTTPUPDATESERVER_PRETTY Build Flag to your environment.

Customizing OTA Page

Important

Add the -DESPASYNCHTTPUPDATESERVER_MODE Build Flag with desired value to choose different update mode. Choose the right value based on your needs from bellow table:

Update mode value
Firmware and FileSystem 0
Firmware only 1
FileSystem only 2

Modifying Htmls

in case you liked to modify the html of any of the pages, you need to run the scripts/codeGenerator.py afterwards so html contents get processed and placed in the source.

Instructions:

  1. Make sure you have python installed
  2. In your python environment run the following
  3. pip install -r requirements.txt
  4. python codeGenerator.py

Selecting FileSystem

Important

The library's default fileSystem is SPIFFS but if you are using LittleFS for your FileSystem, make sure to add the -DESPASYNCHTTPUPDATESERVER_LITTLEFS Build Flag to your environment.

Debugging

Tip

To debug the library functionality, you can add the -DESPASYNCHTTPUPDATESERVER_DEBUG Build Flag to your environment.

This will enable the library to print logs to the Serial.

Tip

If you are using another Serial port, you can override the default serial by adding the -DESPASYNCHTTPUPDATESERVER_SerialOutput=Serial1 Build Flag to your environment.

Server Working Example

Please refer to this fully working example

TODO:

  • Custom CSS support
  • Synchronous WebServer support

Contribution

  • You can open Issues for any bug report or feature request.
  • You are free to contribute to this project by following these steps:
    1. Fork this Repo.
    2. Create a new branch for your feature/bugfix in your forked Repo.
    3. Commit your changes to the new branch you just made.
    4. Create a pull request from your branch into the master branch of This Repo(https://github.com/IPdotSetAF/ESPAsyncHTTPUpdateServer).