ESP8266

Aus besserwiki.de
ESP8266
ESP8266 IC.jpg
ESP8266-IC
HerstellerEspressif Systeme
Typ32-Bit-Mikrocontroller
CPUTensilica Diamond Standard 106Micro (alias L106) @ 80 MHz (Standard) oder 160 MHz
Speicher32 KiB Anweisungen, 80 KiB Benutzerdaten
Eingang17 GPIO-Stifte
Stromversorgung3,3 V DC
NachfolgerESP32
ESP-01 Modul von Ai-Thinker mit ESP8266EX SoC

Der ESP8266 ist ein preiswerter Wi-Fi-Mikrochip mit integrierter TCP/IP-Netzwerksoftware und Mikrocontroller-Fähigkeit, der von Espressif Systems in Shanghai, China, hergestellt wird.

Der Chip wurde in der englischsprachigen Maker-Community im August 2014 durch das ESP-01-Modul des Drittherstellers Ai-Thinker bekannt. Dieses kleine Modul ermöglicht es Mikrocontrollern, sich mit einem Wi-Fi-Netzwerk zu verbinden und einfache TCP/IP-Verbindungen mit Hayes-ähnlichen Befehlen herzustellen. Allerdings gab es anfangs fast keine englischsprachige Dokumentation zu dem Chip und den Befehlen, die er akzeptiert. Der sehr niedrige Preis und die Tatsache, dass es nur wenige externe Komponenten auf dem Modul gab, was darauf hindeutete, dass es schließlich in großen Mengen sehr preiswert sein könnte, zog viele Hacker an, die das Modul, den Chip und die darauf befindliche Software erforschten und die chinesische Dokumentation übersetzten.

Der ESP8285 ist ein ähnlicher Chip mit einem integrierten 1-MiB-Flash-Speicher, der die Entwicklung von Ein-Chip-Geräten ermöglicht, die sich über Wi-Fi verbinden können.

Diese Mikrocontroller-Chips wurden von der ESP32-Familie abgelöst.

Handelsübliches ESP8266-Modul mit Prozessor-Chip (links) und externem Flash-Speicher (rechts) für die Firmware. Im oberen Bildbereich die gedruckte WLAN-Antenne
Bild des ESP8266-Die

Der ESP8266 ist ein kostengünstiger und mit geringem Leistungsbedarf ausgeführter 32-Bit-Mikrocontroller der chinesischen Firma espressif und ermöglicht durch seine offene Bauweise den Aufbau von WLAN-gesteuerten Aktoren und Sensoren. Als freie Entwicklungswerkzeuge stehen unter anderem die GNU Compiler Collection inkl. Toolchain zur Verfügung.

Merkmale

ESP-01-Modul: Drahtgitterzeichnung
  • Prozessor: L106 32-Bit RISC-Mikroprozessor-Kern, basierend auf dem Tensilica Diamond Standard 106Micro, der mit 80 MHz läuft
  • Speicher:
    • 32 KiB Befehls-RAM
    • 32 KiB Befehls-Cache-RAM
    • 80 KiB Benutzerdaten-RAM
    • 16 KiB ETS-Systemdaten-RAM
  • Externer QSPI-Flash: bis zu 16 MiB werden unterstützt (512 KiB bis 4 MiB sind normalerweise enthalten)
  • IEEE 802.11 b/g/n Wi-Fi
    • Integrierter TR-Switch, Balun, LNA, Leistungsverstärker und Anpassungsnetzwerk
    • WEP- oder WPA/WPA2-Authentifizierung, oder offene Netzwerke
  • 17 GPIO-Stifte
  • Serieller Peripherie-Schnittstellenbus (SPI)
  • I²C (Software-Implementierung)
  • I²S-Schnittstellen mit DMA (gemeinsame Nutzung von Pins mit GPIO)
  • UART auf dedizierten Pins, außerdem kann ein reiner Sende-UART auf GPIO2 aktiviert werden
  • 10-bit ADC (Sukzessive Approximation ADC)

Pinbelegung des ESP-01

ESP-01 Modul Pinbelegung

