VerwendeteArduino
IDE-Version: 1.8.10 Notwendige Bibliotheken: WiFi.h, ESPmDNS.h,
WiFiUdp.h, ArduinoOTA.h Zusätzlicher Boardverwalter für das
ESP32-DevKit V4:
https://dl.espressif.com/dl/package_esp32_index.json
Nachfolgend ist der Quellcode eines Testprogrammes für das
Übertragen des Arduino Codes via WLAN auf das ESP-32-DevKit V4
angefügt. OTA steht im nachfolgenden für "Over
The Air".
Als Aktion wird
testweise eine LED zum blinken gebracht. Die WLAN-Verbindung
wird dabei über die Fritz-Box im Raum LI041 hergestellt. Dies
ermöglicht, im gegensatz zur "alten Methode" den gleichzeitigen
Zugang auf das Internet und die Übertragung auf den MalRob-FG ohne
Ändern der Verbindung. Als Restriktion gilt hier, dass ein Zugang
zum WLAN ohne Anmeldeseite möglich ist (Nutzung des KA-WLAN ist
daher nicht möglich).
Diese Programm muss einmalig per USB
auf das ESP-32-DevKit V4 übertragen werden, bei jeder nachflogenden
OTA-Übertragung ist dieser Code einzufügen.
//einbinden
der Bibliotheken #include <WiFi.h> #include <ESPmDNS.h>
#include <WiFiUdp.h> #include <ArduinoOTA.h>
//WLAN
Einstellungen const char* ssid = "*************";
//SSID des Routers eintragen const char* password =
"******************";
//Passwort des Routers eintragen
//Setup Code void
setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA); WiFi.begin(ssid,
password); while (WiFi.waitForConnectResult()
!= WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart(); }
ArduinoOTA
.onStart([]() { String
type; if
(ArduinoOTA.getCommand() == U_FLASH)
type = "sketch"; else
// U_SPIFFS
type = "filesystem";
// NOTE: if updating SPIFFS this would be the place to unmount
SPIFFS using SPIFFS.end()
Serial.println("Start updating " + type); })
.onEnd([]() { Serial.println("\nEnd");
}) .onProgress([](unsigned int progress,
unsigned int total) { Serial.printf("Progress:
%u%%\r", (progress / (total / 100))); })
.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("Ready"); Serial.print("IP
address: "); Serial.println(WiFi.localIP());
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//setup hier
pinMode(15, OUTPUT);
//Pin 15 fuer LED
} //end setup
//Main loop void loop() {
ArduinoOTA.handle();
//aufrufen der OTA Funktion
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//loop hier
digitalWrite(15, HIGH);
//LED ein delay(500);
//Wartezeit 500 ms digitalWrite(15, LOW);
//LED aus delay(500);
//Wartezeit 500 ms
} //end loop
|