MINT - Unterricht  mit  Arduino und anderen

Das NodeMCU basiert auf dem ESP8266, einem 32-Bit-Mikrocontroller der chinesischen Firma Espressif, der über WLAN verfügt. Die Verbindung zum Computer wird über ein handelsübliches USB-Kabel mit Mikro-B-Stecker hergestellt und kann darüber von der Arduino-IDE angesprochen werden kann.

Damit das gelingt, wird eine IDE-Version 1.6.4 oder höher benötigt, an der einige Anpassungen vorgenommen werden müssen:

  1. IDE starten und unter Datei > Voreinstellungen anwählen.
  2. In dem sich öffnenden Fenster unten hinter "Zusätzliche Boardverwalter-URLs" die Adresse "http://arduino.esp8266.com/stable/package_esp8266com_index.json" eingegeben und mit OK bestätigen.  
  3. Danach über Werkzeuge> Board > Boardverwalter zum Paket "esp8266 by ESP8266 Community" navigieren und die Software installieren.

Nach einem Neustart der IDE kann nun über Werkzeuge> Board das "NodeMCU 1.0" ausgewählt werden. Die voreingestellten Werte (CPU Frequency, Flash Size, Upload Speed) werden so belassen.

Schließlich muss noch - wie üblich - unter Werkzeuge> Port der passende COM-Port gewählt werden. Dann steht der Programmierung nichts mehr im Wege.

Empfohlen sei, die Funktionstüchtigkeit des NodeMCU mit einem Blink-Test zu überprüfen. Dazu muss die LED an GND (kurzer Stift) und D7 (entspricht Pin 13 auf dem Arduino-Board) angeschlossen und das Beispielprogramm "Blink" via USB-Kabel übertragen werden.

 


 

Um die WLAN-Funktionalität des NodeMCUs zu testen, eignet sich folgendes Programm, das sich übers Internet auf einer von der Firma Adafruit für solche Zwecke eingerichteten Internetseite einwählt: 

#include<ESP8266WiFi.h>

const char* ssid     = "Router-Kennung";

const char* password = "Passwort";

const char* host = "wifitest.adafruit.com"; 

void setup() {

  Serial.begin(115200);

  delay(100); 

  /* Mit dem WLAN-Netzwerk verbinden und Rückmeldungen im seriellen Monitor ausgeben*/ 

  Serial.println();

  Serial.println();

  Serial.print("Connecting to ");

  Serial.println(ssid); 

  WiFi.begin(ssid, password); 

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  } 

  Serial.println("");

  Serial.println("WiFi connected"); 

  Serial.println("IP address: ");

  Serial.println(WiFi.localIP());

int value = 0; 

void loop() {

  delay(5000);

  ++value; 

  Serial.print("connecting to ");

  Serial.println(host); 

  // Den WLAN-Client benutzen für TCP-Verbindungen

  WiFiClient client;

  const int httpPort = 80;

  if (!client.connect(host, httpPort)) {

    Serial.println("connection failed");

    return;

  } 

  // Zugang für die Anfrage festlegen

  String url = "/testwifi/index.html";

  Serial.print("Requesting URL: ");

  Serial.println(url); 

  // Anfrage an den Server stellen

  client.print(String("GET ") + url + " HTTP/1.1\r\n" +

               "Host: " + host + "\r\n" +

               "Connection: close\r\n\r\n");

  delay(500); 

  // Rückmeldungen vom Server lesen und im seriellen Monitor ausgeben

  while(client.available()){

    String line = client.readStringUntil('\r');

    Serial.print(line);

  } 

  Serial.println();

  Serial.println("closing connection");

}

Nicht vergessen vor dem Übertragen im Programmcode die Zugangsdaten (Routerkennung und Passwort) zum eigenen Netzwerk zu ergänzen.

Welche Schritte bei der Einwahl vollzogen werden und welche Rückmeldung der Webserver gibt, können nach dem Hochladen des Programms auf das NodeMCU im seriellen Monitor bei 115200 Baud nachvollzogen werden. 



 

Die Hardware kann hier bestellt werden.