ESP32 und Arduino

ESP32 vs. ESP8266 für MQTT-Projekte: Speicher, TLS, Peripherie und Kosten

ESP32 oder ESP8266 für ein MQTT-Gerät? Dieser Vergleich behandelt Speicher, TLS-Fähigkeit, Peripherie, Stromverbrauch, Bibliotheksunterstützung und Kosten, mit klaren Empfehlungen je nach Projekttyp.

ESP32- und ESP8266-Entwicklungsboards nebeneinander für einen MQTT-Vergleich ESP32 vs. ESP8266
Probieren Sie es auf Ihrem eigenen MQTT-Broker ausHolen Sie sich im Free-Tarif einen privaten, verwalteten MQTT-Broker und starten Sie mit fertigen Codebeispielen.
Kostenlos testen Codebeispiele Keine Kreditkarte erforderlich

ESP32 vs. ESP8266 ist bei den meisten WLAN-basierten MQTT-Projekten die erste Hardwareentscheidung, und die richtige Antwort hängt weniger von der reinen Rechenleistung ab als von Speicher, TLS und der benötigten Peripherie. Dieser Vergleich geht die Unterschiede durch, die zählen, wenn Ihr Gerät monatelang mit einem Broker verbunden bleiben muss. Am Ende wissen Sie, welchen Chip Sie für Ihren nächsten Sensor, Aktor oder Ihr nächstes Gateway kaufen sollten.

Die kurze Antwort

Wählen Sie den ESP32 für neue Designs, die verschlüsselte Verbindungen, mehr als eine Handvoll Sensoren, Bluetooth, Over-the-Air-Updates mit ausreichend Reserve oder irgendeine Form lokaler Verarbeitung benötigen. Wählen Sie den ESP8266 für sehr einfache, kostensensible Knoten wie ein einzelnes Relais oder einen Temperatursensor, besonders wenn Sie die Boards oder eine bewährte Codebasis bereits haben.

Der Rest dieses Artikels erklärt, warum.

Vergleich der Spezifikationen

Die Tabelle vergleicht den klassischen ESP32 (Module der ESP32-WROOM-32-Klasse) mit dem ESP8266 (Module der ESP-12-Klasse). Neuere ESP32-Varianten werden weiter unten behandelt.

Merkmal ESP8266 ESP32 (klassisch)
CPU Single-Core Tensilica L106, 80/160 MHz Dual-Core Xtensa LX6, bis 240 MHz
Daten-RAM Etwa 80 KB Benutzer-RAM, deutlich weniger frei für Ihren Sketch 520 KB SRAM
WLAN 802.11 b/g/n, 2,4 GHz 802.11 b/g/n, 2,4 GHz
Bluetooth Nein Classic Bluetooth und BLE
GPIO Etwa 17, mehrere mit Einschränkungen beim Booten Etwa 34
ADC Ein 10-Bit-Kanal Bis zu 18 Kanäle, 12 Bit
Hardware-Krypto Nein Beschleunigung für AES, SHA, RSA
Weitere Peripherie UART, SPI, I2C (Software), PWM UART, SPI, I2C, I2S, CAN (TWAI), Touch, DAC, viele PWM-Kanäle
Deep-Sleep-Strom Niedrig Niedrig, plus ULP-Coprozessor
Arduino-Core esp8266 by ESP8266 Community esp32 by Espressif Systems
FreeRTOS Nein (Non-OS-SDK unter Arduino) Ja

Die maßgeblichen Datenblätter und Variantentabellen finden Sie in der Espressif-Dokumentation.

Speicher: der wichtigste Unterschied

MQTT selbst ist schlank. Eine PubSubClient-Verbindung mit kleinem Puffer passt problemlos auf beide Chips. Zum entscheidenden Faktor wird der Speicher, sobald Sie hinzufügen, was echte Produkte brauchen.

