ESP8266 WiFi-Modul: Einrichtungs- und Projektanleitung

Inhaltsverzeichnis

Programming ESP8266 WiFi Module with Arduino IDE

ESP8266 ist ein WLAN-Modul, das sich für IoT- und Hausautomationsprojekte eignet. Es ermöglicht Ihnen die Steuerung von Ein- und Ausgängen wie bei einer Arduino-Serie von Boards, jedoch mit WLAN. Daher eignet es sich gut für Hausautomations-/IoT-Anwendungen.

Im Vergleich zu anderen WLAN-Lösungen auf dem Markt ist das ESP8266 eine ausgezeichnete Wahl für die meisten „Internet of Things”-Projekte. In diesem Artikel stellen wir Ihnen die Grundkonzepte des ESP8266-Boards, seine Pinbelegung und Programmierbeispiele vor.

Einführung in ESP8266

ESP8266 ist ein leistungsstarker und vielseitiger Wi-Fi-fähiger Mikrocontroller, der in der Welt der Elektronik und des IoT (Internet der Dinge) an Beliebtheit gewonnen hat. Der von Espressif Systems entwickelte ESP8266 bietet eine kostengünstige Lösung, um Geräte mit dem Internet zu verbinden und ihnen die Kommunikation untereinander zu ermöglichen. Er verfügt über ein integriertes Wi-Fi-Modul, einen leistungsstarken Prozessor und GPIO-Pins zum Anschluss externer Komponenten. Der ESP8266 kann mit verschiedenen Programmiersprachen programmiert werden und ist somit sowohl für Anfänger als auch für erfahrene Entwickler geeignet. Dank seines geringen Stromverbrauchs und seiner kompakten Größe eignet er sich ideal für eine Vielzahl von Anwendungen, darunter Hausautomation, drahtlose Sensornetzwerke und intelligente Geräte. Der ESP8266 kann beispielsweise zur Erstellung eines intelligenten Thermostats verwendet werden, mit dem Benutzer die Temperatur ihres Zuhauses aus der Ferne steuern können.

ESP8266 Pinbelegung

ESP8266 Pinout
ESP8266 Pinout

Im Pin-Diagramm haben einige Pins neben GPIO noch andere Verwendungszwecke. Der Pin D1 ist beispielsweise nicht nur GPIO5, sondern auch eine SCL-Schnittstelle, die mit dem entsprechenden SCL-Pin des LCD-Bildschirms verbunden werden kann.

Die folgende Tabelle zeigt die Entsprechungen zwischen den Bezeichnungen auf der Onboard-Kennzeichnung und den GPIO-Nummern sowie welche Pins am besten für Projekte geeignet sind und bei welchen Pins Vorsicht geboten ist. Grün markierte Pins sind einsatzbereit. Gelb markierte Pins können verwendet werden, erfordern jedoch Aufmerksamkeit, da sie vor allem beim Start zu unerwartetem Verhalten führen können. Rot markierte Pins werden nicht für die Verwendung als Ein- oder Ausgänge empfohlen.

LabelGPIOInputOutputNotes
D0GPIO16No InterruptNo PWM or I2C supportHIGH at boot used to wake up from deep sleep
D1GPIO5OKOKCommonly used as SCL (I2C)
D2GPIO4OKOKCommonly used as SDA (I2C)
D3GPIO0Pull-upOKConnected to FLASH button, boot fails if pulled LOW
D4GPIO2Pull-upOKHIGH at boot connected to on-board LED, boot fails if pulled LOW
D5GPIO14OKOKSPI (SCLK)
D6GPIO12OKOKSPI (MISO)
D7GPIO13OKOKSPI (MOSI)
D8GPIO15Pull-downOKSPI (CS) Boot fails if pulled HIGH
RXGPIO3OKRXHIGH at boot
TXGPIO1TXOKHIGH at boot debug output at boot, boot fails if pulled LOW
A0ADC0AnalogXAnalog pin

Wie programmiert man ESP8266 mit Arduino IDE?

Es gibt viele Möglichkeiten, ESP8266 zu programmieren:

  1. Verwenden Sie Arduino IDE zur Entwicklung, folgen Sie dem Entwicklungsstil von Arduino, einfach zu bedienen;
  2. Verwenden Sie die offizielle SDK-Entwicklung von ESP8266.
  3. Verwenden Sie MicroPython für die Entwicklung, folgen Sie dem Programmierstil von Python (bei dieser Methode muss zunächst eine spezielle Firmware für die Platine gebrannt werden);

Hier wählen wir die erste Möglichkeit, da die Arduino-Programmierung einfach und leicht zu bedienen ist.

Schritt 1: Installieren Sie die Arduino IDE

Laden Sie die IDE von der offiziellen Arduino-Website herunter: https://www.arduino.cc/en/software. Die Version, die ich derzeit verwende, ist Arduino IDE 1.8.3. (Beachten Sie, dass die neueste Version von Arduino IDE 2.1.1 das ESP8266-Ressourcenpaket nicht online installieren kann.)