Die Pins, die beim normalen ESP-01-Modul nach außen geführt wurden, sind sehr eingeschränkt:

  1. VCC, Spannung (+3,3 V bis 3,6 V)
  2. GND, Masse (0 V)
  3. RX, Datenpin Empfang X
  4. TX, Datenpin Senden X
  5. CH_PD, Chip power-down, Chip enable, active high
  6. RST, Reset
  7. GPIO 0
  8. GPIO 2

Da beim ESP-01 der GPIO16 nicht nach außen geführt wurde, unterstützt dieser zunächst kein Deep Sleep. Dieser kann durch selbst anbringen (löten) eines Pinout direkt am Chip realisiert werden.

ESP8266 Steckbrief

SDKs

Im Oktober 2014 veröffentlichte Espressif Systems ein Software Development Kit (SDK) zur direkten Programmierung des Chips, wodurch ein separater Mikrocontroller überflüssig wurde. Seitdem gab es viele offizielle SDK-Veröffentlichungen von Espressif; Espressif unterhält zwei Versionen des SDKs - eine, die auf FreeRTOS basiert, und eine, die auf Callbacks basiert.

Eine Alternative zu Espressifs offiziellem SDK ist das quelloffene ESP-Open-SDK, das auf der GNU Compiler Collection (GCC) Toolchain basiert und von Max Filippov gepflegt wird. Eine weitere Alternative ist das "Unofficial Development Kit" von Mikhail Grigorev.

Andere SDKs, meist Open-Source, umfassen:

  • Arduino - Eine C++-basierte Firmware. Mit diesem Kern können die ESP8266-CPU und ihre Wi-Fi-Komponenten wie jedes andere Arduino-Gerät programmiert werden. Der ESP8266 Arduino Core ist über GitHub verfügbar.
  • ESP8266 BASIC - Ein Open-Source-BASIC-ähnlicher Interpreter, der speziell für das Internet der Dinge (IoT) entwickelt wurde. Selbstgehostete browserbasierte Entwicklungsumgebung.
  • ESP Easy - Entwickelt von Enthusiasten der Heimautomatisierung.
  • ESPHome - ESPHome ist ein System zur Steuerung Ihrer ESP8266/ESP32 durch einfache, aber leistungsstarke Konfigurationsdateien und zur Fernsteuerung durch Hausautomatisierungssysteme.
  • Tasmota - Open-Source-Firmware, sehr beliebt bei Heimautomatisierungs-Enthusiasten.
  • ESP-Open-RTOS - Open-Source FreeRTOS-basiertes ESP8266 Software-Framework.
  • ESP-Open-SDK - Freies und offenes (so weit wie möglich) integriertes SDK für ESP8266/ESP8285-Chips.
  • Espruino - Ein aktiv gepflegtes JavaScript-SDK und -Firmware, die Node.js eng emuliert. Unterstützt einige MCUs, darunter den ESP8266.
  • ESPurna - Quelloffene ESP8285/ESP8266-Firmware.
  • Forthright - Portierung von Jones Forth auf den ESP8266-Mikrocontroller.
  • MicroPython - Eine Portierung von MicroPython (eine Implementierung von Python für eingebettete Geräte) auf die ESP8266-Plattform.
  • Moddable SDK - enthält JavaScript Sprach- und Bibliotheksunterstützung für den ESP8266
  • Mongoose OS - Ein Open-Source-Betriebssystem für vernetzte Produkte. Unterstützt ESP8266 und ESP32. Entwickeln Sie in C oder JavaScript.
  • NodeMCU - Eine Lua-basierte Firmware.
  • PlatformIO - Eine plattformübergreifende IDE und ein einheitlicher Debugger, der auf dem Arduino-Code und den Bibliotheken aufsetzt.
  • Punyforth - Forth-inspirierte Programmiersprache für den ESP8266.
  • Sming - Ein aktiv entwickeltes asynchrones C/C++-Framework mit hervorragender Leistung und zahlreichen Netzwerkfunktionen.
  • uLisp - Eine Version der Programmiersprache Lisp, die speziell für Prozessoren mit einer begrenzten Menge an RAM entwickelt wurde.
  • ZBasic für ESP8266 - Ein Subset von Microsofts weitverbreitetem Visual Basic 6, das als Steuersprache für die ZX-Mikrocontrollerfamilie und den ESP8266 angepasst wurde.
  • Zerynth - IoT-Framework für die Programmierung von ESP8266 und anderen Mikrocontrollern in Python.
  • IOTBAH - ist ein Betriebssystem (OS) für Espressif ESP8266

