Aus Raspberry Pi Geek 06/2021

Den ESP8266 mit dem NodeMCU-Board programmieren

© ktsdesign / 123RF.com

Helferlein

Martin Mohr

Das preiswerte NodeMCU-Board macht den Einstieg in die Mikrocontroller-Programmierung mit dem ESP8266 zum Kinderspiel.

Streng genommen handelt es sich bei NodeMCU um ein Betriebssystem für den Mikrocontroller ESP8266. Es stellt eine Skriptsprache (Lua) bereit, mit der Sie den Controller programmieren. Die Boards, die man dazu verwendet, nennt man ebenfalls NodeMCU. Daher ist es wichtig, im Einzelfall zu unterscheiden, ob von der Hardware oder dem gleichnamigen Betriebssystem die Rede ist. In unserem Test kommt die Hardware zum Einsatz, die in Verbindung mit der Arduino IDE dazu dient, den ESP8266 mit C zu programmieren.

Wir verwenden das NodeMCU-Board [1] von AZ-Delivery, das sich zum Preis von rund 6 Euro bestellen lässt. Die Firma hat sich zum Ziel gesetzt, Module für Bastler aus China zu importieren und in Deutschland zu fairen Preisen anzubieten.

Sie schließen das Board einfach per USB an einen PC an und programmieren es mit der Arduino IDE. Die für den ESP8266 benötigte Betriebsspannung von 3,3 Volt erzeugt das Board. Beachten Sie, dass auch die I/Os des NodeMCU-Moduls mit einer Betriebsspannung von 3,3 Volt arbeiten. Wenn Sie an einen GPIO-Anschluss 5 Volt anlegen, stehen die Chancen gut, den ESP8266 komplett zu zerstören. Das NodeMCU-Board stellt die 3,3 Volt an mehreren Pins bereit.

Darüber hinaus erzeugt das NodeMCU-Board alle zur Programmierung des ESP8266 nötigen Signale. So lässt sich der Controller ohne zusätzliche Bauteile oder manuelle Schritte programmieren. Die Rechenleistung sowie die Schnittstellen des ESP8266 können sich durchaus sehen lassen; die Tabelle “ESP8266: Technische Daten” fasst die wichtigsten technischen Daten zusammen.

CPU

Tensilica Xtensa LX106 (RISC, 32 Bit, 80 MHz)

RAM

64 KByte Programmcode, 96 KByte Daten-RAM

Externer QSPI-Flash

512 KByte bis 4 MByte

WLAN

IEEE 802.11b/g/n

Authentifizierung WLAN

WEP, WPA, WPA2

WLAN-Modi

Direct (P2P), Soft-AP

TCP/IP-Protokoll-Stack

integriert (keine MAC)

Ausgangsleistung

+19.5 dBm (802.11b-Modus)

Stromaufnahme Aus

< 10 µA

Stromaufnahme Standby

< 1,0 mA

Stromaufnahme Betrieb

~ 80 mA

GPIO-Pins

10

Schnittstellen

SPI, I2C, I2S

UART

URXD/UTXD

ADC

10-Bit-ADC

Antenne

integriert

Größe

17,2 x 12,3 mm

Die Arduino IDE

Zur Programmierung des NodeMCU-Boards dient die Arduino IDE, die man frei von der Projekt-Homepage [2] herunterladen kann. Installieren Sie die für Ihr Betriebssystem passende Version der Entwicklungsumgebung auf Ihrem Rechner. Beachten Sie dabei die Installationsanweisungen auf der Homepage. Windows-Anwender benötigen einen zusätzlichen Treiber [3], damit die USB-Schnittstelle des NodeMCU-Boards richtig erkannt wird. Abbildung 1 zeigt die Arduino IDE nach dem ersten Start.

Abbildung 1: Die Arduino IDE nach dem ersten Start.

Abbildung 1: Die Arduino IDE nach dem ersten Start.

Die Arduino IDE hat eine offene Architektur und lässt sich mithilfe sogenannter Board-Verwalter an unterschiedliche Mikrocontroller anpassen. Auf diese Weise kann man viele unterschiedliche Mikrocontroller mit nur einer IDE programmieren. Das Anpassen der IDE erfordert nur wenige Schritte. Zuerst tragen Sie unter Datei | Voreinstellungen ins Feld Zusätzliche Bordverwalter URLs die URL aus Listing 1 ein und speichern sie mit OK.

Listing 1

URL für den Board-Verwalter

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Danach öffnen Sie das Menü Werkzeuge | Board:<beliebiger Boardname> | Bordverwalter… und suchen nach “ESP8266”. Installieren Sie dann den Board-Verwalter der ESP8266-Community. Je nach Internet-Verbindung dauert die Installation einen Moment. Der Board-Verwalter unterstützt viele verschiedene ESP8266-Module. Stellen Sie über den Menüpunkt Werkzeuge | Board das NodeMCU 1.0 (ESP-12E MODE) als Modul ein.

Anschließend können Sie das NodeMCU-Board per USB mit Ihrem PC verbinden. Um Programme aus der IDE an das Board zu übertragen, stellen Sie noch ein, an welchem Port die Hardware hängt. Die Namen der Ports hängen vom System und von dessen Konfiguration ab. Wählen Sie den für Ihren Fall passenden Port aus (unter Linux /dev/ttyUSB0; unter Windows COM1). Die IDE ist nun bereit für einen ersten Test.

Erstes Testprogramm

Das Testprogramm aus Listing 2 lässt die auf dem ESP8266 verbaute LED im Sekundentakt blinken. Um es auf den ESP8266 zu laden, verwenden Sie in der Arduino IDE den Schalter Hochladen. Blinkt anschließend die LED, können Sie davon ausgehen, dass der Aufbau funktioniert.

Listing 2

Testprogramm

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Display

Als weiteren Test soll der ESP8266 einen beliebigen Text auf ein LC-Display ausgeben. Der angezeigte Text soll sich über ein simples Webinterface verändern lassen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben