/*
*/
#include <WiFi.h>
#include <HTTPClient.h>
// Important Notice: Please enable log outputs. Tools->Core Debug Level->Debug
#include <Arduino.h>
#include <otadrive_esp.h>
#include <WiFi.h>
#define APIKEY "1b33da09-2bc4-409b-b85d-6e0ebcdc3" // OTAdrive APIkey for this product
#define FW_VER "[email protected]" // this app version
#define LED 2
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
// put function declarations here:
void onUpdateProgress(int progress, int totalt);
void print_mac(const unsigned char *mac) {
printf("%02X:%02X:%02X:%02X:%02X:%02X\n", mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
}
void setup()
{
// Important Notice: Please enable log outputs. Tools->Core Debug Level->Debug
Serial.begin(115200);
pinMode(LED, OUTPUT);
Serial.println("try connect wifi");
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED)
{
Serial.println(".");
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(400);
}
unsigned char mac_base[6] = {0};
esp_efuse_mac_get_default(mac_base);
printf("MAC Address: ");
print_mac(mac_base);
const unsigned char *mac;
printf("%02X:%02X:%02X:%02X:%02X:%02X\n", mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
Serial.println("WiFi connected");
OTADRIVE.setInfo(APIKEY, FW_VER);
OTADRIVE.onUpdateFirmwareProgress(onUpdateProgress);
}
void loop()
{
Serial.println("Loop: Application version %s");
Serial.println(FW_VER);
if (WiFi.status() == WL_CONNECTED)
{
// Every 30 seconds
if (OTADRIVE.timeTick(30))
{
// retrive firmware info from OTAdrive server
auto inf = OTADRIVE.updateFirmwareInfo();
// update firmware if newer available
if (inf.available)
{
//Serial.println("\nNew version available, %dBytes, %s\n", inf.size, inf.version.c_str());
OTADRIVE.updateFirmware();
}
else
{
Serial.println("\nNo newer version\n");
}
}
}
delay(5000);
}
// put function definitions here:
void onUpdateProgress(int progress, int totalt)
{
static int last = 0;
int progressPercent = (100 * progress) / totalt;
Serial.print("*");
if (last != progressPercent && progressPercent % 10 == 0)
{
// print every 10%
Serial.printf("%d", progressPercent);
}
last = progressPercent;
}