ESP8266: Unterschied zwischen den Versionen
Ianp (Diskussion | Beiträge) |
|||
(44 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<div class="mw-parser-output"> | |||
{{Baustelle}} | {{Baustelle}} | ||
{| class="wikitable | |||
{| class="wikitable" id="Vorlage_Infobox_Workshop" style="margin: 0 0 0.4em 1em; width: 308px; float:right" cellspacing="1" cellpadding="2" | |||
|- | |||
! colspan="2" style="background-color:#b30000; color:#ffffff; font-size:1.5em" | ESP8266 | |||
|- | |||
! colspan="2" | [[File:{{{Foto|nopicture.png}}}|frameless|300px]] | |||
|- | |- | ||
| Hersteller: | |||
| | | Espressif | ||
|- | |- | ||
| Herstellerseite: | |||
| [https://espressif.com/ https://espressif.com/] | |||
|- | |- | ||
| | | Kosten: | ||
|- | | 2 - 5 € | ||
|- | |- | ||
! colspan="2" | Software | |||
| | |||
|- | |- | ||
| colspan="2" | | |||
|- | *[[/images/0/07/Flash_download_tools_v3.4.2_win.zip|Flash_download_tools_v3.4.2_win.zip]] | ||
*[[/images/b/b7/ESPlorer.zip|ESPlorer v0.2.0-rc6]] | |||
*[[Arduino|Arduino IDE]] | |||
*für die Arduino IDE [https://github.com/esp8266/Arduino [1]] | |||
|- | |- | ||
! colspan="2" | Links | |||
|- | |- | ||
| colspan="2" | | |||
*[http://www.espressif.com/en/support/download/other-tools/ http://www.espressif.com/en/support/download/other-tools] | |||
*[https://esp8266.ru/esplorer/ https://esp8266.ru/esplorer/] | |||
*[http://iot-bits.com/ http://iot-bits.com/] | |||
*[http://www.esp8266.com/wiki/ http://www.esp8266.com/wiki/] | |||
*[https://www.itead.cc/wiki/ESP8266_Serial_WIFI_Modul https://www.itead.cc/wiki/ESP8266_Serial_WIFI_Module] | |||
|- | |- | ||
! colspan="2" | Features: | |||
|- | |- | ||
| colspan="2" | | |||
*802.11 b/g/n | |||
*Wi-Fi Direct (P2P), soft-AP | |||
|colspan="2" | | *Integrated TCP/IP protocol stack | ||
* 802.11 b/g/n | *Integrated TR switch, balun, LNA, power amplifier and matching network | ||
* Wi-Fi Direct (P2P), soft-AP | *Integrated PLL, regulators, and power management units | ||
* Integrated TCP/IP protocol stack | *+19.5dBm output power in 802.11b mode | ||
* Integrated TR switch, balun, LNA, power amplifier and matching network | *Integrated temperature sensor | ||
* Integrated PLL, regulators, and power management units | *Integrated low power 32-bit CPU could be used as application processor | ||
* +19.5dBm output power in 802.11b mode | *SDIO 2.0, SPI, UART | ||
* Integrated temperature sensor | *STBC, 1×1 MIMO, 2×1 MIMO | ||
* Integrated low power 32-bit CPU could be used as application processor | *Wake up and transmit packets in < 2ms | ||
* SDIO 2.0, SPI, UART | *Standby power consumption of < 1.0mW (DTIM3) | ||
* STBC, 1×1 MIMO, 2×1 MIMO | *VC: 3,3V '''(Achtung nicht 5V Tolerant)''' | ||
* Wake up and transmit packets in < 2ms | |||
* Standby power consumption of < 1.0mW (DTIM3) | |||
* VC: 3,3V '''(Achtung nicht 5V Tolerant)''' | |||
|} | |} | ||
=Was ist ein ESP8266= | = Was ist ein ESP8266 = | ||
Der ESP8266 ist ein WLAN-SoC (System-on-a-Chip), also ein WiFi-Modul, das sich selbstständig nutzen und programmieren lässt. Daher kann der ESP8266 auch unabhängig von z.B. einem [[Arduino]] verwendet werden, da man eigene Programme darauf laden kann. | Der ESP8266 ist ein WLAN-SoC (System-on-a-Chip), also ein WiFi-Modul, das sich selbstständig nutzen und programmieren lässt. Daher kann der ESP8266 auch unabhängig von z.B. einem [[Arduino|Arduino]] verwendet werden, da man eigene Programme darauf laden kann. | ||
Mittlerweile gibt sehr viele Ausführungen. Der ESP8266 Chip ist überall identisch, die Boards unterscheiden sich jedoch an der der Anzahl der nutzbaren GPIOs (Anschluss-Pins). Einen Überblick über gängige Module findet ihr hier. | Mittlerweile gibt sehr viele Ausführungen. Der ESP8266 Chip ist überall identisch, die Boards unterscheiden sich jedoch an der der Anzahl der nutzbaren GPIOs (Anschluss-Pins). Einen Überblick über gängige Module findet ihr hier. | ||
Zeile 74: | Zeile 65: | ||
Der Controller wird mit einem Takt von 80MHz getaktet und ist somit anderen Mikrocontrollern z.b. dem Arduinos, die mit 8 bzw. 16 MHz laufen, weit überlegen. | Der Controller wird mit einem Takt von 80MHz getaktet und ist somit anderen Mikrocontrollern z.b. dem Arduinos, die mit 8 bzw. 16 MHz laufen, weit überlegen. | ||
'''Wichtig ist, dass der ESP8266 mit 3V betrieben wird – nicht 5V.''' | '''Wichtig ist, dass der ESP8266 mit 3V betrieben wird – nicht 5V.''' '''Eine Stromversorgung direkt über USB ohne Spannungsteiler o.ä. ist somit nicht möglich.''' | ||
'''Eine Stromversorgung direkt über USB ohne Spannungsteiler o.ä. ist somit nicht möglich.''' | |||
Wer analoge Eingänge (Licht-, Temperatur-, Drucksensoren) betreiben möchte, sollte bei der Auswahl der Module aufpassen, da nicht jedes Modell über diese Eingänge verfügt. Ebenfalls unterscheiden sich die Modell hinsichtlich ihrer Speicherkapazität die von 0,5MB bis 4MB reicht. | Wer analoge Eingänge (Licht-, Temperatur-, Drucksensoren) betreiben möchte, sollte bei der Auswahl der Module aufpassen, da nicht jedes Modell über diese Eingänge verfügt. Ebenfalls unterscheiden sich die Modell hinsichtlich ihrer Speicherkapazität die von 0,5MB bis 4MB reicht. | ||
= ESP8266 programmieren = | |||
Bei der Programmierung des ESP8266 gibt es mehrere Möglichkeiten. | |||
*Nutzung einer bestehenden Firmware die Microphyton- oder LUA Scripte entgegennimmt und ausführt oder | |||
*Erstellen einer eigenen Firmware z.B. über die Arduino IDE | |||
== Vorbereitung zum Flashen des ESP8266 Moduls == | |||
Zum Flashen des ESP8266 werden folgende Dinge benötigt: | |||
*ESPtool.py (benötigt Python in der Version 2.7.8) | |||
*NODE MCU Firmware (oben in der Infobox) | |||
*ESPlorer.jar benötigtJava ab Version 8.0 (wird zum Flashen nicht unbedingt benötigt) | |||
Zuerst wird Python in der Version 2.7.X installiert eine Anleitung gibt es [[Python_installieren|hier]]. Zusätzlich wird jetzt das esptool.py installiert, womit der Controller geflasht werden kann. | |||
In der Kommandozeile (Start -> CMD) wird das Pythonscript '''pip.py''' ausgeführt, welches im Installationsverzeichnis in dem Ordner Scripts befinden sollte. In diesem Beispiel im Ordner '''C:\Python27\scripts\''' | |||
In der Kommandozeile wird somit folgender Befehl eingegeben. | |||
<pre>cd c:\Python27\scripts | |||
pip install esptool | |||
</pre> | |||
Zum Programmieren benötigen wir das Programm ESPlorer, welches oben in der Infobox verlinkt ist. Das Programm muß lediglich heruntergeladen und entpackt werden. Allerdings setzt ESPlorer eine Java Installation voraus, eine Anleitung gibt es [[Java_installieren|hier]]. | |||
== Flashen des ESP8266 Moduls == | |||
Geflasht wird hier mit der Konsole (CMD) und dem Pythonscript ESPtool. | |||
Mit dem Befehl: | |||
esptool.py --port <COM-Port> --baud<Baudrate> write_flash -fm dio -fs 32m 0x00000 <FirmwareFile> | |||
<pre> | |||
cd c:\Python27\scripts | |||
esptool.py --port COM7 --baud 115200 write_flash -fm dio -fs 32m 0x00000 nodemcu_float_0.9.6-dev_20150704.bin | |||
</pre> | |||
'''Wenn die Firmware sich nicht im selben Ordner wie das Programm ESPtool.py befindet, muss der Dateipfad mit angegeben werden.''' | |||
=== Flashspeicher löschen === | |||
Der Flashspeicher kann auch wieder gelöscht werden mit dem Befehl: | |||
esptool.py --port <COM-Port> --baud<Baudrate> erase_flash | |||
<pre> | |||
cd c:\Python27\scripts | |||
esptool.py --port COM7 --baud 115200 erase_flash | |||
</pre> | |||
==== Node MCU Firmware herunterladen ==== | |||
Eine in Java geschriebene und damit plattformunabhängige IDE zum Erstellen und Übertragen der Lua-Scripte ist unter dem Namen ESPlorer kostenlos erhältlich (Java erforderlich). Die Datei ist oben in der Infobox verlinkt. Die heruntergeladene .zip-Datei entpackt ihr nun und startet ESPlorer.jar. Unter Windows sollte dazu ein Doppelklick auf die entsprechende Datei reichen. Wenn Windows nach einen Programm zum öffnen der Datei fragt, müsst ihr [https://www.java.com/de/ Java] noch installieren. | |||
Bevor ihr das Programm startet solltet ihr den ESP8266 Controller über das USB Kabel dem Computer verbinden. | |||
Wenn ihr alles richtig gemacht habt, öffnet sich nach einem Doppelklick auf '''ESPlorer.jar''' die Benutzeroberfläche: {{ScreenshotfckLR | Foto = ESPlorer v0.2.0-rc5 by 4refr0nt.pngfckLR | Bildunterschrift = BenutzeroberflächefckLR | height =fckLR | width= 1000pxfckLR}} | |||
| |||
Wählt nun im rechten Fenster (EditorFenster) oben in der Dropdownliste den seriellen Port eures Controllers aus und stellt anschließend als Übertragungsgeschwindigkeit 11520 ein. Klickt anschließend auf ''Open''. {{ScreenshotfckLR | Foto = ESPlorer v0.2.0-rc5 by 4refr0nt.pngfckLR | Bildunterschrift = COM-Port auswählen und Verbindung herstellenfckLR | height =fckLR | width= 500pxfckLR}} | |||
{{ | |||
}} | |||
Die Software versucht nun einen Verbindung zum Controller herzustellen. {{ScreenshotfckLR | Foto = ESPlorer v0.2.0-rc5 by 4refr0nt.pngfckLR | Bildunterschrift = VerbindungsaufbaufckLR | height =fckLR | width= 500pxfckLR}} | |||
Da das Controller schon läuft und aktuell keine Daten vom Board über die serielle Schnittstelle an den PC gesendet werden, kann in dem Fenster nichts angezeigt werden. Also müssen wir den Resetknopf auf dem Board kurz drücken, um einen Neustart zu erzwingen. Nach dem Neustart sollte eine "Got answer!" Nachricht in dem Fenster erscheinen. Unter dieser Nachricht sollte im Klartext zu sehen sein, welche Firmware installiert ist. | |||
'''Geht bald weiter''' | '''Geht bald weiter''' | ||
= Erstellen einer eigenen Firmware mit der Arduino IDE = | |||
Vorausgesetzt wird eine aktuelle installierte Arduino IDE. Ein Anleitung gibt es [[Arduino|hier]]. | Vorausgesetzt wird eine aktuelle installierte Arduino IDE. Ein Anleitung gibt es [[Arduino|hier]]. | ||
[https://github.com/esp8266/Arduino https://github.com/esp8266/Arduino] | [https://github.com/esp8266/Arduino https://github.com/esp8266/Arduino] | ||
=Linkliste= | | ||
[http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family Übersicht der ESP8266 Module] | |||
= Tutorial = | |||
== Lektion 1 - ESP8266 als Accesspoint == | |||
<pre>#include <ESP8266WiFi.h> | |||
#include <WiFiClient.h> | |||
/* Set these to your desired credentials. */ | |||
const char *ssid = "ESP_AccessPoint"; | |||
const char *password = "Start1234"; | |||
void setup() { | |||
Serial.begin(115200); | |||
delay(10); | |||
Serial.println(""); | |||
Serial.println("Access Point wird gestartet:"); | |||
WiFi.softAP(ssid, password); | |||
while (WiFi.status() != WL_CONNECTED) { | |||
delay(500); | |||
Serial.print("."); | |||
} | |||
Serial.println("Acces Point ist Online"); | |||
Serial.println("SSID: "); | |||
Serial.println(WiFi.SSID()); | |||
Serial.println("Password: "); | |||
Serial.println(*password); | |||
Serial.println(""); | |||
Serial.println("IP address: "); | |||
Serial.println(WiFi.softAPIP()); | |||
Serial.println("SubnetMask: "); | |||
Serial.println(WiFi.subnetMask()); | |||
} | |||
void loop() { | |||
} | |||
</pre> | |||
== Lektion 2 - ESP8266 als Client == | |||
Beispiel: | |||
<pre>#include <ESP8266WiFi.h> | |||
const char* ssid = "Heimnetzwerk_SSID"; | |||
const char* password = "DasGeheimePasswort"; | |||
void setup() { | |||
// Serielle Schnittstelle initialisieren | |||
Serial.begin(115200); | |||
delay(10); | |||
WiFi.mode(WIFI_STA); | |||
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()); | |||
Serial.println("SubnetMask: "); | |||
Serial.println(WiFi.subnetMask()); | |||
} | |||
void loop() { | |||
} | |||
</pre> | |||
= Linkliste = | |||
[https://alexbloggt.com/ https://alexbloggt.com/]<br/> [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family Übersicht der ESP8266 Module] | |||
</div> | |||
[[Category:Seiten mit defekten Dateilinks]] | |||
| |||
[[Category:Tutorials]] |
Aktuelle Version vom 28. Oktober 2018, 18:33 Uhr
Work in Progress: | |
Diese Seite wird erst noch aufgebaut. Bitte noch keine Änderungen vornehmen, ohne mit dem ursprünglichen Autor zu sprechen! | |
Vielen Dank. |
ESP8266 | |
---|---|
Hersteller: | Espressif |
Herstellerseite: | https://espressif.com/ |
Kosten: | 2 - 5 € |
Software | |
| |
Links | |
Features: | |
|
Was ist ein ESP8266
Der ESP8266 ist ein WLAN-SoC (System-on-a-Chip), also ein WiFi-Modul, das sich selbstständig nutzen und programmieren lässt. Daher kann der ESP8266 auch unabhängig von z.B. einem Arduino verwendet werden, da man eigene Programme darauf laden kann.
Mittlerweile gibt sehr viele Ausführungen. Der ESP8266 Chip ist überall identisch, die Boards unterscheiden sich jedoch an der der Anzahl der nutzbaren GPIOs (Anschluss-Pins). Einen Überblick über gängige Module findet ihr hier.
Für den ESP8266 gibt es auch ein Entwicklungsboard mit dem Namen „NodeMCU“, das über einen integrierten USB-to-UART-Adapter verfügt, und somit direkt programmiert werden kann. Für alle anderen Modelle benötigt man zusätzlich einen USB-to-UART-Adapter (z.B. FT232 oder CP2102), wenn man nicht über eine serielle Schnittstelle programmieren möchte.
Der Controller wird mit einem Takt von 80MHz getaktet und ist somit anderen Mikrocontrollern z.b. dem Arduinos, die mit 8 bzw. 16 MHz laufen, weit überlegen.
Wichtig ist, dass der ESP8266 mit 3V betrieben wird – nicht 5V. Eine Stromversorgung direkt über USB ohne Spannungsteiler o.ä. ist somit nicht möglich.
Wer analoge Eingänge (Licht-, Temperatur-, Drucksensoren) betreiben möchte, sollte bei der Auswahl der Module aufpassen, da nicht jedes Modell über diese Eingänge verfügt. Ebenfalls unterscheiden sich die Modell hinsichtlich ihrer Speicherkapazität die von 0,5MB bis 4MB reicht.
ESP8266 programmieren
Bei der Programmierung des ESP8266 gibt es mehrere Möglichkeiten.
- Nutzung einer bestehenden Firmware die Microphyton- oder LUA Scripte entgegennimmt und ausführt oder
- Erstellen einer eigenen Firmware z.B. über die Arduino IDE
Vorbereitung zum Flashen des ESP8266 Moduls
Zum Flashen des ESP8266 werden folgende Dinge benötigt:
- ESPtool.py (benötigt Python in der Version 2.7.8)
- NODE MCU Firmware (oben in der Infobox)
- ESPlorer.jar benötigtJava ab Version 8.0 (wird zum Flashen nicht unbedingt benötigt)
Zuerst wird Python in der Version 2.7.X installiert eine Anleitung gibt es hier. Zusätzlich wird jetzt das esptool.py installiert, womit der Controller geflasht werden kann.
In der Kommandozeile (Start -> CMD) wird das Pythonscript pip.py ausgeführt, welches im Installationsverzeichnis in dem Ordner Scripts befinden sollte. In diesem Beispiel im Ordner C:\Python27\scripts\
In der Kommandozeile wird somit folgender Befehl eingegeben.
cd c:\Python27\scripts pip install esptool
Zum Programmieren benötigen wir das Programm ESPlorer, welches oben in der Infobox verlinkt ist. Das Programm muß lediglich heruntergeladen und entpackt werden. Allerdings setzt ESPlorer eine Java Installation voraus, eine Anleitung gibt es hier.
Flashen des ESP8266 Moduls
Geflasht wird hier mit der Konsole (CMD) und dem Pythonscript ESPtool.
Mit dem Befehl:
esptool.py --port <COM-Port> --baud<Baudrate> write_flash -fm dio -fs 32m 0x00000 <FirmwareFile>
cd c:\Python27\scripts esptool.py --port COM7 --baud 115200 write_flash -fm dio -fs 32m 0x00000 nodemcu_float_0.9.6-dev_20150704.bin
Wenn die Firmware sich nicht im selben Ordner wie das Programm ESPtool.py befindet, muss der Dateipfad mit angegeben werden.
Flashspeicher löschen
Der Flashspeicher kann auch wieder gelöscht werden mit dem Befehl:
esptool.py --port <COM-Port> --baud<Baudrate> erase_flash
cd c:\Python27\scripts esptool.py --port COM7 --baud 115200 erase_flash
Node MCU Firmware herunterladen
Eine in Java geschriebene und damit plattformunabhängige IDE zum Erstellen und Übertragen der Lua-Scripte ist unter dem Namen ESPlorer kostenlos erhältlich (Java erforderlich). Die Datei ist oben in der Infobox verlinkt. Die heruntergeladene .zip-Datei entpackt ihr nun und startet ESPlorer.jar. Unter Windows sollte dazu ein Doppelklick auf die entsprechende Datei reichen. Wenn Windows nach einen Programm zum öffnen der Datei fragt, müsst ihr Java noch installieren.
Bevor ihr das Programm startet solltet ihr den ESP8266 Controller über das USB Kabel dem Computer verbinden.
Wenn ihr alles richtig gemacht habt, öffnet sich nach einem Doppelklick auf ESPlorer.jar die Benutzeroberfläche: Vorlage:ScreenshotfckLR
Wählt nun im rechten Fenster (EditorFenster) oben in der Dropdownliste den seriellen Port eures Controllers aus und stellt anschließend als Übertragungsgeschwindigkeit 11520 ein. Klickt anschließend auf Open. Vorlage:ScreenshotfckLR
Die Software versucht nun einen Verbindung zum Controller herzustellen. Vorlage:ScreenshotfckLR
Da das Controller schon läuft und aktuell keine Daten vom Board über die serielle Schnittstelle an den PC gesendet werden, kann in dem Fenster nichts angezeigt werden. Also müssen wir den Resetknopf auf dem Board kurz drücken, um einen Neustart zu erzwingen. Nach dem Neustart sollte eine "Got answer!" Nachricht in dem Fenster erscheinen. Unter dieser Nachricht sollte im Klartext zu sehen sein, welche Firmware installiert ist.
Geht bald weiter
Erstellen einer eigenen Firmware mit der Arduino IDE
Vorausgesetzt wird eine aktuelle installierte Arduino IDE. Ein Anleitung gibt es hier.
https://github.com/esp8266/Arduino
Tutorial
Lektion 1 - ESP8266 als Accesspoint
#include <ESP8266WiFi.h> #include <WiFiClient.h> /* Set these to your desired credentials. */ const char *ssid = "ESP_AccessPoint"; const char *password = "Start1234"; void setup() { Serial.begin(115200); delay(10); Serial.println(""); Serial.println("Access Point wird gestartet:"); WiFi.softAP(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("Acces Point ist Online"); Serial.println("SSID: "); Serial.println(WiFi.SSID()); Serial.println("Password: "); Serial.println(*password); Serial.println(""); Serial.println("IP address: "); Serial.println(WiFi.softAPIP()); Serial.println("SubnetMask: "); Serial.println(WiFi.subnetMask()); } void loop() { }
Lektion 2 - ESP8266 als Client
Beispiel:
#include <ESP8266WiFi.h> const char* ssid = "Heimnetzwerk_SSID"; const char* password = "DasGeheimePasswort"; void setup() { // Serielle Schnittstelle initialisieren Serial.begin(115200); delay(10); WiFi.mode(WIFI_STA); 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()); Serial.println("SubnetMask: "); Serial.println(WiFi.subnetMask()); } void loop() { }
Linkliste