Der einfachste Weg eine eigene Firmware auf den ESP zu bekommen ist die Nutzung der "Generic ESP8266" Bibiliothek von Arduino.

Hierzu muss zuerst die aktuelle Arduino IDE installiert werden.
https://www.arduino.cc/en/Main/Software 

 

Um die optionale "Generic ESP8266" Bibiliothek von Arduino nutzen zu können, muss in den Voreinstellungen ein zusätzlicher Suchpfad angegeben werden.

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

 

Jetzt kann unter Werkzeuge/Platine der Boards Manager aufgerufen werden um das ESP-Package zu installieren.

ESPInstall

 

 Softwareseitig sind wir jetzt schon startklar!

 


Für die Programmierung über die serielle Schnittstelle bietet sich ein USB/RS232 Controller an.
Controller auf Basis des CP2102 eignen sich hierfür hervoragend.

Es ist jedoch darauf zu achten, dass der Adapter auch 3,3V beherscht, da der ESP8266 NICHT 5V tolerant ist!

CP2102

Allerdings ist dieser in der Regel nicht für die Spannungsversorgung des ESP8266 geeignet,
da hier bis zu 200mA benötigt werden.

 

Für die Spannungsversorgung musste der freundliche Chinese wieder herhalten.
Das Modul kann sowohl 5V als auch die benötigten 3,3V bereitstellen und ist für die direkte Versorgung eines Breadbords konzipiert.

Spannung

 

Als ESP kommt hier ein ESP8266-12e zum Einsatz.Es gibt den ESP in diversen Versionen und Varianten.
http://blog.thomasheldt.de/esp8266-module-uebersicht/

Bei dieser Bestellung war sogar noch ein kleines Breakout-Board mit dabei, was sich auf dem BreadBoard echt gut macht.......

ESP8266 12e 1

Breadboard

 

Jetzt nur noch kurz verdrahtet und es kann losgehen....

Stromlauf

 


 

Zuerst sollte die serielle Anbindung überprüft werden.
Hierzu muss das Terminalprogramm (hier HTerm) auf die entsprechenden Parameter der seriellen Schnittstelle des ESP8266 eingestellt werden:

  • Baudrate:  115200
  • Übertragung: 8N1
  • NewLine at: CR+LF
  • Send on Enter: CR+LF

Nach dem Verbinden sollte der ESP8266 ein gesendetes AT mit einem freundlichen OK beantworten.

HTerm 01

 

Das Schlimmste ist geschaft!
Bereits jetzt steht der volle Funktionsumfang des Moduls zu Verfügung!!

 


 

Da der Spietrieb sich nur schwer unterdrücken läßt hier ein paar kurze AT-Befehle.... :-)
AT-Befehlsübersicht


Abfrage des WIFI-Betriebszustandes
AT+CWMODE?
+CWMODE:3
OK

Mode 1 = WIFI-Client-Mode, Mode 2 = Accesspoint-Mode, Mode 3 = Mode 1&2


Ändern des WIFI-Betriebszustandes
AT+CWMODE=1
OK

AT+CWMODE?
+CWMODE:1
OK

Mode 1 ist aktiv


Anzeigen der verfügbaren WIFI-Accesspoints
AT+CWLAP
+CWLAP:(4,"Pf@nne-NET",-82,xx:xx:xx:xx:xx:xx,1)
OK


Verbinden mit einem WIFI-Accesspoint
AT+CWJAP="Pf@nne-NET","Passwort"
OK


Abfragen der zugewiesenen DHCP-IP
AT+CIFSR
192.168.1.28


Das wars, wir sind im HomeNET angekommen, der ESP kann jetzt im Netzt angepingt werden!
Mit wenigen weiteren AT-Befehlen könnten jetzt TCP- oder UDP-Frames gesendet werden.
Das war noch nie so einfach wie mit diesem Modul!
Kein mühleliges Zusammensetzen der einzelnen Frames mehr, keine aufwändige DHCP-Anmeldung mit Auswertung der empfangenen Frames vom DHCP-Server.
Alle diese Aufgaben nimmt uns die Firmware des ESP ab!


 

 

Zurück zur eigentlichen Aufgabe.....der ESP sollte ja als autarker Controller mit einer eigenen Firmware geflasht werden.
Nachdem der Hardwareaufbau erledigt und getestet ist, ist dies nur noch ein kleiner Schritt!

Hierzu wird die Arduino IDE gestartet.
Unter Datei/Beispiele/esp8266 wird er Sketch "Blink" geöffnet.

Die Konstante "BUILTIN_LED" sollte eigentlich je nach Modultyp den richtigen Port für die onBord LED des ESP ermitteln.
Bei dem hier eingesetzten ESP8266-12e scheint die LED aber an einem anderen GPIO angeschlossen zu sein
oder einer der freundlichen Chinesen hats verfriemelt....:-)
Daher habe ich den GPIO von Hand geändert:

void setup() {
  pinMode(2, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, LOW);   // Turn the LED on (Note that LOW is the voltage level
                                    // but actually the LED is on; this is because
                                    // it is acive low on the ESP-01)
  delay(500);                      // Wait for a second
  digitalWrite(2, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(500);                      // Wait for two seconds (to demonstrate the active low LED)
}

 


 

Um den ESP in den FlashMode zu bringen muss der GPIO-0 während des Resets auf Masse gehalte werden.
GPIO-0 -> Masse, Reset -> Masse
Reset -> Masse entfernen, GPIO-0 -> Masse entfernen

Der BootLoader des ESP8266 wartet jetzt auf die Initialisierung des Firmwareupdates.

Nachdem unter Werkzeuge der richtige COM-Port eingestellt wurde kann mit dem Upload der "Blink-Firmware" begonnen werden.

 


 

Unmittelbar nach dem Upload der ersten eigenen Firmware sollte die onBoard LED des ESP8266 munter vor sich hin blinken...

 

https://youtu.be/PDWXIj_pZWE

Breadboard

Kommentare (0)

Cancel or