Der ESP8266 ist ein kleiner Chip von der chinesischen Firma Espressif der es ermöglicht die Daten die er an seiner seriellen Schnittstelle empfängt über eine WLAN-Verbindung bereitzustellen. Dabei kann der Chip zum einem als Client als auch als Server fungieren.
Hardware
Der ESP8266-Chip benötigt eine Versorgungsspannung von +3,3V. Die Eingänge sind nicht 5V tolerant und dürfen ausschließlich mit einer Spannung von +3,3V beaufschlagt werden.
Eckdaten
Nachfolgend einige Eckdaten die dem englischsprachigen Datenblatt des ESP8266 entnommen wurden.
- 802.11 b/g/n protocol
- Wi-Fi Direct (P2P), soft-AP
- Integrated TCP/IP protocol stack
- Integrated TR switch, balun, LNA, power amplifier and matching network
- Integrated PLL, regulators, and power management units
- +19.5dBm output power in 802.11b mode
- Integrated temperature sensor
- Supports antenna diversity
- Power down leakage current of < 10uA
- Integrated low power 32-bit CPU could be used as application processor
- SDIO 2.0, SPI, UART
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU & A-MSDU aggregation & 0.4µs guard interval
- Wake up and transmit packets in < 2ms
- Standby power consumption of < 1.0mW (DTIM3)
Pinbelegung
Pin-Nr. | Name | Bemerkung |
---|---|---|
1 | GND | Masse |
2 | TXD | Daten senden (max. 3,3V) |
3 | GPIO2 | Ein- / Ausgangspin |
4 | PD | Abschalten (low = aktiv) |
5 | GPIO0 | Ein- / Ausgangspin |
6 | RST | Reset (low = aktiv) |
7 | RXD | Daten empfangen (max. 3,3V) |
8 | VCC | Versorgungsspannung 3,3V (max. 3,6V) |
Software
Befehle
Werden Befehle an das ESP8266 gesendet müssen diese zwingend mit einem <CR><LF> angeschlossen werden um von dem ESP8266 als Befehl erkannt zu werden.
Allgemeine Befehle
Befehle die Informationen über das ESP8266 bereitstellen.
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT | Test-Befehl, gibt immer "OK" zurück wenn Verbindung besteht | AT | |
AT+RST | Führ Reset durch | AT+RST | |
AT+GMR | Gibt Firmware-Informationen aus | AT+GMR |
Allgemeine Wifi Befehle
Befehle zum setzen von allgemeinen Einstellungen für Verbindungen des ESP8266.
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT+CWMODE=<mode> | Setzt Wifi-Betriebsmodus | 1 = Client 2 = AP 3 = Client + AP |
AT+CWMODE=3 |
AT+CIPMUX=<mode> | Einstellungen für mehrere Verbindungen | 0 = Einzelverbindung 1 = mehrere Verbinungen |
AT+CIPMUX=1 |
AT+CIPMODE=<mode> | Einstellen des Datenmodus | 0 = Transparent 1 = Datenmodus |
AT+CIPMODE=1 |
Client Wifi Befehle
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT+CWJAP="<ssid>","<pass>" | Verbinden mit Wifi-Netzwerk (WLAN-Router) | <ssid> = SSID <pass> = Password |
AT+CWJAP="POLLOS","HEISENBERG" |
AT+CWLAP | Ausgabe der zurzeit verfügbaren WLAN-Netzwerke | AT+CWLAP | |
AT+CWQAP | Trennt verbindung zum WLAN-Netzwerk | AT+CWQAP | |
AT+CIFSR | Ausgabe der eigenen IP-Adresse | AT+CIFSR |
AP Wifi Befehle
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT+CWSAP="<ssid>","<pass>"[,<chan>,<enc>] | Einstellungen für das WLAN-Netzwerk | <ssid> = SSID <pass> = Password <chan> = Kanal <enc> = Verschlüsselung (0 = Offen, 1 = WEP, 2 = WPA_PSK, 3 = WPA2_PSK, 4 = WPA_WPA2_PSK) |
AT+CWSAP="POLLOS","HEISENBERG",1,3 |
AT+CWLAP | Ausgabe der zurzeit verfügbaren WLAN-Netzwerke | AT+CWLAP | |
AT+CWLIF | Zeigt verbundene Client-PCs an | AT+CWLIF |
Client IP Befehle
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT+CIPSTATUS | Ausgabe der Verbundenen IP | AT+CIPSTATUS | |
AT+CIPSTART="<type>","<address>",<port> | Aufbauen einer Einzelverbindung (AT+CIPMUX=0) |
<type> = TCP oder UDP <address> = IP-Adresse <port> = Port |
AT+CIPSTART=“TCP”,”192.168.0.1”,666 |
AT+CIPSEND=<len> | Senden von Daten bei Einzelverbindung | <len> = Länge der Daten (byte) | AT+CIPSEND=5 >Hallo |
AT+CIPCLOSE | Schließen einer bestehenden TCP/UDP-Verbindung | AT+CIPCLOSE | |
AT+CIPSTART="<type>","<address>",<port> | Aufbauen von mehreren Verbindungen (AT+CIPMUX=1) |
<type> = TCP oder UDP <address> = IP-Adresse <port> = Port |
AT+CIPSTART=“TCP”,”192.168.0.1”,666 |
AT+CIPSEND=<id>,<len> | Senden von Daten bei mehreren Verbindungen | <id> = 0...4 <len> = Länge der Daten (byte) |
AT+CIPSEND=0,5 >Hallo |
AT+CIPCLOSE=<id> | Schließen einer definierten bestehenden TCP/UDP-Verbindung | AT+CIPCLOSE=0 |
Server IP Befehle
Befehl | Beschreibung | Parameter | Beispiel |
---|---|---|---|
AT+CIPSERVER=1[,<port>] | Startet einen TCP-Server | <port> = TCP-Port | AT+CIPSERVER=1,666 |
AT+CIPSERVER=0 | Beendet den TCP-Server | AT+CIPSERVER=0 | |
AT+CIPSTO=<timeout> | Setzt Timeout für TCP-Server Verbindungen | <timeout> = 0...28800s | AT+CWLIF |