OTA Flasch

Mit der neuen Arduino IDE ist auch das Flashen per Wlan möglich.

Hier eine kurze Beschreibung mit genügend Links fürs Detail.


Nochmal kurz.

  1. Auf Arduino IDE Version 1.6.7 updaten oder installieren.
  2. Phyaton 2.7 für Windows installieren. Bei der Installation Path hinzufügen aktivieren.
  3. Aus den Beispielen ArduinoOTA  BasicOTA über die Com hochladen.
  4. IDE neu starten. Dort wo die serielle Com steht kann man jetzt NetztwerkIP zuweisen.

Sollte jetzt funktionieren.

Ich war etwas verwirrt weil beim Netzwerkupload die BasicOTA überschrieben wurde. Lesen macht schlau, das ist richtig.
Der Code den man flashen möchte muss in die BasicOTA irgendwie zwischen gepackt werden. Dann kann man immer wieder.



Hier ein Beisiel für OTA: In der OTA Routine ist das eigenliche Programm das Led 2, kurz, lang blinken lässt untergebracht.

#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

const char* ssid = "Deine_SSID";
const char* password = "Dein_Passwort";
const char* host = "OTA-LEDS";

int led = 2;
#define N_DIMMERS 3
int dimmer_pin[] = {14, 5, 15};

void setup() {
   Serial.begin(115200);

   /* switch on led */
   pinMode(led, OUTPUT);
   digitalWrite(led, LOW);

   Serial.println("Booting");
   WiFi.mode(WIFI_STA);

   WiFi.begin(ssid, password);

   while (WiFi.waitForConnectResult() != WL_CONNECTED){
     WiFi.begin(ssid, password);
     Serial.println("Retrying connection...");
  }
 

 

  ArduinoOTA.setHostname(host);
 

   ArduinoOTA.onError([](ota_error_t error) { ESP.restart(); });

   /* setup the OTA server */
   ArduinoOTA.begin();
   Serial.println("Ready");

}

void loop() {
  ArduinoOTA.handle();
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(100);
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(500);
}