Add AndroidOTA

This commit is contained in:
x 2024-06-20 20:47:50 +02:00
parent f12fbafc47
commit 68914621ee

View file

@ -1,5 +1,6 @@
#include <Arduino.h> #include <Arduino.h>
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#include <ArduinoOTA.h>
#define RELAY 4 // GPIO4 #define RELAY 4 // GPIO4
#define WIFI_NAME "TechInc" #define WIFI_NAME "TechInc"
@ -7,6 +8,8 @@
#define HTTP_HOST "google.com" #define HTTP_HOST "google.com"
#define HTTP_PORT (80) #define HTTP_PORT (80)
void ensureWiFiConnection();
bool testHTTP() { bool testHTTP() {
WiFiClient client; WiFiClient client;
client.setNoDelay(true); client.setNoDelay(true);
@ -18,10 +21,47 @@ bool testHTTP() {
// Returns true if Internet works // Returns true if Internet works
bool uplinkWorks() { return testHTTP(); } bool uplinkWorks() { return testHTTP(); }
void setupOTA() {
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();
}
void setup() { void setup() {
Serial.begin(9600); Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
pinMode(RELAY, OUTPUT); pinMode(RELAY, OUTPUT);
ensureWiFiConnection();
setupOTA();
} }
void relayOn() { void relayOn() {
@ -63,8 +103,12 @@ void ensureWiFiConnection() {
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
} }
} }
void loop() { void loop() {
ensureWiFiConnection(); ensureWiFiConnection();
testInternet(); testInternet();
delay(5000); for (size_t i = 0; i < 5; i++) {
ArduinoOTA.handle();
delay(1000);
}
} }