Beim ESP8266 belegen WLAN, der TCP/IP-Stack und der Arduino-Core bereits einen großen Teil des RAMs, sodass für Ihre Anwendung ein vergleichsweise kleiner Heap übrig bleibt. Eine TLS-Session benötigt dann einen beträchtlichen zusammenhängenden Block für ihre Record-Puffer und Zertifikatsprüfungen. Kommen eine JSON-Bibliothek, eine Web-Konfigurationsseite und ein 2-KB-MQTT-Puffer hinzu, sind Sie nah an der Grenze. Das Gerät funktioniert vielleicht auf Ihrem Schreibtisch und versagt Tage später, weil der Heap fragmentiert ist und der nächste TLS-Handshake keinen ausreichend großen Block mehr findet.

Die 520 KB SRAM des ESP32 ändern das. Sie können TLS, einen Webserver, einen größeren MQTT-Puffer und ein JSON-Dokument gleichzeitig mit reichlich Reserve betreiben, und viele Module bringen zusätzlich PSRAM mit.

Praktische Regel: Braucht Ihr ESP8266-Projekt TLS und mehr als eine einfache Sensorschleife, planen Sie Zeit für Speicheroptimierung ein oder wechseln Sie zum ESP32.

TLS-Fähigkeit

Produktives MQTT sollte TLS auf Port 8883 mit Zugangsdaten verwenden. Beide Chips können das, aber die Erfahrung unterscheidet sich:

  1. Zertifikatsprüfung. Der WiFiClientSecure des ESP32 nutzt mbedTLS und akzeptiert mit setCACert() ein PEM-Root-Zertifikat. Der ESP8266 nutzt BearSSL, das zusätzlich die Gültigkeitsdaten prüft, daher müssen Sie die Zeit vor dem Verbinden per NTP synchronisieren.
  2. Handshake-Geschwindigkeit. Hardwarebeschleunigung und schnellere Kerne lassen den ESP32 Handshakes zügig abschließen. Der ESP8266 ist spürbar langsamer, besonders bei 80 MHz, was bei Batteriegeräten zählt, die sich bei jedem Aufwachen neu verbinden.
  3. Gleichzeitige Sessions. Ein ESP32 kann problemlos mehr als eine TLS-Verbindung halten, zum Beispiel MQTT plus einen HTTPS-OTA-Download. Auf einem ESP8266 ist das riskant.
  4. Puffer-Tuning. Der ESP8266 kann TLS-Puffer per Maximum Fragment Length Negotiation nur verkleinern, wenn der Server das unterstützt, darauf verlassen können Sie sich also nicht.

Unser ESP8266-MQTT-Tutorial zeigt das genaue BearSSL-Setup, und das ESP32-MQTT-Tutorial zeigt das Pendant für den ESP32.

Peripherie und Sensoren

Der einzelne 10-Bit-ADC ist die häufigste Einschränkung des ESP8266. Brauchen Sie mehr als einen Analogeingang, ergänzen Sie einen externen ADC wie den ADS1115 über I2C. Mehrere GPIOs haben zudem Funktionen beim Booten, sodass weniger Pins nutzbar sind, als es scheint.

Der ESP32 bietet viele ADC-Kanäle, kapazitive Touch-Eingänge, I2S für Mikrofone und Audio, einen CAN-Controller (TWAI) für Fahrzeug- und Industriebusse sowie Bluetooth Low Energy. Gerade beim Retrofit älterer Maschinen, etwa mit Sensoren für Energiemonitoring oder Zustandsüberwachung, sind CAN und mehrere Analogeingänge oft das entscheidende Argument. BLE ist besonders für MQTT-Gateways nützlich: Der ESP32 kann Messwerte von BLE-Sensoren einsammeln und über WLAN an einen Broker veröffentlichen.

Software- und Bibliotheksunterstützung

Beide Chips werden vom Arduino-Ökosystem gut unterstützt, doch die aktive Entwicklung findet beim ESP32 statt.