Unterstützt werden momentan neben GCC und der direkten Programmierung in der Programmiersprache C unterschiedliche Firmware-Varianten:

  • Lua-basierte interaktive Programmierung unter der Bezeichnung NodeMCU.
  • Micropython (Python-basierte interaktive Programmierung)
  • Circuitpython (Python-basierte interaktive Programmierung)
  • Arduino-/C++-basierte Programmierung.
  • AT-Command für die Nutzung als Seriell-zu-WLAN-Schnittstelle
  • ESP Easy zur Ansteuerung von Sensoren/Aktoren über WLAN
  • ESP Basic

Die NodeMCU- und Micropython-Firmware-Varianten unterstützen das interaktive Programmieren auf dem ESP8266. Dabei werden Programme im externen Flash-Speicher abgelegt und das komplizierte Speichermanagement wie das nötige blockweise Nachladen von externen Programmdaten in den internen RAM-Speicher durch entsprechende Softwarefunktionen vom Entwickler abstrahiert, was das Schreiben von Programmen für den ESP8266 erheblich erleichtert.

Espressif-Module

ESP-WROOM-02

Dies ist die Serie der ESP8266-basierten Module von Espressif:

Name Aktive Pins Rastermaß Formfaktor LEDs Antenne Abgeschirmt Abmessungen (mm) Hinweise
ESP-WROOM-02 18 1,5 mm 2×9 gewölbt Keine PCB-Leiterbahn Ja 18 × 20 FCC ID 2AC7Z-ESPWROOM02.
ESP-WROOM-02D 18 1,5 mm 2×9 gewölbt Keine PCB-Leiterbahn Ja 18 × 20 FCC ID 2AC7Z-ESPWROOM02D. Revision von ESP-WROOM-02, die sowohl mit 150-mil- als auch mit 208-mil-Flash-Speicherchips kompatibel ist.
ESP-WROOM-02U 18 1,5 mm 2×9 gewölbt Keine U.FL Sockel Ja 18 × 20 Unterscheidet sich von ESP-WROOM-02D dadurch, dass es einen U.FL-kompatiblen Antennenbuchsenanschluss enthält.
ESP-WROOM-S2 20 1,5 mm 2×10 wabenförmig Keine PCB-Leiterbahn Ja 16 × 23 FCC ID 2AC7Z-ESPWROOMS2.

In der obigen Tabelle (und den beiden folgenden Tabellen) umfassen die "aktiven Pins" die GPIO- und ADC-Pins, mit denen externe Geräte an die ESP8266 MCU angeschlossen werden können. Der "Pitch" ist der Abstand zwischen den Pins auf dem ESP8266-Modul, was wichtig ist, wenn das Gerät auf einem Breadboard verwendet werden soll. Der "Formfaktor" beschreibt auch das Modulgehäuse als "2 × 9 DIL", d.h. zwei Reihen von 9 Pins, die "Dual In Line" angeordnet sind, wie die Pins von DIP ICs. Viele ESP-xx-Module verfügen über eine kleine integrierte LED, die so programmiert werden kann, dass sie blinkt und damit Aktivität anzeigt. Es gibt mehrere Antennenoptionen für ESP-xx-Boards, darunter eine Peilsenderantenne, eine integrierte Keramikantenne und ein externer Anschluss, an den eine externe Wi-Fi-Antenne angeschlossen werden kann. Da die Wi-Fi-Kommunikation eine Menge RFI (Radio Frequency Interference) erzeugt, bevorzugen Behörden wie die FCC abgeschirmte Elektronik, um die Interferenz mit anderen Geräten zu minimieren. Einige der ESP-xx-Module sind in einer Metallbox untergebracht, die mit einem FCC-Gütesiegel versehen ist. Die Märkte der ersten und zweiten Welt werden wahrscheinlich eine FCC-Zulassung und abgeschirmte Wi-Fi-Geräte verlangen.

