OTA - Over the Air - ESP Programmeren via Wi-Fi

Heb je ooit eerder een project voltooid en pas veel later ontdekt dat het een fout in het programma is of kan worden toegevoegd a an een functie?

Dan zegt het: alles opnieuw demonteren, programma adapters verbinden, opnieuw samenstellen en hopen dat deze keer zonder fouten geprogrammeerd zijn of de nieuwe functie soepel verloopt.

In zo'n geval hebben ingenieuze programmeurs een programma geschreven dat we kunnen gebruiken voor de ESP-modules (ESV8266 en ESP32) en waarmee we de geïntegreerde WLAN-interface voor de programmering kunnen gebruiken.Het programma heet ArduinoOTA.

Om de OTA-functie te kunnen gebruiken, moeten we eerst een bibliotheek integreren, om dit te doen gaan we naar de bibliotheekadministratie onder Sketch > library's integreren > bibliotheken beheren

In de bibliotheekadministratie voeren we "OTA" in als zoekterm aan de rechterbovenzijde, selecteer ArduinoOTA in de lijst en installeer het pakket.Na een korte tijd verschijnt INSTALLEERD als alles heeft gewerkt.

 

De volgende stap die we nodig hebben is Python voor het programmeren.In dit geval schrijft OTA versie 2.7 voor.In geen geval gebruik de 3.x, het werkt, tenminste niet op dit moment.

Python kan worden gedownload naar python.org.Hier is de link:

https://www.python.org/downloads/

De software is ook beschikbaar voor MAC en Linux.

Na het downloaden installeren van de software.We klikken door de software en moeten, zeer belangrijk, op Costomize Python"Voeg python.exe toe aan pad"activeren zodat dit ook is geïnstalleerd.

Dan moet de computer opnieuw gestart worden, anders zal de Arduino software falen (Python niet gevonden).

Nu alles klaar is, kunnen we een ESV8266-01S gebruiken met OTA.

We starten de Arduino IDE en gaan naar Bestand > Voorbeelden > ArduinoOTA> BasicOTA

Aan het begin moeten we onze WLAN-informatie invoeren:

const char* pagina = "..........";
const char* wachtwoord = "..........";

We moeten deze hele code in ons programma opnemen in de toekomst en, het belangrijkste, de ArduinoOTA.handgreep(); regel niet verwijderen.Als dit is gebeurd, moet het volgende programmeringsproces opnieuw worden uitgevoerd met programmeurs via de seriële interface.

Leeg ren() {   ArduinoOTA.handel();
}

Optioneel kunnen we het apparaat ook een naam geven:

  ArduinoOTA.setHost("myesp8266");

Of zelfs een wachtwoord instellen:

  ArduinoOTA.setWachtwoord("administratie");

Deze twee regels worden becommentarieerd onder lege setup.

 

Nu de programmering is voltooid via de oude route en de ESV8266 is aangesloten op de WLAN, zien we een nieuwe ingang in de Arduino software onder poorten (mogelijk.een herstart van de Arduino software is noodzakelijk:

 

Een ESV8266-ac96ae op 192.168.31.117 is te vinden in de Menu Group Network Interfaces.De cryptische naam "ac96ae" is een deel van het MAC-adres van de module.We kiezen nu deze module.

Nu kan de Arduino software net als voorheen gebruikt worden, alleen dat het programmeren niet meer gebeurt via de seriële COM-interface, maar direct over het netwerk.Maar dat betekent ook dat we nu per ongeluk de verkeerde module van een afstand kunnen programmeren!Dit is de reden waarom je moet hebben duidelijke namen onder de host naam en mogelijk.gebruik een beveiligd wachtwoord.

Wij wensen u veel plezier in het programmeren en veel succes in uw projecten.

 

Grundlagen software

12 Kommentare

Solazola

Solazola

Funktioniert super!
MFG

josef

josef

mir wird der netzwerkport nicht angezeigt

Deepthroat

Deepthroat

Danke – Perfekte Anleitung – Hat alles inkl. PW funktioniert! Ich brauchte nur 5 Minuten um zu kapieren, das ich keine Verbindung bekomme weil die Stromversorgung übers USB-Kabel und nicht WLAN kommt :-)
Wenn ich das jetzt in meine restliche SW integriert bekomme fehlt mir nur noch eins: Ich möchte die IP-Adressen der CPUs an Hand der MAC-Adressen fest setzen – Und solange der Speicherplatz reicht auch die Funktionen der SW. Dann habe ich nur einen Quelltext für ca. 10 CPUs…

Dilly

Dilly

Hi, klappt super, aaber:
1.
Die IDE bekommt das Gerät nur angezeigt, wenn es neu gestartet wird WÄHREND die IDE läuft.
Anders gesagt, ein bereits laufendes Gerät muss resettet werden während die IDE gestartet ist.
OK, nervig, aber damit kann ich leben.
2.
ich habe hier viele Geräte am Start und in der IDE wird immer nur EIN Gerät angezeigt.
Um ein anderes zu bekommen müsste ich alle Geräte außer dem gewünschten Gerät abschalten!
Das geht nicht wirklich, da ich die Hausautomation damit steuere und im ganzen Haus Dutzende verteilt sind.
Mache ich was falsch? Oder ist das ein Bug? Oder ein Feature?

Devid

Devid

Danke für die Verständliche Anleitung. Hat auf Anhieb funktioniert :)
Ich finde der Upload ist sogar um einiges schneller als über USB Kabel.

Thomas

Thomas

Danke für die leicht verständlich Anleitung. Hat gut funktioniert.

Es scheint aber so, dass die Netzwerk-Schnittstelle nach dem Neustart der Arduino IDE “vergessen” wird bzw. der Sketch sich nicht mehr korrekt zu erkennen gibt. D.h. spätere Änderungen sind nur möglich, wenn man die Hardware neu startet.

wuppi

wuppi

Hi,
bei mir läuft das ganze jetzt stabil.
Ich habe folgendes benutzt:
1. Arduino SW 1.8.5, bei den neueren Versionen scheint es Probleme zu geben.
2. Python 2.7.15
3. ESP Boardverwalter 2.6.3
4. Flash Frequency 26MHz (default sind 40MHz; damit kam es zu unkontrollierten Aussetzern beim WLan und Abstürzen des OTA)

Karsten

Karsten

Jaaa, wirklich sehr interessant. Bei mir erscheint leider noch nicht einmal der Port. Habe schon (fast) alles versucht, neueste Arduino IDE 1.8.10, anderer Laptop, andere Windows-Version, anderen ESP. Bin leicht am Verzweifeln. Und nein, es ist nicht Python 3 installiert, damit soll es ja auch nicht funktionieren. PC und ESP zigmal neu gestartet. Jemand noch einen Tipp ?? Danke !

Reinhard

Reinhard

Leider funktioniert das bei mir nur soweit, dass der Port unter den Werkzeugen erscheint, die Nodemcu ist im WLAN Netz angemeldet, aber beim Versuch neu zu flshen kommt immer nur (in der IDE) : No response from device.

Bekommt man hier vllt. doch mal Hilfe???

Andreas

Andreas

Hallo,
das mit dem Netzwerkport funktioniert jetzt, warum auch immer.
Jetzt muss ja der Serielle Monitor noch über Telnet abgeholt werden. Mit Putty oder Kitty bekommen ich keine Verbindung zustande. Irgendie ist kein Port am ESP geöffnet. Wofür ist im Sketch der “ArduinoOTA.setPort(8266)” ?
Sehe keine Auswirkung auf dessen Änderung der Ports. Hochladen geht auch ohne und für Telnet ist anscheinend kein Port geöffnet. Hab auch mit einem Portscanner durchsucht ohne Erfolg. Der Standardport für Telnet, 23 , klappt auch nicht.
In Putty wir ja nur Telnet, IP Adresse und Port vorgegeben, klappt trotzdem nicht. Muss das Passwort noch irgendwo hin?
Wer kann da helfen?

Andreas

Andreas

Hi, kein Tip?
bekomme im Monitor nur die Meldung
“still running since xxx seconds” alle 5s.
Was muss ich tun um den Netzwerkport zu sehen?

Andreas

Andreas

Hi, sehr interressanter Sketch.
Bei mir fehlt aber unter “Port” der Netzwerkport. Sehe nur COMx
Woran kann es liegen? Der ESP ist im Wlan angemeldet.
Als Python habe ich das Modul Windows x86 MSI installer 2.7.15 gewählt.
Hab Win7 64b.
Muss ich mit Python noch was machen? Arduino SW 1.8.5 &Rechner ist neugestartet.

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Aanbevolen blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi

Aanbevolen producten