Forum: Mikrocontroller und Digitale Elektronik ESP flashen via Funk ?


von Helmut H. (hheck)


Lesenswert?

Hallo zusammen,
habe folgende Konstellation:
Auf meinem Dachboden wirkt ein ESP12 und schaltet PV-Module zwischen 
Wechselrichter und Akku hin ud her, je nach Daten von einem Shelly 3EM 
im Keller am Zählerkasten. Ein weiterer ESP01 liest die Aktionen vom 
ESP12 über
serial und sendet die an einen 3. ESP an meinem Schreibtisch bzw PC.
Für jede Anpassung/Änderung des Sketches im ESP12 muß ich nun auf den 
Speicher krabbeln, die Platine mit dem ESP12 ausbauen, zurück am PC neu 
flashen, auf den Speicher zurückbringen und wieder einbauen.
Das brachte mich zu folgender Frage:
Wenn ich den Reset und den GPI00 vom ESP12 mit Ports des ESP01 verbinde, 
müßte der den ESP12 in den Prog-Modus setzen können.
Wenn ich dann dem ESP01 den neuen Sketch via Funk als drahtlose 
Verlängerung der serial-Verbindung schicke, und der das unverändert an 
den ESP12 weiterleitet, dann müßte ich doch den ESP12 praktisch "in 
Vito" flashen können.
Oder?
Gruß
Helle

von Jens M. (dl4aas) Benutzerseite


Lesenswert?

Ich denke, das Stichwort heißt OTA!

Flashen per Weboberfläche auf dem ESP.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

OTA Update nicht möglich?
Der ESP bringt alles dafür mit.

von Oliver R. (orb)


Lesenswert?

Üblicherweise würde man auf dem ESP12 OTA, d.h. OverTheAir-Update 
einrichten.
Warum der ESP12 nicht auch die Funktion des 2.ESP übernehmen und dem 
3.ESP seinen Status mitteilen kann, hab ich aber nicht verstanden.

von Helmut H. (hheck)


Lesenswert?

Oliver R. schrieb:

> Warum der ESP12 nicht auch die Funktion des 2.ESP übernehmen und dem
> 3.ESP seinen Status mitteilen kann, hab ich aber nicht verstanden.

Nun, die Verbindung zum Shelly ist eine HTTP-Abfrage, Die Verbindung zum 
ESP01 ist via ESPNOW. Ursprünglich hatte ich versucht, beides in einem 
Sketch unterzubringen, das hat aber kollidiert. ESPNOW hat nix mehr 
gesendet!
OTA ist genau das, was ich wünsche, muß ich aber erst noch lernen, wie 
das geht.

Dank Euch,
Helle

von Monk (roehrmond)


Lesenswert?

Helmut H. schrieb:
> den ESP12 in den Prog-Modus setzen ... dann ... den neuen Sketch
> ... unverändert an den ESP12 weiterleitet, dann müßte ich doch
> den ESP12 praktisch "in Vito" flashen können.

Ganz so einfach ist es nicht. Du hast richtig erkannt, dass du durch die 
I/O Pins den Bootloader aktivieren kannst. Danach wird ein kleines 
Programm namens "stub" in das RAM des ESP geladen und ausgeführt. Dieser 
Stub holt sich dann den eigentlichen Sketch und speichert ihn in den 
Flash Speicher. Der Stub erfordert eine bidirektionale Kommunikation zum 
PC.

von Helmut H. (hheck)


Lesenswert?

Ja, Monk,
man braucht natürlich die Tx und die Rx Verbindung, ist aber kein Prob 
bei ESPNOW. Funktioniert die Verbindung in beiden Richtungen, ist das 
identisch mit dem Zustand, als seien das durchgängig Kabel.
Jetzt schaue ich mir erstmal das OTA an.
Das geht aber wohl nicht mit ESPNOW....

von Heinz R. (heijz)


Lesenswert?

schau Dir evtl. mal ESPEasy an?
Ich bin mir rel. sicher das Du mit den dort verfügbaren Rules die 
Steuerung auch abbilden kannst

von Dieter S. (hotsystems)


Lesenswert?

Helmut H. schrieb:
> Jetzt schaue ich mir erstmal das OTA an.
> Das geht aber wohl nicht mit ESPNOW....

Auch das funktioniert zusammen. Und OTA ist einfach aufzubauen, wenn man 
sich an die zahlreichen Beispiele hält.

Und wenn du dir den ESP01 sparen möchtest, dann kannst du auch vom ESP12 
per UDP deine Informationen senden. Da UDP keine automatische Quittung 
sendet, einfach mehrfach senden oder ein eigenes Protokoll mit UDP 
aufbauen, das quittiert.

von Helmut H. (hheck)


Angehängte Dateien:

Lesenswert?

Hab jetzt ma die OTA in meinen Sketch eingebaut und markiert.
Wenn ich alles OTA-markierte auskommentiere, funzt der Rest einwandfrei.
Mit dem OTA-Gedöns funzt das OTA der ESP12 verbindet sich mit meinem 
Heimnetz
"XXXXXX", bekommt eine IP, der OTA-Port wird im IDE angeboten, aber der 
HTTP-Abruf geht nicht mehr (HTTP-Code = 0).

von Hadmut F. (hadmut)


Angehängte Dateien:

Lesenswert?

Ich mach das mit

#include <ESP8266WebServer.h>
#include <ESP8266HTTPUpdateServer.h>

ESP8266WebServer server(80);
ESP8266HTTPUpdateServer httpUpdater;

httpUpdater.setup(&server,"/up");

klappt problemlos.

: Bearbeitet durch User
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.