Ai-Thinker-Module

ESP-01 module
Ai-Thinker ESP8266-Module (ESP-12F, schwarze Farbe), verlötet auf Breakout-Boards (weiße Farbe)

Dies ist die erste Serie von Modulen mit dem ESP8266 des Drittherstellers Ai-Thinker, die nach wie vor am häufigsten erhältlich ist. Sie werden unter dem Begriff "ESP-xx Module" zusammengefasst. Um ein funktionsfähiges Entwicklungssystem zu bilden, benötigen sie zusätzliche Komponenten, insbesondere einen seriellen TTL-zu-USB-Adapter (manchmal auch USB-zu-UART-Brücke genannt) und eine externe 3,3-Volt-Stromversorgung. Anfängern in der ESP8266-Entwicklung wird empfohlen, größere ESP8266-Wi-Fi-Entwicklungsboards wie das NodeMCU in Betracht zu ziehen, das die USB-zu-UART-Brücke und einen Micro-USB-Anschluss zusammen mit einem 3,3-Volt-Stromregler bereits auf dem Board integriert hat. Wenn die Projektentwicklung abgeschlossen ist, werden diese Komponenten nicht mehr benötigt, und diese preiswerteren ESP-xx-Module sind eine Option mit geringerem Stromverbrauch und kleinerem Platzbedarf für Produktionsläufe.

Die in der Spalte "Anmerkungen" angegebenen Flash-Speichergrößen gelten für das angegebene Modul und alle darunter liegenden Module in der Tabelle. Ausnahmen, die für ein einzelnes Modul gelten, sind in () angegeben.

Name Aktive Pins Rastermaß Formfaktor LEDs Antenne Abgeschirmt Abmessungen (mm) Hinweise
ESP-01 6 0,1 Zoll 2×4 DIL Ja PCB-Leiterbahn Keine 14.3 × 24.8 512 KiB Flash und blaue Platine von einem generischen Hersteller. 1 MiB Flash, AI-Cloud und schwarze Platine von AI-Thinker.
ESP-01S 6 0,1 Zoll 2×4 DIL Ja PCB-Leiterbahn Keine 14.4 × 24.7 1 MiB Flash
ESP-01M 16 1,6 mm 2×9 Randstecker Keine PCB-Leiterbahn Ja 18.0 × 18.0 Verwendet ESP8285 (1 MiB eingebauter Flash).
ESP-02 6 0,1 Zoll 2×4 mit Wabenstruktur Keine U.FL Sockel Keine 14.2 × 14.2
ESP-03 10 2 mm 2×7 kugelförmig Keine Keramik Keine 17.3 × 12.1
ESP-04 10 2 mm 2×4 mit Wabenstruktur Keine Keine Keine 14.7 × 12.1
ESP-05 3 0,1 Zoll 1×5 SIL Keine U.FL Sockel Keine 14.2 × 14.2
ESP-06 11 verschiedene 4×3 Würfel Keine Keine Ja 14.2 × 14.7 Nicht FCC-zugelassen.
ESP-07 14 2 mm 2×8 Lochblende Ja Keramik + U.FL-Fassung Ja 20.0 × 16.0 Nicht FCC-zugelassen.
ESP-07S 14 2 mm 2×8 Lochblende Keine U.FL Sockel Ja 17.0 × 16.0 FCC und CE zugelassen.
ESP-08 10 2 mm 2×7 kugelförmig Keine Keine Ja 17.0 × 16.0 Nicht FCC-zugelassen.
ESP-09 10 verschiedene 4×3 Würfel Keine Keine Keine 10.0 × 10.0
ESP-10 3 2 mm 1×5 mit Wabenstruktur Keine Keine Keine 14.2 × 10.0
ESP-11 6 1,27 mm 1×8 Lochblende Keine Keramik Keine 17.3 × 12.1
ESP-12 14 2 mm 2×8 wabenförmig Ja PCB-Leiterbahn Ja 24.0 × 16.0 FCC und CE zugelassen.
ESP-12E 20 2 mm 2×8 wabenförmig Ja PCB-Leiterbahn Ja 24.0 × 16.0 4 MiB Flash.
ESP-12F 20 2 mm 2×8 wabenförmig Ja PCB-Leiterbahn Ja 24.0 × 16.0 FCC- und CE-geprüft. Verbesserte Antennenleistung.
ESP-12S 14 2 mm 2×8 wabenförmig Ja PCB-Leiterbahn Ja 24.0 × 16.0 FCC-geprüft.
ESP-13 16 1,5 mm 2×9 gewölbt Keine PCB-Leiterbahn Ja B18,0 × L20,0 Gekennzeichnet als "FCC". Das abgeschirmte Modul ist im Vergleich zu den ESP-12-Modulen seitlich angeordnet.
ESP-14 22 2 mm 2×8 mit Wabenstruktur +6 Ja PCB-Leiterbahn Ja 24.3 × 16.2 Meistens mit "AI Cloud Inside" beworben.

