Search

Für Karli ....


Ich will hier einige praktische Tipps zur Arbeit mit dem NodeMCU Board geben. Dieses Board basiert auf dem ESP8266 Chip. Das ist ein 32 bit RISC Controller mit der kompletten Hardware, die für einen 2,4 GHz WLAN Accesspoint oder Client benötigt wird.

Für das NodeMCU Board wird dann ein ESP12 oder auch neu ESP12E Modul verwendet. Das ESP12(E) Modul besteht aus dem ESP8266 Chip, einen Quarz für die Zeitbasis, einen Flash Speicher sowie einer Antenne für die 2,4 GHz WLAN Frequenz. Bis auf die Antenne sind hier alle Teile unter der Metallkappe zu finden. Vom Controller sind eine Auswahl von IO Pins am ESP12 Modul nach außen gelegt.

NodeMCU Board
NodeMCU Board

Im Bild oben ist das ESP12 Modul auf dem NodeMCU Board zu sehen. Unter den nach außen gelegten Leitungen sind auch die zur Programmierung notwendigen Anschlüsse.

Nun zum NodeMCU Board. Dieses Board macht jetzt das ESP12 Modul für den Anwender in einer an den Arduino bekannten Weise zugänglich. Verschiedene IO Pins sind auf der Steckerleiste genormt zugänglich. Ein Spannungsregler erzeugt aus der 5V Eingangsspannung die 3,3V für das ESP12 Modul mit dem ESP8266. Dann ist zu guter letzt eine Mini-USB Buchse mit einen Interface Schaltkreis verbaut. Dies ist ein CP2102 / CP2104 oder auf manchen chinesischen Modulen ein CH340. 

Unter Linux funktionieren beide Varianten des Interfaceschaltkreises identisch, bei Windows nicht ganz so. Eine gute Beschreibung zur Handhabung unter Windows findet man hier: NodeMCU und ESP8266 – Einstieg

Ich will hier bei der Programmierung unter Linux mit der Arduino IDE bleiben. Denn hier kommt der Vorteil zum Tragen, dass alles sehr einfach funktioniert.

  • NodeMCU Board anstecken
  • Board und Parameter im Arduino Programm einstellen
  • Programm auf das Board schieben. Fertig.

Beim Anstecken des Boards wird dieses nach kurzer Verzögerung vom System erkannt. Mit dem Befehl:

#> ls -l /dev/tty*

können alle seriellen Schnittstellen angezeigt werden. Nach dem Anstecken des NodeMCU Boards muss dort ein neues Device auftauchen. Bei mir ist das: /dev/ttyUSB0 oder auch manchmal /dev/ttyUSB1 .

Die Arduino Einstellungen sind im folgenden Foto dargestellt:

 

Arduino Einstellungen
Arduino Einstellungen

Als einfaches Beispiel ist hier noch der Code, um die LED aud dem ESP12 Modul mal blinken zu lassen und über das USB Kabel etwas Debug Text auszugeben:


 /*
  Blink
 Turns on an LED on and off for a increasing time, repeatedly.
 
 This example code is in the public domain.
 */

// Global area
// Pin 13 has an LED connected on most Arduino boards. Pin 2 for ESP12 modules
// give it a name:
int led = 2;

int i;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);    
  // initialize serial communication at 115200 bits per second:
  Serial.begin(115200);
  Serial.println("Blink ESP12");
  delay(2500);
 
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(i);                        // wait for some variable time
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(i);                        // wait for a short time
  Serial.print("  i:  " );
  Serial.println( i );

  if (i<500)  i++; else i=1;
}