Skip to content

Instantly share code, notes, and snippets.

@loginov-rocks
Last active January 13, 2022 17:18
Show Gist options
  • Save loginov-rocks/cb05853f007baffa3f6ad5136fe81fc9 to your computer and use it in GitHub Desktop.
Save loginov-rocks/cb05853f007baffa3f6ad5136fe81fc9 to your computer and use it in GitHub Desktop.
DIY Connected Espresso Machine: Over-the-Air Updates (Part 6) - setupOtaUpdates
#include "ArduinoOTA.h"
// ...
#define OTA_UPDATES_HOSTNAME "connected-espresso-machine"
// ...
/**
* @see https://github.com/esp8266/Arduino/blob/master/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino
*/
void setupOtaUpdates()
{
Serial.println("Setup Over-the-Air Updates...");
ArduinoOTA.setHostname(OTA_UPDATES_HOSTNAME);
ArduinoOTA.onStart([]()
{
String type;
if (ArduinoOTA.getCommand() == U_FLASH)
{
type = "sketch";
}
else
{
// U_FS
type = "filesystem";
}
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
Serial.println("Start updating " + type);
});
ArduinoOTA.onEnd([]()
{ Serial.println("\nEnd"); });
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)
{ Serial.printf("Progress: %u%%\r", (progress / (total / 100))); });
ArduinoOTA.onError([](ota_error_t error)
{
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR)
{
Serial.println("Auth Failed");
}
else if (error == OTA_BEGIN_ERROR)
{
Serial.println("Begin Failed");
}
else if (error == OTA_CONNECT_ERROR)
{
Serial.println("Connect Failed");
}
else if (error == OTA_RECEIVE_ERROR)
{
Serial.println("Receive Failed");
}
else if (error == OTA_END_ERROR)
{
Serial.println("End Failed");
}
});
ArduinoOTA.begin();
Serial.println("Over-the-Air Updates setup was successful!");
}
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment