ESP8266 IoT Framework

In this project I make a framework for new ESP8266 projects, implementing HTTPS requests, a React web interface and a configuration manager

Similar projects worth following

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, a WiFi manager, a configuration manager 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 from a JSON file, 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.

Wifi settings

Configuration manager

Firmware updates

File manager

  • HTTPS Requests

    Maakbaas05/31/2020 at 13:39 0 comments

    Fetching or posting data to the internet is one of the core tasks of an IoT device. Doing so over HTTP is implemented quite well in the default ESP8266 Arduino libraries, but for HTTPS requests things are more difficult. In this post I will discuss the most common approaches used by the community, and develop my own method to do arbitrary HTTPS requests in a secure way. This method will not require any specific certificates or fingerprints to be manually coded in the application.

    Full log (

  • Configuration Manager

    Maakbaas05/24/2020 at 14:25 0 comments

    No matter what function your ESP8266 might have, it is quite likely that you want to change some settings or parameters while the device is in use. Like for example the speed of a motor, or the color of a LED. The configuration manager presented here provides a method to easily define these tuneable parameters in a JSON file. The code to change parameters from the browser and store them into EEPROM memory is generated automatically.

    Full log (

  • WiFi Manager

    Maakbaas05/16/2020 at 09:34 0 comments

    A crucial component for the ESP8266 IoT framework is a WiFi manager. It is not difficult to connect an ESP8266 to a WiFi network with the standard Arduino libraries if you manually enter your credentials in your code. But of course that is not how we want to approach it here. The WiFi manager should allow the user to enter the right WiFi details in the browser, and try to connect to that network automatically.

    Full log (

  • Web Server

    Maakbaas05/10/2020 at 14:25 0 comments

    The first component I will discuss is the web server which presents the web interface to configure WiFi and other settings from the browser. This web interface is developed in React, and communicates with the ESP8266 through an API. Webpack is used to merge the GUI content into a single gzipped file, which is automatically converted into a byte array and stored in the ESP8266 PROGMEM, avoiding the need for SPIFFS.

    Full log (

  • Framework Introduction

    Maakbaas05/05/2020 at 17:10 0 comments

    Most projects I do with the ESP8266 require an internet connection. If this would not be needed I would probably use something else like an Arduino for that project. Most of these Internet of Things (IoT) projects require a common set of functions to deal with for instance WiFi connections and HTTP(S) requests. For some of this I already have a few snippets of code, but these are neither robust nor elegant. Therefore I decided to develop a custom framework for the ESP8266. Here I will discuss its requirements.

    Full log (

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates