OTA - Over the Air - Programmazione ESP tramite WLAN

Hai mai finito di finire un progetto e poi si è scoperto molto più tardi, che potrebbe essere un errore nel programma o che potrebbe essere completato?

Allora si dice che tutto deve essere riesaminato, collegare gli adattatori di programmazione, programmare, riassemblare e sperare di aver programmato senza errori questa volta, o la nuova funzione funziona senza problemi.

I programmatori degli Findige hanno scritto un programma che possiamo usare per i moduli ESP (ESP8266 e ESP32) e con cui possiamo utilizzare l'interfaccia WLAN integrata per programmare. Il programma si chiama ArduinoOTA.

Per utilizzare la funzione OTA, è necessario prima federare una libreria, fare in modo che coinvolgiamo nella gestione delle librerie sotto Sketch > Gestione della libreria. Gestione delle librerie

Nell'amministrazione della biblioteca, stiamo scegliendo "OTA" come termine di ricerca, scegliendo nell'elenco ArduinoOTA e installiamo il pacchetto. Dopo un breve lasso di tempo, l'INSTALLED sembra funzionare quando tutto funziona.

 

Come passo successivo, abbiamo bisogno di un po' di pitone per la programmazione. In questo caso OTA scrive la versione 2.7. In caso contrario, i 3.x non funzionano, almeno in questo momento, non lo sono.

Il Python può essere scaricato su python.org. Questo è il link per:

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

Il software è disponibile anche per MAC e Linux.

Quando si scarica, installiamo il software. Ci stiamo facendo fare clic sul software e dobbiamo essere molto importanti per il Costomize Python. "Add python.exe to Path" abilitarlo per l'installazione di.

Successivamente, il computer deve essere riavviato perché altrimenti si verifica un errore nel software Arduino (Python non è stato trovato).

Ora che tutto questo e' pronto, possiamo usare un ESP8266-01S con l'OTA e usarlo.

Stiamo avviando la Arduino IDE e andremo al file > Esempi > ArduinoOTA > BasicOTA

All'inizio dobbiamo iscarci le nostre informazioni sul WLAN:

const char* ssid = "..........";
const char* password = "..........";

Questo è il codice che dobbiamo inserire nel nostro programma in futuro, e molto importante è la riga ArduinoOTA.handle (); non remoto. Se ciò dovesse accadere, il prossimo programmatore deve essere riprodotto con il programma attraverso l'interfaccia seriale.

void loop() {   ArduinoOTA.handle();
}

E' anche possibile dare un nome al dispositivo:

  ArduinoOTA.setHostname("myesp8266");

 Oppure inserire una password:

  ArduinoOTA.password("admin");

 Queste due righe sono commentate in void setup.

 

Ora, se la programmazione è stata completata e l'ESP8266 è collegato al WLAN, nel software Arduino ci sarà una nuova voce (evtl.). è necessario riavviare il software Arduino:

 

Il gruppo di menu "Interfacce di rete" è un ESP8266-ac96ae at 192.168.31.117. Il nome kryptico "ac96ae" è un indirizzo MAC del modulo. Questo è il modulo che abbiamo scelto.

Ora, il software Arduino può essere utilizzato proprio come ha fatto finora, ma solo che la programmazione non si fa più sull'interfaccia seriale COM, ma direttamente sulla rete. Ma ciò significa anche che, per errore, possiamo programmare un modulo sbagliato. Per questo motivo, è necessario avere nomi univoci sotto il nome host e evtl. Utilizzare una password sicura.

Vorremmo che la programmazione si realizzi e si riesca a portare a buon lavoro i vostri progetti.

 

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

Post di blog consigliati

  1. Installa ESP32 ora dal gestore del consiglio di amministrazione
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - Programmazione ESP tramite WLAN

Prodotti consigliati