Install Arduino IDE 1.8.3
Install Arduino IDE 1.8.3

Schritt 2: Installieren Sie das ESP8266-Paket

Da die Arduino IDE standardmäßig für das Arduino-Entwicklungsboard verwendet wird, gibt es standardmäßig nur relevante Entwicklungsressourcen für das Arduino-Entwicklungsboard. Um ESP8266 in der Arduino IDE zu verwenden, müssen wir das ESP8266-Entwicklungspaket manuell installieren. Es gibt zwei Installationsmethoden: Online-Installation und Offline-Paketinstallation. Hier wählen wir die erste Methode.

Suchen Sie zunächst im Arduino IDE-Menü den Eintrag „Datei -> Einstellungen“: 

Open Preferences in Arduino IDE
Open Preferences in Arduino IDE

Geben Sie anschließend den folgenden Link in das Feld „Zusätzliche Board-Manager-URLs“ ein:

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

Setting Additional boards manager URLs in Preferences
Setting Additional boards manager URLs in Preferences

Klicken Sie anschließend auf: Extras -> Platine -> Platinen-Manager.

Open Boards Manager in Arduino
Open Boards Manager in Arduino

Geben Sie im Feld „esp8266“ ein und suchen Sie danach. Sie sehen dann ein esp8266-Paket. Klicken Sie auf „Installieren“, um die Online-Installation zu starten.

Search and Install the ESP8266 Board
Search and Install the ESP8266 Board
Installing ESP8266 packages
Installing ESP8266 packages

Nach Abschluss der Installation finden Sie alle Ressourcen zum esp8266-Board im Menü „Tools->Board”.

ESP8266 Boards Resource (3.1.2 Version)
ESP8266 Boards Resource (3.1.2 Version)

Schritt 3: Programmierung des ESP8266

Hier schreiben wir ein einfaches Programm zum Testen der Netzwerkverbindung für das ESP8266-Board. Der Programmcode lautet wie folgt:

				
					void setup() {
  Serial.begin(9600);
  Serial.println("esp8266 test");
  initWiFi();

}

void loop() {
  Serial.println("hello esp8266");
  delay(1000);

}

#include <ESP8266WiFi.h>

constchar ssid[] = "xxxxx";      //WiFi Name
constchar pass[] = "xxxxx";       //WiFi Password

WiFiClient client;

//Initialize WIFI
void initWiFi()
{
   Serial.print("Connecting WiFi...");
   WiFi.mode(WIFI_STA); //Configure WIFI as Station mode
   WiFi.begin(ssid, pass); //Incoming ssid and password of WIFI hotspot
   while (WiFi.status() != WL_CONNECTED) //Waiting for successful connection
   {
     delay(500);
     Serial. print(".");
   }

   Serial.println("");
   Serial.println("WiFi connected");
   Serial.println("IP address: ");
   Serial.println(WiFi.localIP()); //print your own IP address
}
				
			

Hinweise:
Die Setup-Funktion wird für die Initialisierung der seriellen Schnittstelle verwendet. Beispielsweise bedeutet „Serial.begin(9600);“, dass die anfängliche Baudrate der seriellen Schnittstelle 9600 beträgt.

Die Funktion „loop“ ähnelt der Funktion „while(1){}“ in der Hauptfunktion bei der Entwicklung eines Einchip-Mikrocomputers, in der wir Programmlogikcodes schreiben können.

Um die WIFI-Funktion zu verwenden, müssen Sie die Header-Datei „ESP8266WiFi.h“ einbinden.

Die Initialisierung von WIFI umfasst drei Schritte:

  1. Konfigurieren Sie WIFI für den Stationsmodus, d. h. unser ESP8266 wird als WIFI-Gerät verwendet.
  2. Übergeben Sie die SSID und das Passwort des WIFI-Hotspots, damit sich der ESP8266 mit dem Hotspot verbinden kann.
  3. Lesen Sie den WLAN-Verbindungsstatus und warten Sie, bis die Verbindung erfolgreich hergestellt wurde.

Wählen Sie das Modell und die serielle Portnummer Ihres ESP8266-Entwicklungsboards aus:

Choose Board NodeMCU 1.0 (ESP-12E Module)
Choose Board NodeMCU 1.0 (ESP-12E Module)

Jetzt können wir den Code kompilieren und auf das ESP8266WiFi-Board brennen.

Compile and Upload the code to ESP8266 WiFi Module
Compile and Upload the code to ESP8266 WiFi Module

Abonnieren

Tragen Sie sich in unsere Abonnentenliste ein, um monatliche Blog-Updates, Technologie-News und Fallstudien zu erhalten. Wir versenden niemals Spam, und Sie können sich jederzeit wieder abmelden.

Nach oben scrollen

Instant Quote