|
esp_iot_framework
v0.1.0-alpha
© 2026 AmakeSasha, distributed under a license Apache-2.0
|
Modules | |
| Device | |
| Public API for application development. Provides framework initialization, Wi-Fi configuration, network profile management, and system lifecycle hooks. | |
| REST API | |
| Device REST API documentation. | |
esp32 • esp32s2 • esp32s3 • esp32c2 • esp32c3 • esp32c6 esp_iot_framework_device is a foundational network node based on Espressif chips, designed for building fully manageable end IoT products. Operating on top of esp_iot_framework_core, it provides an out-of-the-box HTTP/HTTPS web server with a comprehensive REST API for remote administration alongside an optional Web Admin GUI. For an in-depth look, check out the documentation.
The web server's lifecycle is tightly synchronized with network events: it spins up automatically as soon as the device acquires an IP address and gracefully stops, freeing up system resources, if the connection is lost.
The entire server infrastructure functions via a middleware layer that handles uniform request logging and restricts access to administrative endpoints using Basic Auth (when enabled in the project). The node supports both plain HTTP and secure HTTPS (TLS), utilizing certificates and configurations persisted in NVS.
The built-in API equips your end device with a scalable suite of management capabilities:
For an in-depth look, check out the API documentation.
When the graphical interface is included in the build, its compressed static assets (HTML, CSS, JS) are embedded directly into the firmware binary. The interface is highly optimized for lightweight performance and maintains backward compatibility with legacy browsers (down to IE8 and below), except for the OTA update functionality, which requires browser support for JS file uploads.
Transforming this foundational node into an end product is achieved by registering custom URI handlers for peripherals, sensors, or relays. By placing custom endpoints within the administrative URI space (using the /_/ prefix), the node automatically applies the administrator's Basic Auth. This allows you to focus on your product's core logic without getting bogged down by low-level web server boilerplate.
To start using this framework, you must apply the settings from sdkconfig.defaults and connect it to your project. Configure your project's main CMakeLists.txt like this (replace <TEXT> with the desired values, without the <>s themselves):