ESP32_ChinaDieselHeater_Con.../lib/esp32FOTA
Ray Jones 08d0307fc8 BUG FIX: Web update was broken due to watchdog timeout - added onProgress to FOTA - all good now
Returned to compact timer icon, press centre button to see start/stop times in base menus
Version info screen refactored to show available version number
New splash screen now presented upon display for a short time after upload or rename to /splash.bmp
2019-08-03 12:42:49 +10:00
..
fota added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
src BUG FIX: Web update was broken due to watchdog timeout - added onProgress to FOTA - all good now 2019-08-03 12:42:49 +10:00
keywords.txt added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
library.json added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
library.properties added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
LICENSE added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
README.md added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
Readme_RLJ.txt added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00

esp32FOTA library for Arduino

Purpose

A simple library to add support for Over-The-Air (OTA) updates to your project.

Features

  • Web update (requires web server)
  • Batch firmware sync
  • Multi firmware update record
  • Stream update (e.g. MQTT or other)

How it works

This library tries to access a JSON file hosted on a webserver, and reviews it to decide if a newer firmware has been published, if so it will download it and install it.

There are a few things that need to be inplace for an update to work.

  • A webserver with the firmware information in a JSON file
  • Firmware version
  • Firmware type
  • Firmware bin

Usage

Hosted JSON

This is hosted by a webserver and contains information about the latest firmware

{
    "type": "esp32-fota-http",
    "version": 2,
    "host": "192.168.0.100",
    "port": 80,
    "bin": "/fota/esp32-fota-http-2.bin"
}

Firemare types

Types are used to compare with the current loaded firmware, this is used to make sure that when loaded the devie will still to the intended job.

As an example a device used as a data logger should ony be updated with new versions of the data logger.

examples
  • TTGO-T8-ESP32-Logger
  • TTGO-T8-ESP32-Temp
  • TTGO-T8-ESP32-Relay

Sketch

In this example a version 1 of 'esp32-fota-http' is in use, it would be updated when using the JSON example.

#include <esp32fota.h>
#include <WiFi.h>

const char *ssid = "";
const char *password = "";

esp32FOTA esp32FOTA("esp32-fota-http", 1);

void setup()
{
  esp32FOTA.checkURL = "http://server/fota/fota.json";
  Serial.begin(115200);
  setup_wifi();
}

void setup_wifi()
{
  delay(10);
  Serial.print("Connecting to ");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
}

void loop()
{
  bool updatedNeeded = esp32FOTA.execHTTPcheck();
  if (updatedNeeded)
  {
    esp32FOTA.execOTA();
  }
  delay(2000);
}