3 einfache Möglichkeiten zum Programmieren eines ESP8266 12X-Moduls

Wenn Sie mit dem ESP8266-Mikrocontroller nicht vertraut sind, haben Sie das Gefühl, dass Sie ihn verpasst haben! Diese Dinge sind unglaublich: Sie sind billig, leistungsstark und haben vor allem eingebautes WiFi!

ESP8266 begann seine Reise als WiFi-Add-On-Board für traditionellere Arduino-Boards, aber kurz darauf erkannte die Community die Leistungsfähigkeit und fügte Unterstützung hinzu, um direkt mit der Arduino-IDE programmieren zu können.

Wenn Sie heutzutage einen ESP8266 für Ihr Projekt verwenden möchten, würde ich empfehlen, ein Entwicklungsboard wie das Wemos D1 Mini * (2, 50 USD geliefert !!) oder Adafruit Feather Huzzah zu verwenden. Diese Karten haben alle verwendbaren Pins herausgebrochen, sind einfach über ihren Micro-USB-Anschluss programmierbar und verfügen über einen eingebauten 3, 3-V-Regler.

Was aber, wenn Sie einen ESP8266 in einem Projekt mit einer benutzerdefinierten Leiterplatte verwenden möchten? Am einfachsten ist es, ein ESP12-Modul zu verwenden. In diesem Instructable zeige ich Ihnen einige einfache Möglichkeiten, sie zu programmieren.

* = Affiliate-Link

Schritt 1: Schauen Sie sich das Video an!

Hier ist ein Video mit allen Informationen im Instructable, wenn Sie es ausprobieren möchten.

Auf meinem Kanal arbeite ich viel mit ESP8266s, daher lohnt es sich im Allgemeinen, meinen Kanal zu überprüfen, ob Sie solche Dinge interessieren!

Schritt 2: Vorschritt: Setup für die Programmierung des ESP8266

Wenn Sie den ESP8266 oder Arduino noch nie zuvor verwendet haben, müssen Sie ein wenig Software einrichten. Ich habe ein spezielles Video dafür. Es ist nur 5 Minuten lang und durchläuft alles, was Sie zum Einrichten benötigen.

Wenn Videos nicht wirklich dein Ding sind, schau dir Lektion 2 von Beckys großartiger IoT-Klasse an, sie geht auch über alles, was du brauchst.

Bevor Sie mit dem nächsten Abschnitt fortfahren, sollten Sie in der Lage sein, eine einfache Skizze auf einen ESP8266 hochzuladen (wie das im Video und in Beckys Lektion erwähnte Blink-Beispiel).

Schritt 3: Methode 1: "Frog" Pin Programmer

Dies ist wahrscheinlich der einfachste Weg, ein ESP12-Modul zu programmieren. Sie stecken das Modul einfach in die Platine und es verhält sich dann genau wie eine der zuvor erwähnten Entwicklungsplatinen. Ich habe die Wemos D1 Mini-Karte beim Programmieren aus der Dropdown-Liste ausgewählt.

Diese Methode hat folgende Nachteile:

  • Der Programmierer ist ein bisschen teuer, wenn Sie nur ein paar Boards machen.
  • Karten können nur so programmiert werden, bevor sie auf Ihre Leiterplatte gelötet werden

Die, die ich gekauft habe, ist von Aliexpress, aber ich glaube, der ursprüngliche Designer ist ein Benutzer von Tindie namens Fred. Sie waren zu der Zeit ausverkauft, also habe ich mich für die Aliexpress entschieden, aber ich werde auf beide verlinken.

  • Aliexpress Pop-in ESP-Modulprogrammierer *
  • Fred's Frog Pin ESP Modul Programmierer

* = Affiliate-Link

Schritt 4: Methode 2: Verwenden Sie grundsätzlich jeden USB-zu-Seriell-Konverter

Für die nächste Methode werden wir das ESP-Modul manuell in den Programmiermodus versetzen und dann grundsätzlich jeden USB-Seriell-Konverter verwenden, um den ESP8266 zu programmieren, auch diesen PL2303 *, der 50c kostet, funktioniert!

Normale Operation:

