Forum: Mikrocontroller und Digitale Elektronik ArduinoOTA und Schrödingers Katze


von Janina (Gast)


Lesenswert?

Hi,

ich habe eigentlich ein ziemlich einfaches Script um meine ESP32 via OTA 
zu flashen.

1
#include <Arduino.h>
2
3
//OTA/Appsize beachten...
4
#include <WiFi.h>
5
#include <WiFiClientSecure.h>
6
#include <ESPAsyncWebServer.h>
7
8
#include <ArduinoOTA.h>
9
10
#include "FS.h"
11
#include "SPIFFS.h"
12
#define FORMAT true
13
14
#define OTA_NAME "TEST-DEVICE"
15
#define PASSWORD "TestPWD"
16
17
void handleWiFi(); void testWiFi();
18
19
20
const char* ssid = "xxxx";
21
const char* pass = "xxxx";
22
23
24
WiFiClientSecure clientTCP;
25
AsyncWebServer server(80);
26
27
28
void setup() {
29
  Serial.begin(115200);
30
  Serial.println();
31
32
  if(!SPIFFS.begin(true)){
33
    Serial.println("SPIFFS Mount Failed");
34
  }
35
  if(FORMAT)
36
    SPIFFS.format();
37
  
38
39
  handleWiFi();
40
41
  ArduinoOTA.setHostname(OTA_NAME);
42
  //ArduinoOTA.setPassword(PASSWORD);
43
  ArduinoOTA.begin();
44
}
45
46
47
48
void loop(void) {
49
  ArduinoOTA.handle();
50
  delay(1);
51
}
52
53
void handleWiFi() {
54
  WiFi.mode(WIFI_STA);
55
  WiFi.begin(ssid, pass);
56
  Serial.println();
57
58
  while (WiFi.status() != WL_CONNECTED) {
59
    delay(500);
60
    Serial.print(".");
61
  }
62
  Serial.println();
63
64
  if (WiFi.status() == WL_CONNECTED) {
65
    Serial.println("erfolgreich verbunden");
66
67
    Serial.println();
68
    Serial.print("Connected to ");
69
    Serial.println(ssid);
70
    Serial.print("IP address: ");
71
    Serial.println(WiFi.localIP());
72
  }
73
74
  server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
75
    request->send(200, "text/plain", "OK");
76
  });
77
78
  server.begin();
79
  Serial.println("HTTP server started");
80
}

jetzt zu Schrödingers Katze. Wenn ich mein ESP beobachte und Serial ran 
hänge...

d.h. ich beobachte COM5 und schreibe auf 192.168.... dann funktioniert 
das OTA. Wenn ich aber nicht beobachte und keine Serielle Verbindung 
habe, kann ich nicht flashen. Der Fehler:
[ERROR]: No response from the ESP

in der Fritzbox wird er aber erkannt, d.h. er hat eine WiFi-Verbindung. 
Hat jemand ne Idee was ich falsch gemacht haben könnte?

Danke :)

von ahnung slooser (Gast)


Lesenswert?

Und was hat das Ganze jetzt mit Schrödingers Katze zu tun?

von J. T. (chaoskind)


Lesenswert?

ahnung slooser schrieb:
> Und was hat das Ganze jetzt mit Schrödingers Katze zu tun?

Das der Fehler scheinbar mit dem hingucken/nicht hingucken korreliert.

von Info (Gast)


Lesenswert?

GND Verbindung fehlt.

von Sven K. (quotschmacher)


Lesenswert?

aber das http get auf die ip funktioniert auch ohne seriell?

von Michael U. (amiga)


Lesenswert?

Hallo,

mal Deinen Sketch auf einen ESP32 D1 mini geflasht.
OTA flashen geht in jeder Lebenslage stabil, auch ohne PC mit Powerbank 
als Stromversorgung

Janina schrieb:
> d.h. ich beobachte COM5 und schreibe auf 192.168.... dann funktioniert
> das OTA. Wenn ich aber nicht beobachte und keine Serielle Verbindung
> habe, kann ich nicht flashen. Der Fehler:
> [ERROR]: No response from the ESP

Wie machst Du das? Mit einem getrennten Terminalprogramm?
Die ArduinoIDE schließt den seriellen Monitor doch sowieso wenn man als 
Port den OTA-Port auswählt.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Janina (Gast)


Lesenswert?

Hi, konnte das Problem lösen...

ich hatte einen Wackelkontakt auf der Platine, und als ich den Stecker 
drauf gedrückt habe, hat sich dieser zu einer Stabilen Verbindung 
(zwischen ESP und Platine) aufgebaut. Nachlöten hat geholfen :)

...

zum Testaufbau (falls es Interesse gibt).
Ich flashe mit PlatformIO (übers Netzwerk) und mit einem anderen Rechner 
(hier nicht notwendigerweise mit Arduino IDE) schau ich was der Chip 
macht (Serielle Verbindung).


Danke für jeden Tipp... konnte das Problem lösen :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.