Andere Boards

SparkFun ESP8266 Thing

Der Grund für die Beliebtheit vieler dieser Boards im Vergleich zu den früheren ESP-xx-Modulen ist die Integration einer integrierten USB-zu-UART-Brücke (wie die CP2102 von Silicon Labs oder die CH340G von WCH) und eines Micro-USB-Anschlusses in Verbindung mit einem 3,3-Volt-Regler, der sowohl die Stromversorgung des Boards als auch die Verbindung zum Host-Computer (Software-Entwicklung) sicherstellt - allgemein als Konsole bezeichnet. Bei früheren ESP-xx-Modulen mussten diese beiden Elemente (der USB-zu-Seriell-Adapter und der Regler) separat gekauft und in die ESP-xx-Schaltung eingeklinkt werden. Moderne ESP8266-Boards wie das NodeMCU sind einfacher zu handhaben und bieten mehr GPIO-Pins. Die meisten der hier aufgelisteten Boards basieren auf dem ESP-12E-Modul, aber es werden scheinbar alle paar Monate neue Module vorgestellt.

Name Aktive Pins Rastermaß Formfaktor LEDs Antenne Abgeschirmt Abmessungen (mm) Hinweise
Bolt IoT 14 0,1 Zoll 2×14 DIL Ja PCB-Leiterbahn Ja 30 × 40 Verfügt über eine integrierte SD-Karte und Funktionen wie Lib-Discovery und Fail Safe Mode. Hat eine eigene Cloud für IoT.
Olimex MOD-WIFI-ESP8266 2 0,1 Zoll UEXT-Modul Ja PCB-Leiterbahn Keine ? Nur RX/TX sind mit dem UEXT-Anschluss verbunden.
Olimex MOD-WIFI-ESP8266-DEV 20 0,1 Zoll 2×11 DIL + kastelliert Ja PCB-Leiterbahn Keine 33 × 23 Alle verfügbaren GPIO-Pins sind angeschlossen, außerdem gibt es Pads zum Einlöten des UEXT-Anschlusses (mit RX/TX- und SDA/SCL-Signalen).
NodeMCU DEVKIT 14 0,1 Zoll 2×15 DIL Ja PCB-Leiterbahn Ja 49 × 24.5 Verwendet das ESP-12-Modul; enthält eine USB-zu-Seriell-Schnittstelle.
Adafruit Huzzah ESP8266-Breakout 14 0,1 Zoll 2×10 DIL Ja PCB-Leiterbahn Ja 25 × 38 Verwendet das ESP-12 Modul.
SparkFun ESP8266-Ding WRL-13231 12 0,1 Zoll 2×10 DIL Ja Leiterbahn + U.FL-Buchse Keine 58 × 26 FTDI serieller Header, Micro-USB-Buchse für die Stromversorgung, einschließlich Li-Ionen-Akku-Ladegerät.
KNEWRON Technologies smartWIFI 12 0,1 Zoll 2×20 DIL Ja 1 RGB PCB-Leiterbahn Ja 25.4 × 50.8 CP2102 USB-Brücke, einschließlich Batterieladegerät, Micro-USB-Buchse für Stromversorgung und Batterieladung, 1 RGB-LED und USER/Reflash-Taste.
ArduCAM ESP8266 UNO 12+ 0,1 Zoll Arduino Uno Ja PCB-Leiterbahn Ja 53.4 × 68.6 Verwendet das ESP8266MOD-Modul von AI Thinker und verfügt über einen Micro-USB-Anschluss, Akku-Pins, Kamera-Pins und eine uSD-Karte auf demselben Board. Vollständig kompatibel mit Arduino Uno Shields.
DoIT ESPduino 12 0,1 Zoll Arduino Uno Ja PCB-Leiterbahn Ja 53.4 × 68.6 Verwendet das ESP-WROOM-02 (ESP-13) Modul und einen USB Typ B Anschluss. Vollständig kompatibel mit Arduino Uno Shields.
WetterPlus - SwitchDoc Labs 26+Grove 0,1 Zoll Benutzerdefiniert Ja PCB-Leiterbahn Ja 86.0 × 50.0 Verwendet das AI Thinker Modell ESP8266MOD (ESP-13) Modul und FTDI für die Programmierung und Mini-USB Port für die Stromversorgung. Vollständig kompatibel mit der Adafruit Huzzah Software. Beinhaltet BMP280 Barometer, ADS1115 und Grove I2C Anschlüsse. Stecker für Anemometer/Windfahne/Regeneimer.
WeMos D1 12 0,1 Zoll Arduino Uno Ja PCB-Leiterbahn Ja 53.4 × 68.6 Verwendet das ESP-12F-Modul und die Micro-USB-Buchse. Abgekündigt zugunsten des WeMos D1 R2.
WeMos D1 R2 12 0,1 Zoll Arduino Uno Ja PCB-Leiterbahn Ja 53.4 × 68.6 Verwendet das ESP-12F-Modul und hat eine Micro-USB-Buchse.
WeMos D1 mini 12 0,1 Zoll 2×8 DIL Ja PCB-Leiterbahn Ja 25.6 × 34.2 Verwendet das ESP-12S-Modul und hat eine Micro-USB-Buchse.
WeMos D1 mini Lite 12 0,1 Zoll 2×8 DIL Ja PCB-Leiterbahn Ja 25.6 × 34.2 Basiert auf dem ESP8285, einem ESP8266 mit 1 MiB Flash; hat eine Micro-USB-Buchse.
WeMos D1 mini Pro 12 0,1 Zoll 2×8 DIL Ja Keramik und U.FL-Buchse Ja 25.6 × 34.2 Verwendet den ESP8266EX-Chip; hat eine Micro-USB-Buchse, einen U.FL-Antennenanschluss und 16 MiB Flash.
ESPert ESPresso Lite 16 0,1 Zoll 2×8 DIL Ja PCB-Leiterbahn Ja 26.5 × 57.6 Verwendet das ESP-WROOM-02 Modul. Wird in begrenzter Stückzahl als Beta-Version produziert.
ESPert ESPresso Lite V2.0 24 0,1 Zoll 2×10 DIL Ja PCB-Leiterbahn Ja 28 × 61 Verbesserte Version von ESPresso Lite.
Schaltungsinterner ESP-ADC 18 0,1 Zoll 2×9 DIL Keine U.FL Sockel Ja 22.9 × 14.9 Verwendet den ESP8266EX Chip.
Watterott ESP-WROOM02-Breakout 14 0,1 Zoll 2×10 DIL Ja PCB-Leiterbahn Ja 40.64 × 27.94 Verwendet das Espressif ESP-WROOM-02 Modul.
Geek Wave Solution IOT WROOM-02 Dev. Platine 20 0,1 Zoll ? Ja PCB-Leiterbahn Ja 93.80 × 80.02 Entwicklungsboard mit Espressif ESP-WROOM-02 Modul und vier Relais.
Witty 2-teiliges Board 20 0,1 Zoll ? Ja PCB-Leiterbahn Ja ? Entwicklungsboard mit Espressif ESP8266 ESP-12E und separater Platine für CH340G USB-Schnittstelle.

ESP32-C3

Im Jahr 2020 kündigte Espressif einen neuen Chip ESP32-C3 an, der pinkompatibel zum ESP8266 ist. Er basiert auf einer Single-Core RISC-V 32-Bit CPU mit einer Taktrate von bis zu 160 MHz. Er verfügt über 400 KiB SRAM und 384 KiB ROM Speicherplatz.