Der ESP8266 von Espressif Systems (Shanghai) ist ein programmierbarer WLAN-SoC mit UART- und SPI-Schnittstelle und integriertem TCP/IP Stack. Diese Chips sind unglaublich günstig und bereits für ca. 3€ zu haben.

Wir werden wahrscheinlich in diesem Blog mit 3 Microcontrollern arbeiten:

  • ESP8266
  • ESP32
  • MXChip AZ3166

Zunächst fokussieren wir uns auf den ESP8266. Insbesondere die reine Datenerfassung mit Hilfe von Sensoren und die Kommunikation mit der Azure Cloud gelingt mit dem ESP8266 sehr einfach. Doch bevor wir irgendetwas in die Cloud senden können, müssen wir uns mit dem Internet verbinden.

Was benötigen wir für die Programmierung des ESP8266? Zunächst müssen wir Arduino IDE herunterladen. Angeschlosen wird

Nach der Installation starten wir die Arduino IDE und konfigurieren die IDE, so dass diese unseren Chip ansprechen kann. Nachdem Start der Anwendung öffnen wir im Menü Datei den Menüpunkt Voreinstellungen.

Im Reiter Einstellungen geben wir im Feld Zusätzliche Boardverwalter-URLs nachfolgende Url ein:

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

Anschließend bestätigen wir die Eingabe mit OK und Öffnen im Menü Werkzeuge > Board den Menüpunkt Boardverwalter. Es öffnet sich ein neuer Dialog Boardverwalter. Dort geben wir in das Suchfeld den Begriff esp8266 ein und drücken die Eingabetaste. Es sollte sich ein Ergebnis finden. Bei diesem Eintrag (esp8266 by ESP8266 Community) klicken wir auf die Schaltfläche Installieren.

Nachdem wir den Dialog mit Schließen geschlossen haben, können wir nun unter dem Menü Werkzeuge > Board > ESP8266 Boards (2.74) den Eintrag NodeMCU 1.0 (ESP-12E Module) auswählen.

Mit dem WLAN verbinden

Um eine WLAN-Verbindung herstellen zu können, müssen wir zunächst die notwendige WiFi-Bibliothek installieren. Dazu wählen wir im Menü Werkzeuge den Eintrag Bibliotheksverwalter. Dort geben wir im Suchfeld den Begriff wifi ein und installieren die WiFi-Bibliothek WIFI Built-In by Arduino.

So, nun sind wir bereit und können unseren Chip mit dem WLAN verbinden. Dazu nutzen wir nachfolgenden Code. Was passiert hier genau?

  • Definiere zwei Konstanden mit SSID und dem WLAN-Passwort
  • In der setup() Methode wird zuerst die Datenrate für die Serielle Datenübertragung definiert (Serial.begin())
  • Danach initialisiert WiFi.begin(SSID, pass) die WLAN-Verbindung mit den zuvor definierten Konstanten ssid und password.
  • Mit einer Pause von jeweils einer Sekunde prüft WiFi.status den Status der Verbindung bis eine erfolgreiche Verbindung hergestellt werden konnte
  • Zum Schluss wird die erhaltene IP-Adresse an die Serielle-Schnittstelle ausgegeben, welcher auf dem Serial Monitor erscheint
#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "BOG X"
#define STAPSK  "Passw0rd"
#endif

const char* ssid     = STASSID;
const char* password = STAPSK;


void setup() {
  Serial.begin(115200);
  delay(100);
  
  Serial.print("Connect to Wifi ");
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Your WiFi-Stuff here :-)
  }
}

Um das Programm auf unseren Chip zu schreiben wählen wir zuerst im Menü Sketch den Menüpunkt Überprüfen/Kompilieren.

Wenn der Vorgang erfolgreich war, wählen wir im Menü Sketch den Menüpunkt Hochladen um das Programm auf den Chip zu schreiben.

Um die serielle Ausgabe zu sehen, können wir den Seriellen Monitor öffnen über das Menü Werkzeuge und dem Menüeintrag Serieller Monitor.

Der Serial Monitor

Und voilà, die Ausgabe zeigt uns, dass sich unser Chip erfolgreich mit dem WLAN verbunden hat und auch die IP-Adresse 192.168.0.92 zugewiesen bekommen hat.