Ich hab es nicht weiter verfolgt, hängt in der Warteschleife - siehe Issues #21 und #16. Es könnte an meinem Android Chrome Browser liegen, muss das noch mal mit einem anderen Gerät testen.
https://github.com/gb88/BLEOTA/issues/21
Ich hab nun erstmal das ElegantOTA Lite verwendet, das geht über WLAN.
Dazu die folgenden Libraries installieren:
Dann in %UserProfile%\Documents\Arduino\libraries\ElegantOTA\src\ElegantOTA.h diese Zeile von 0 auf 1 ändern, sonst macht der Linker Probleme:
1 |
#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1
|
Um das AsyncDemo.ino Sketch umzuschreiben von Client auf AP muss man nur die folgenden Zeilen ändern.
Das raus löschen:
1 |
<! WiFi.mode(WIFI_STA);
|
2 |
<! WiFi.begin(ssid, password);
|
3 |
<! Serial.println("");
|
4 |
<!
|
5 |
<! // Wait for connection
|
6 |
<! while (WiFi.status() != WL_CONNECTED) {
|
7 |
<! delay(500);
|
8 |
<! Serial.print(".");
|
9 |
<! }
|
10 |
<! Serial.println("");
|
11 |
<! Serial.print("Connected to ");
|
12 |
<! Serial.println(ssid);
|
13 |
<! Serial.println(WiFi.localIP());
|
und durch das ersetzen:
1 |
!> WiFi.mode(WIFI_AP);
|
2 |
!> WiFi.softAP(ssid, password);
|
3 |
!> Serial.println("Access Point started");
|
4 |
Serial.print("IP address: ");
|
5 |
!> Serial.println(WiFi.softAPIP());
|
Dann kann man sich verbinden, geht auf http://192.168.4.1/update und lädt die %Temp%\arduino\sketches\6C73C7CAA43FACF93DFB43A7254684DB\AsyncDemo.ino.bin hoch, geht schneller als Bluetooth.
In der main loop() ist nur eine Zeile. Die blockt bis zu 100ms könnte man noch auslagern in einen Task.
Passwort steht als Klartext im Sketch, könnte man sicher noch base64 maskieren aber ich denke das reicht mir so als Sicherheit.
1 |
const char* ssid = "ESP32";
|
2 |
const char* password = "12345678";
|