Bevor wir mit der Programmierung beginnen, müssen wir uns zunächst ansehen, welche externen Komponenten der ESP8266 ausführen muss. Für den normalen Betrieb benötigt ein ESP-12-Modul Folgendes

  • EN, RST und GPIO 0 müssen mit einem 10K-Widerstand hochgezogen werden
  • GPIO 15 muss mit einem 10K-Widerstand auf Masse gezogen werden
  • 3, 3-V-Stromversorgung mit einer Stromstärke von ca. 250 mA (eine Kappe zwischen VCC und GND wird empfohlen)

Mit der obigen Konfiguration befindet sich der ESP8266 beim Einschalten im normalen Betriebsmodus, sodass alle von Ihnen programmierten Skizzen ausgeführt werden.

Sie können Breakout-Boards für ESP-12-Module * kaufen, die zum Testen der verschiedenen Setups sehr nützlich sind. Die Module haben die Widerstände für den 15-poligen EN- und GPIO-Pin eingerichtet, sodass Sie den Pull-up-Widerstand für RST und GPIO 0 noch hinzufügen müssen.

Programmiermodus aktivieren:

Um in den Programmiermodus zu gelangen, muss GPIO 0 beim Starten des ESP auf niedrig gezogen werden. Der einfachste Weg, dies zu tun, besteht darin, GPIO 0 und dem RST-Pin Tasten hinzuzufügen, die beim Drücken mit Masse verbunden werden. Um dann den Flash-Modus zu aktivieren, müssen Sie einfach

  • Halten Sie die GPIO 0-Taste gedrückt
  • Drücken Sie die RST-Taste
  • Dann lassen Sie beide Tasten los

Sie müssen diese Sequenz zu keinem bestimmten Zeitpunkt während des Upload-Vorgangs oder so ausführen. Sobald sich das ESP im Programmiermodus befindet, bleibt es bis zum nächsten Zurücksetzen dort. Führen Sie die Schritte daher jederzeit vor dem Hochladen aus.

Programmierung mit einem USB-zu-Seriell-Adapter:

Das Aktivieren des Programmiermodus ist nur die halbe Miete. Jetzt müssen wir das Modul tatsächlich programmieren. Die meisten USB-zu-Seriell-Adapter können den ESP8266 nicht ausreichend mit Strom versorgen. Es wird daher empfohlen, den ESP8266 über eine externe 3, 3-V-Quelle mit Strom zu versorgen.

Um den Programmierer zu verkabeln, müssen Sie die folgenden Stifte anschließen (siehe auch Abbildung oben):

  • Verbinden Sie TX des Programmiergeräts mit RX des ESP8266 (kein Tippfehler, die Verbindungen sind umgekehrt)
  • Verbinden Sie den RX des Programmiergeräts mit dem TX des ESP8266
  • Verbinden Sie die Masse des Programmiergeräts mit der Masse des ESP8266

Führen Sie die folgenden Schritte aus, um Ihre Skizze hochzuladen:

  • Wählen Sie die Portnummer Ihres seriellen Adapters (Extras-> Port).
  • Aktivieren Sie den Programmiermodus Ihres ESP8266 wie oben beschrieben
  • Klicken Sie auf die Schaltfläche zum Hochladen. (Wenn dies fehlschlägt, überprüfen Sie Ihre Verkabelung und versuchen Sie erneut, Ihre Karte in den Programmiermodus zu versetzen.)
  • Klicken Sie auf die Schaltfläche Zurücksetzen, wenn der Upload abgeschlossen ist

Hier sind die Board-Einstellungen, die ich beim Hochladen mit dieser Methode verwendet habe:

  • Karte: Generisches ESP8266-Modul
  • Blitzmodus: DIO
  • Blitzgröße: 4M (3M Spiffs)
  • Rücksetzmethode: ck
  • Blitzfrequenz: 40 MHz
  • Upload-Geschwindigkeit: 115200

Das Letzte, was zu beachten ist, ist die LED_BUILIN-Definition für ein generisches ESP8266-Modul, die auf Pin 1 zeigt, aber die eingebaute LED eines ESP12-Moduls ist mit Pin 2 verbunden (sie ist auch als FYI aktiv niedrig). Wenn Sie also eine Blinkskizze testen, müssen Sie anstelle von LED_BUILTIN die Nummer 2 verwenden

* = Affiliate-Link