Bibliothek ESP8266 ESP32
PubSubClient Ja Ja
ArduinoMqttClient Ja Ja
AsyncMqttClient Ja, mit ESPAsyncTCP Ja, mit AsyncTCP
Nativer ESP-IDF-MQTT-Client (esp-mqtt) Nein Ja, mit MQTT-5-Unterstützung
FreeRTOS-Tasks Nein Ja

Die FreeRTOS-Basis des ESP32 ist für MQTT-Firmware wichtig. Sie können den Netzwerk-Client in einem Task und die Sensorabtastung in einem anderen ausführen, sodass ein langsamer Broker-Reconnect Ihre Regelschleife nicht anhält. Beim ESP8266 teilt sich alles eine Schleife, und lange blockierende Aufrufe lösen den Watchdog aus. Mehr über nicht blockierende Designs lesen Sie in Async MQTT Client auf dem ESP32.

Stromverbrauch

Beide Chips verbrauchen den Großteil ihrer Energie für das Funkmodul. Bei Batteriesensoren, die aufwachen, veröffentlichen und wieder schlafen, kommt es vor allem darauf an, wie schnell die Verbindung steht und wie lange das Funkmodul aktiv bleibt, nicht auf den Ruhestrom der CPU. Der schnellere TLS-Handshake des ESP32 kann seinen höheren Aktivstrom ausgleichen, und sein Ultra-Low-Power-Coprozessor kann einen Sensor überwachen, während die Hauptkerne schlafen. Für einfache Knoten nach dem Muster aufwachen, senden, schlafen mit unverschlüsseltem MQTT in einem vertrauenswürdigen Netzwerk bleibt der ESP8266 eine vernünftige Wahl.

Kosten und Verfügbarkeit

Der ESP8266 ist meist das günstigere Modul, und Entwicklungsboards sind für beide Chips preiswert und weit verbreitet. In den meisten Projekten ist der Preisunterschied gering im Vergleich zu Sensor, Gehäuse, Netzteil und Ihrer Entwicklungszeit. Etwas mehr für einen ESP32 auszugeben, spart oft Stunden an Speicheroptimierung. Preise ändern sich häufig, vergleichen Sie daher aktuelle Angebote seriöser Händler, statt sich auf alte Zahlen aus Foren zu verlassen.

Und die neueren ESP32-Varianten?

Die Espressif-Familie ist weit über den klassischen ESP32 hinausgewachsen:

  • ESP32-C3: Single-Core-RISC-V, WLAN und BLE, günstig. Der natürliche moderne Ersatz für viele ESP8266-Designs, bei dem TLS bequem bleibt.
  • ESP32-S3: Dual-Core mit Vektorbefehlen, USB OTG und oft PSRAM, gut für Kamera-, Audio- und Edge-Processing-Workloads.
  • ESP32-C6: ergänzt Wi-Fi 6 und ein 802.15.4-Funkmodul für Thread und Zigbee, nützlich für Gateways.

Reizt Sie der ESP8266 nur wegen der Kosten, schauen Sie sich zuerst den ESP32-C3 an.

Checkliste zur Entscheidung

Beantworten Sie diese Fragen der Reihe nach. Das erste "Ja" entscheidet:

  1. Brauchen Sie Bluetooth, CAN, I2S, Touch oder mehr als einen Analogeingang? Wählen Sie den ESP32.
  2. Nutzt das Gerät TLS und betreibt einen Webserver, OTA oder große JSON-Payloads? Wählen Sie den ESP32.
  3. Brauchen Sie lokale Verarbeitung, mehrere Tasks oder MQTT 5 auf dem Gerät? Wählen Sie den ESP32 (ESP-IDF).
  4. Geht es um einen einzelnen Sensor oder ein Relais mit unverschlüsseltem MQTT in einem vertrauenswürdigen Netzwerk und vorhandenen ESP8266-Boards? Dann ist der ESP8266 in Ordnung.
  5. Immer noch unentschlossen? Wählen Sie einen ESP32-C3 als günstige, moderne und TLS-freundliche Option.

Die Broker-Seite ist identisch

Welchen Chip Sie auch wählen, dem Broker ist es egal. Beide verbinden sich mit denselben MQTT-3.1.1-Paketen mit denselben Topics. Testen Sie zunächst auf broker.connectmq.com, dem kostenlosen öffentlichen MQTT-Broker von ConnectMQ, der für Tests und Prototypen gedacht ist, mit einer eindeutigen Client ID und einem eindeutigen Topic-Präfix:

mosquitto_sub -h broker.connectmq.com -p 1883 -i compare-91c4 -t "connectmq/demo/compare-91c4/#" -v

Flashen Sie dann dasselbe Topic-Layout auf einen ESP32 und einen ESP8266 und vergleichen Sie Reconnect-Zeiten und freien Heap in Ihrer eigenen Umgebung. Dieses kleine Experiment verrät Ihnen mehr als jedes Datenblatt. Ist die Wahl getroffen, ist das ESP32-IoT-Tutorial ein guter nächster Schritt, und PubSubClient ist auf beiden Boards die Bibliothek für den Einstieg.

Verbinden Sie beide Chips mit ConnectMQ

Wenn Ihr Gerät die Werkbank verlässt, geben Sie ihm private Zugangsdaten auf einem verwalteten MQTT-Broker. In der Fertigung, wo Werksnetze TLS und Zugangsdaten pro Gerät meist vorschreiben, spricht das zusätzlich für den ESP32 mit seinen Speicherreserven. ConnectMQ betreibt MQTT 3.1.1 und 5.0 über TCP 1883, TLS 8883 und WebSockets, mit einem Portal, das Live-Topics, verbundene Geräte und Schwellenwert-Alarme anzeigt, egal ob Ihre Flotte aus ESP32, ESP8266 oder beiden besteht. Hintergründe zur Wahl der Infrastruktur finden Sie in unserem Leitfaden zu den Optionen für einen Cloud-MQTT-Broker. Erstellen Sie einen kostenlosen Serverless Broker unter app.connectmq.com, ohne Kreditkarte.

Häufig gestellte Fragen

Ist der ESP8266 veraltet?

Nicht veraltet, aber für die meisten neuen Designs nicht mehr die beste Wahl. Für einfache Knoten bleibt er in Ordnung, während der ESP32-C3 dieselbe günstige Nische mit mehr Speicher und besserem TLS abdeckt.

Beherrscht der ESP8266 MQTT über TLS?

Ja, mit BearSSL und sorgfältigem Speichermanagement. Synchronisieren Sie die Uhr, halten Sie den MQTT-Puffer klein und vermeiden Sie Heap-Fragmentierung, dann funktioniert es für einfache Sensoren zuverlässig.

Unterstützt der ESP32 MQTT 5?

Der MQTT-Client von ESP-IDF unterstützt MQTT 5. Die beliebten Arduino-Bibliotheken PubSubClient und ArduinoMqttClient verwenden MQTT 3.1.1, das jeder große Broker weiterhin unterstützt.

Können ESP32- und ESP8266-Geräte denselben Broker nutzen?

Ja. MQTT ist hardwareunabhängig, sodass beide Chips auf demselben Broker dieselben Topics veröffentlichen und abonnieren können, solange jedes Gerät eine eindeutige Client ID verwendet.

Verwandte Artikel

ESP32 NTP MQTT Zeitstempel: genaue Uhrzeit in jeder Nachricht

Synchronisieren Sie die ESP32-Uhr per NTP, formatieren Sie Zeitstempel in ISO 8601 und Epoch-Millisekunden und hängen Sie sie an MQTT-Payloads, damit Messwerte ihren echten Erfassungszeitpunkt behalten, auch wenn sie verspätet veröffentlicht werden.

8 Min. Lesezeit

Alle Artikel →

Ihr privater MQTT-Broker ist nur wenige Klicks entfernt

Konto anlegen, Broker-Zugangsdaten erhalten und das erste Gerät verbinden — ohne Server, die installiert, gepatcht oder skaliert werden müssen.