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.
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.
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!
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.
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.......
Jetzt nur noch kurz verdrahtet und es kann losgehen....
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.
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=1OK
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...
Kommentare (0)