Schritt 5: Methode 3: Automatisches Zurücksetzen des Programmiergeräts mithilfe einer NodeMCU

Wenn Sie ESP-Entwicklungskarten verwendet haben, werden Sie feststellen, dass Sie bei allen nicht den Programmiermodus manuell über die Schaltflächen aktivieren müssen. Wie machen sie das?

Die meisten USB-zu-Seriell-Chips verfügen über zusätzliche Pins, die Signale in verschiedenen Phasen des Upload-Vorgangs ausgeben. Mit einigen externen Schaltkreisen können Sie den Low-Wert des GPIO 0 und die erforderlichen Resets auslösen. RuiMoteiro hat eine Anleitung zu diesem Thema mit einem FTDI-Board und ESP8266.

Aber ich denke, es gibt einen einfacheren Ansatz, und was noch besser ist, es besteht eine gute Chance, dass Sie bereits alles haben, was Sie dazu brauchen! Sie können ein ESP8266-Entwicklungsboard wie eine NodeMCU als Programmierer * verwenden.

Was ist der Vorteil einer NodeMCU?

Die Hauptvorteile der Verwendung der NodeMCU als Programmierer sind folgende:

  • Sie können den ESP8266 direkt über 3-V-Pins der NodeMCU mit Strom versorgen
  • Übernimmt das automatische Zurücksetzen / Aktivieren des Programmiermodus
  • Kostet ca. 2, 50 US-Dollar (und kann als reguläres Entwicklungsboard verwendet werden, wenn andere nicht programmiert werden!)

Sie können denselben Ansatz mit jeder Entwicklungsplatine verwenden, die den Chip-Aktivierungsstift des ESP8266 freilegt.

Wie funktioniert es?

Die Idee dazu hatte ich von einem YouTuber namens Mika Kurkela. In seinem Video verwendete er die NodeMCU, um ein ESP-01-Modul zu programmieren, aber wir können dieselbe Idee für das ESP12-Modul verwenden.

Grundsätzlich werden wir den ESP8266 auf der NodeMCU deaktivieren, indem wir den EN-Pin auf Low setzen. Dadurch wird verhindert, dass das ESP8266-Modul auf der NodeMCU startet. Wir werden dann alle relevanten Pins der NodeMCU-Karte mit unserem externen ESP8266 verbinden.

Verkabelung

Um es zu verkabeln, benötigen Sie die im vorherigen Schritt gezeigte Standardverdrahtung ESP8266 und fügen dann die folgenden Verbindungen hinzu (siehe auch Abbildung oben):

  • Verbinden Sie 3 V der NodeMCU mit VCC des ESP8266
  • Verbinden Sie GND mit GND
  • Verbinden Sie TX der NodeMCU mit TX des ESP8266 (dies unterscheidet sich vom vorherigen Schritt).
  • Verbinden Sie den RX der NodeMCU mit dem RX des ESP8266
  • Verbinden Sie D3 der NodeMCU mit GPIO 0 des ESP8266 (D3 ist GPIO 0 des ESP8266).
  • Verbinden Sie RST der NodeMCU mit RST des ESP8266
  • Verbinden Sie EN der NodeMCU mit GND

Skizze hochladen

Sobald Sie den ESP8266 verkabelt haben, müssen Sie Folgendes tun:

  • Wählen Sie die Portnummer der NodeMCU (Extras-> Port)
  • Wählen Sie den Board-Typ "NodeMCU 1.0 (ESP12-E-Modul)".
  • Klicken Sie auf Hochladen

Und das ist es! Der Programmiermodus wird automatisch aktiviert und nach dem Hochladen automatisch zurückgesetzt, sodass die Skizze ausgeführt wird.

Verwenden Sie dies in Ihren Board-Designs

Um diese Methode in Ihren Board-Designs zu verwenden, müssen Sie lediglich die folgenden Stifte ausbrechen:

  • Boden
  • GPIO 0
  • VCC
  • TX
  • RX
  • RST

Und wenn Sie Ihre Boards programmieren möchten, verdrahten Sie sie wie oben beschrieben.

Hoffentlich finden Sie dieses Instructable nützlich. Wenn Sie Fragen haben, können Sie diese gerne stellen!

* = Affiliate-Link

Ähnlicher Artikel