Framework for IoT projects implementing HTTPS requests, a React web interface, WiFi manager, live dashboard, configuration manager, file manager and OTA updates.
[!IMPORTANT]
Archive notice
As of now (February 2024) this code is still functional and has reached a high level of maturity thanks to all your input in more than 100 closed issues and 50 pull requests. I have archived this repository due to a shift in priorities. Thanks for using this project, and keep building and making!
The ESP8266 IoT Framework is a set of modules to be used as a starting point in new ESP8266 projects, implementing HTTPS requests, a React web interface, WiFi manager, configuration manager, live dashboard and OTA updates.
The unique advantage of this framework is that code generation at build time is used to provide different benefits. Code generation is used to dynamically generate a configuration struct and a live dashboard from JSON files, to incorporate the web interface into PROGMEM in the firmware and to bundle a full root certificate store in PROGMEM that allows the ESP8266 to do secure HTTPS requests to arbitrary URLs.
Details beyond the documentation can be found at maakbaas.com.
If you are new to PlatformIO, start with the installation guide. Otherwise, simply start a new project for your ESP8266, and add the following line to your platformio.ini
file:
lib_deps = ESP8266 IoT Framework
Take one of the examples as a starting point to develop your application.
The framework consists of five main parts. A web server including the interface it’s serving, a WiFi manager, a configuration manager and classes for HTTP requests and OTA updates. The architecture of the framework is shown in the following diagram:
Architecture of the framework shown in blue
The basic principles used in developing this framework are:
In short, the framework aims to be unobtrusive, easy to deploy, with a modern web interface that’s easy to modify and expand for different projects 😃.
Note: The ESP32 is not supported by this framework right now, due to the reliance on BearSSL. BearSSL is part of the ESP8266 Arduino libraries, but not part of the ESP32 Arduino libraries. Also, many functionalities of this framework are supported by ESP-IDF for the ESP32. Therefore my recommendation would be to use ESP-IDF and I don’t see enough added value in porting this framework. See also here: https://github.com/maakbaas/esp8266-iot-framework/issues/142#issuecomment-1315662434