Back to Pretty OTA

This commit is contained in:
Carsten Graf
2025-07-26 02:03:35 +02:00
parent a85bd6227e
commit 0147ff2cd9
26 changed files with 3980 additions and 23 deletions

BIN
lib/PrettyOTA/examples/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,83 @@
#include <Arduino.h>
#include <WiFi.h>
#include <PrettyOTA.h>
const char* WIFI_SSID = "YOUR_SSID";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
AsyncWebServer server(80); // Server on port 80 (HTTP)
PrettyOTA OTAUpdates;
// Gets called when update starts
// updateMode can be FILESYSTEM or FIRMWARE
void OnOTAStart(NSPrettyOTA::UPDATE_MODE updateMode)
{
Serial.println("OTA update started");
if(updateMode == NSPrettyOTA::UPDATE_MODE::FIRMWARE)
Serial.println("Mode: Firmware");
else if(updateMode == NSPrettyOTA::UPDATE_MODE::FILESYSTEM)
Serial.println("Mode: Filesystem");
}
// Gets called while update is running
// currentSize: Number of bytes already processed
// totalSize: Total size of new firmware in bytes
void OnOTAProgress(uint32_t currentSize, uint32_t totalSize)
{
Serial.printf("OTA Progress Current: %u bytes, Total: %u bytes\n", currentSize, totalSize);
}
// Gets called when update finishes
void OnOTAEnd(bool successful)
{
if (successful)
Serial.println("OTA update finished successfully");
else
Serial.println("OTA update failed");
}
void setup()
{
Serial.begin(115200);
// Initialize WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
// Wait for successful WiFi connection
while (WiFi.waitForConnectResult() != WL_CONNECTED)
{
Serial.println("[WiFi] Connection failed! Rebooting...");
delay(3000);
ESP.restart();
}
// Print IP address
Serial.println("PrettyOTA can be accessed at: http://" + WiFi.localIP().toString() + "/update");
// Initialize PrettyOTA and set username and password for authentication
OTAUpdates.Begin(&server, "admin", "123");
// Set unique Hardware-ID for your hardware/board
OTAUpdates.SetHardwareID("UniqueBoard1");
// Set firmware version to 1.0.0
OTAUpdates.SetAppVersion("1.0.0");
// Set current build time and date
PRETTY_OTA_SET_CURRENT_BUILD_TIME_AND_DATE();
// Set custom callbacks
OTAUpdates.OnStart(OnOTAStart);
OTAUpdates.OnProgress(OnOTAProgress);
OTAUpdates.OnEnd(OnOTAEnd);
// Start web server
server.begin();
}
void loop()
{
// Give CPU time to other running tasks
delay(100);
}

View File

@@ -0,0 +1,56 @@
#include <Arduino.h>
#include <WiFi.h>
#include <ESPmDNS.h>
#include <PrettyOTA.h>
const char* WIFI_SSID = "YOUR_SSID";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
const char* DNS_ADDRESS = "myesp"; // http://myesp.local
AsyncWebServer server(80); // Server on port 80 (HTTP)
PrettyOTA OTAUpdates;
void setup()
{
Serial.begin(115200);
// Initialize WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
// Wait for successful WiFi connection
while (WiFi.waitForConnectResult() != WL_CONNECTED)
{
Serial.println("[WiFi] Connection failed! Rebooting...");
delay(3000);
ESP.restart();
}
// Print address and IP
Serial.println("PrettyOTA can be accessed at: http://" + String(DNS_ADDRESS) + ".local/update");
Serial.println("And at: http://" + WiFi.localIP().toString() + "/update");
// Setup mDNS
// You must call "MDNS.begin()" BEFORE "OTAUpdates.Begin()"
MDNS.begin(DNS_ADDRESS);
// Initialize PrettyOTA
OTAUpdates.Begin(&server);
// Set unique Hardware-ID for your hardware/board
OTAUpdates.SetHardwareID("UniqueBoard1");
// Set firmware version to 1.0.0
OTAUpdates.SetAppVersion("1.0.0");
// Set current build time and date
PRETTY_OTA_SET_CURRENT_BUILD_TIME_AND_DATE();
// Start web server
server.begin();
}
void loop()
{
// Give CPU time to other running tasks
delay(100);
}

View File

@@ -0,0 +1,49 @@
#include <Arduino.h>
#include <WiFi.h>
#include <PrettyOTA.h>
const char* WIFI_SSID = "YOUR_SSID";
const char* WIFI_PASSWORD = "YOUR_WIFI_PASSWORD";
AsyncWebServer server(80); // Server on port 80 (HTTP)
PrettyOTA OTAUpdates;
void setup()
{
Serial.begin(115200);
// Initialize WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
// Wait for successful WiFi connection
while (WiFi.waitForConnectResult() != WL_CONNECTED)
{
Serial.println("[WiFi] Connection failed! Rebooting...");
delay(3000);
ESP.restart();
}
// Print IP address
Serial.println("PrettyOTA can be accessed at: http://" + WiFi.localIP().toString() + "/update");
// Initialize PrettyOTA
OTAUpdates.Begin(&server);
// Set unique Hardware-ID for your hardware/board
OTAUpdates.SetHardwareID("UniqueBoard1");
// Set firmware version to 1.0.0
OTAUpdates.SetAppVersion("1.0.0");
// Set current build time and date
PRETTY_OTA_SET_CURRENT_BUILD_TIME_AND_DATE();
// Start web server
server.begin();
}
void loop()
{
// Give CPU time to other running tasks
delay(100);
}