Forum: Mikrocontroller und Digitale Elektronik Was kann ein ESP32 besser als ein RPi Zero-W?


von Bauform B. (bauformb)


Lesenswert?

Guten Morgen!

Mich fasziniert schon lange die Begeisterung für ESP32, jetzt muss ich 
doch mal nachfragen. Nebenan gibt's mal wieder Schwierigkeiten mit ESP32 
für Wettersensoren -- ok, dafür taugt der Zero-W wirklich nicht. Aber 
verglichen mit den Wetterstationen aus dem Supermarkt taugt ein ESP auch 
nicht.

Ein Vorteil für ESP32: wenigstens ein Analog-Eingang, aber eine zweite 
Platine braucht man doch trotzdem. Damit könnte der Zero-W auch messen. 
Also, was ist das Geheimnis?

von Andreas B. (bitverdreher)


Lesenswert?

Ich nehme einfach das was besser passt. ;-)

von Jan (dunno)


Lesenswert?

Könnte am Formfaktor und dem Betriebssystem liegen..

Ein Linux betreiben & warten zu müssen nur um ein paar Daten ins WLAN zu 
funken könnte dem ein oder anderen wie Overkill erscheinen, wenn's auf 
dem ESP32 auch 2 arduino-libs tun um das gleiche zu erreichen..?

Und den Homeassistent betreibst du halt dann auf dem echten PI..

Also ich hab keinen Einsatzzweck für die Kanone im Spatzenoutfit.. :)

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Ich denke nicht man kann einen PC mit einem MCU vergleichen, das sind 
völlig verschiedene Welten.

von Bauform B. (bauformb)


Lesenswert?

Jan schrieb:
> Ein Linux betreiben & warten zu müssen

Interessant, eigentlich braucht jedes Gerät mit WLAN 
Sicherheits-Updates. Oder, wenn ein ESP keine Wartung braucht, warum 
braucht Linux eine? Wohlgemerkt, in der gleichen Anwendung.

> wenn's auf dem ESP32 auch 2 arduino-libs tun

ok, ein klarer Fall von "aller Anfang ist schwer". Wenn jemand bei Null 
anfängt, ist alles gleich undurchsichtig, aber nach dem dritten Gerät...

Alexander schrieb:
> Ich denke nicht man kann einen PC mit einem MCU vergleichen, das
> sind völlig verschiedene Welten.

Naja, keine Tastatur, kein Bildschirm, ungefähr gleich groß, gleiche 
Stromaufnahme, außer WLAN wenig interessante Peripherie -- so viel 
Unterschied ist da nicht, wenn man einen ESP durch einen Zero ersetzt.

von Andreas B. (bitverdreher)


Lesenswert?

Bauform B. schrieb:
> so viel
> Unterschied ist da nicht, wenn man einen ESP durch einen Zero ersetzt.

Der Zero hat einiges mehr Rechenleistung. Auf einem ESP bekommst Du kein 
Linux drauf.
Der Zero kostet auch einiges mehr.

von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Ein RPi Zero-W hat ein Betriebssystem. Die Hardware verhält sich wie ein 
PC. Du kannst eine Tastatur und einen Bildschirm anschließen. 512MB RAM 
vs 520 KB RAM ist wohl ein riesiger Unterschied. Beim RPi programmierst 
Du alles in Software über die OS Abstraktionsschicht. Das ist so 
unterschiedlich wie es unterschiedlicher nicht sein kann. Und zwar so 
unterschiedlich dass ich gar nicht wüsste wie ich einen ESP32 durch 
einen RPi Zero-W ersetzen könnte (ADC, DAC, PWM, Timer, UART, SPI, I²C 
alles flexibel mapbar über GPIO Matrix und in real-time)

Frage an Dich: Wie würdest Du ein Projekt mit dem RPi Pico RP2040‑W 
realisieren? Vielleicht wird ja dann der Unterschied PC vs MCU klarer..

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Alexander schrieb:
> 512MB RAM vs 520 KB RAM ist wohl ein riesiger Unterschied.

Beides ist viel mehr, als die meisten Anwendungen brauchen. Also: kein 
Unterschied.

> Beim RPi programmierst Du alles in Software über die
> OS Abstraktionsschicht.

Gerade beim ESP geht es ohne so eine Schicht ja auch nicht. Damit kannst 
du ihn nicht mehr wie einen ATtiny programmieren. Aber manche benutzen 
auch freiwillig und gerne noch mehr Abstraktion auf noch kleineren 
Rechnern ;)

> alles flexibel mapbar über GPIO Matrix und in real-time

ok, das ist ein Vorteil beim Platinelayout. Aber real-time hat auch 
Grenzen, dies war der Anlass für diese meine Frage:

Christoph M. schrieb:
> Im Moment sieht es danach aus, als wenn der ESP-Wifi Treiber Zeit in der
> Größenordnung von einer Sekunde braucht, um zu initialisieren. Das
> treibt den Stromverbrauch dann in die Höhe.

Alexander schrieb:
> Wie würdest Du ein Projekt mit dem RPi Pico RP2040‑W
> realisieren? Vielleicht wird ja dann der Unterschied PC vs MCU klarer.

Fast genau so, wie mit einem ESP? Wie sonst? Der Pico-W ist 
offensichtlich der britische ESP. Natürlich ist der dem ESP ähnlicher 
als dem Zero. Allerdings fand ich das letzte Pico-Datenblatt besser als 
die von Espressif. Von daher (wenn ich WLAN brauche) wäre meine Hitliste 
Zero, Pico, ESP. Ja, ich kann mir auch eine Anwendung vorstellen wo es 
Pico, ESP, Zero wäre.

Edit: die ganze Sekunde WLAN-Init ist natürlich ein WLAN-Problem und 
kein ESP-Problem.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Den RP2040‑W habe ich mal ausgewählt um nicht Äpfel (oder Himbeeren) mit 
Birnen zu vergleichen.

Hardware-CAN würde mir als Alleinstellungsmerkmal einfallen. Nutze ich 
aber nicht, ist auch über SPI völlig ausreichend.

: Bearbeitet durch User
von Obelix X. (obelix)


Lesenswert?

Bauform B. schrieb:
> Naja, keine Tastatur, kein Bildschirm, ungefähr gleich groß, gleiche
> Stromaufnahme, außer WLAN wenig interessante Peripherie -- so viel
> Unterschied ist da nicht, wenn man einen ESP durch einen Zero ersetzt.

Bobbycar oder Lamborgini ist alles das gleiche, hat 4 Räder und ein 
Lenkrad.

Installiere mal auf dem ESP ein Linux mit ausgewachsenem HTTP-Server, 
MQTT-Broker, Postgres Datenbank, eine Mediaplayer der Full-HD Videos 
abspielt und das alles gleichzeitig. Einfach mal in die Datenblätter 
schauen.

Man nimmt halt das was besser passt.

PS: Oft läuft auf dem ESP auch ein OS - FreeRTOS. Aber das kann man 
nicht mit Linux vergleichen.

von Ulrich P. (uprinz)


Lesenswert?

Wenn man Low Level programmieren kann und will, kann man viele der auf 
RasPi umgesetzt Projekte auch auf einem ESP32 umsetzen. Aber viele 
Hobby-Projekte verlaufen halt nach dem Motte, ich scripte mir was auf 
dem Pi in Python zusammen und wenn es geht, dann kommt eine Kiste drum 
und das Ding läuft, bis die SD-Carte den Geist aufgibt.

Ich kann besser C als Python und daher schreibe ich den Code für meine 
Basteleien in C und das auf einem ESP32 in Arduino, FreeRTOS oder 
Bare-Metal. Die Bootzeit und die Langzeitstabilität von Geräten ohne 
SD-Card gefällt mir besser.

Wenn ich Linux drunter brauche, habe ich schon mal OrangePi Zero aus dem 
on Board SPI Flash booten lassen von einem TFTP/PXE. Da braucht es dann 
auch keine SD.

Also klare Antwort in Zustimmung zu meinen Vorrednern: Den perfekten uC 
gibt es nicht, es gibt nur den für Dich perfekt erscheinenden uC für das 
Problem, dass Du gerade glaubst zu haben.

Grundsätzlich muss man im Auge behalten, dass Interpreter Sprachen immer 
etwas zusätzliche Rechenleistung benötigen als Compiler Sprachen. Und 
diese zusätzliche Leistung kommt durch zusätzliche Hardware, die eben 
auch zusätzliche Energie benötigt. Und ab einer gewissen Anzahl Module 
wird es halt auf der Stromrechnung sichtbar. Aber auch da wieder der 
Hinweis, alles ist Relativ. Wer sich eine Fancy LED Beleuchtung baut, 
die 24/7 tolle Sachen darstellt, der nimmt bei 30W LED Leistung bis zu 
9W PasPi billigend in Kauf. Wer eine intelligente Lichtleiste baut, 
damit eben Energie gespart wird, der legt auf 0,5W bis 2W Wert. Und wenn 
es dann noch Batterie-betrieben werden soll, da wird noch mal mit dem 
spitzen Bleistift gerechnet.

Ps:
Ich habe auch schon Projekte am Raspi 400 auf Machbarkeit getestet und 
dann in FreeRTOS auf einem ESP32 umgesetzt. Das eine spricht ja nicht 
gegen das andere.

: Bearbeitet durch User
von Ein T. (ein_typ)


Lesenswert?

Bauform B. schrieb:
> Interessant, eigentlich braucht jedes Gerät mit WLAN
> Sicherheits-Updates. Oder, wenn ein ESP keine Wartung braucht, warum
> braucht Linux eine? Wohlgemerkt, in der gleichen Anwendung.

Nunja, Linux ist ein vollständiges Betriebssystem und hat damit 
potentiell eine wesentlich größere Angriffsoberfläche als ein reiner 
WLAN-Client auf einem ESP. Nichtsdestotrotz wäre eine Wartung natürlich 
auch auf dem ESP sinnvoll, wenn verwendete Bibliotheken aktualisiert 
worden sind.

von Rene K. (xdraconix)


Lesenswert?

Ulrich P. schrieb:
> Leistung bis zu 9W PasPi billigend in Kauf. Wer eine intelligente
> Lichtleiste baut, damit eben Energie gespart wird, der legt auf 0,5W bis
> 2W Wert.

Nun, der Zero-2W um den es hier geht hat im normalen Betrieb 0,7W und 
unter Vollast 2,5-3W.

von Obelix X. (obelix)


Lesenswert?

Bauform B. schrieb:
> Interessant, eigentlich braucht jedes Gerät mit WLAN
> Sicherheits-Updates. Oder, wenn ein ESP keine Wartung braucht, warum
> braucht Linux eine? Wohlgemerkt, in der gleichen Anwendung.

Einen ESP hängt man genau aus diesem Grund nicht in ein öffentlich 
zugängliches Netzwerk.

von Bauform B. (bauformb)


Lesenswert?

Obelix X. schrieb:
> Bauform B. schrieb:
>> Interessant, eigentlich braucht jedes Gerät mit WLAN
>> Sicherheits-Updates. Oder, wenn ein ESP keine Wartung braucht, warum
>> braucht Linux eine? Wohlgemerkt, in der gleichen Anwendung.
>
> Einen ESP hängt man genau aus diesem Grund nicht in ein öffentlich
> zugängliches Netzwerk.

Ein Linux auch nicht; warum sollte man?

Ein T. schrieb:
> Nunja, Linux ist ein vollständiges Betriebssystem und hat damit
> potentiell eine wesentlich größere Angriffsoberfläche als ein reiner
> WLAN-Client auf einem ESP.

Ja, wenn man einfach eine SD-Karte mit original Raspberry OS rein 
steckt. Nicht, wenn, wie auf dem ESP, nur ein WLAN-Client drauf läuft. 
Aber das ist beim ersten Mal doch etwas mehr Aufwand, als beim ESP.

Also gut, ihr habt mich überzeugt, es gibt doch mehr verschiedene 
Anwendungsfälle als meine. Praktische Erfahrung mit dem einen oder 
anderen macht auch viel aus ;)

von Stefan S. (seife)


Lesenswert?

Internetradio, einmal mit Pi 2W und einmal mit ESP32WROVER.

Zeit von "Power on" bis "dudelt":

Pi 2W: > 30s
ESP32: 3s

Ja, man könnte den Raspi "bare metal" ohne Linux betreiben, dann wäre 
der auch schneller, aber dazu ist meine Restlaufzeit zu gering und mit 
dem ESP32 geht das ganz ohne Gebastel.

von Christoph M. (mchris)


Lesenswert?

Bauform B. schrieb:
> Mich fasziniert schon lange die Begeisterung für ESP32, jetzt muss ich
> doch mal nachfragen. Nebenan gibt's mal wieder Schwierigkeiten mit ESP32
> für Wettersensoren -- ok, dafür taugt der Zero-W wirklich nicht. Aber
> verglichen mit den Wetterstationen aus dem Supermarkt taugt ein ESP auch
> nicht.

Der Grund für die Wahl des ESP32 für die Wetterstation sind:
- Minimalismus
- es kann kein Trojaner installiert werden (glaube ich noch ..)
- weniger Stromverbrauch
- langzeitstabiler weil empfindliche SD-Karte entfällt
- billiger weil z.B. ein CYD (cheap yellow display) ca. 25€ kostet und 
dann hat man schon den Server inklusive Anzeige und SD-Kartenslot

Bauform B. schrieb:
> Christoph M. schrieb:
>> Im Moment sieht es danach aus, als wenn der ESP-Wifi Treiber Zeit in der
>> Größenordnung von einer Sekunde braucht, um zu initialisieren. Das
>> treibt den Stromverbrauch dann in die Höhe.

Die hat sich aber mittlerweile für den Sensor stark verringert und liegt 
jetzt bei knapp 300ms inklusive messen und senden.

Beitrag "Re: Micropython Wetterstation"

von Jack V. (jackv)


Lesenswert?

Christoph M. schrieb:
> Der Grund für die Wahl des ESP32 für die Wetterstation sind:
> - Minimalismus
> […]
> - weniger Stromverbrauch

Der enthaltene Scherz war beabsichtigt? ;)

Minimal und wenig Stromverbrauch können Andere deutlich besser, als so’n 
doch recht fetter ESP32.

Ansonsten kann man auch an ’nen ausgewachsenen Pi so ein „billiges“ 
gelbes Display anschließen (wenngleich ich ’n anderes Verständnis von 
„billig“ habe, aber nun ja), und wenn man mag, auch ein EEPROM, um die 
Daten zu speichern. Wenn man’s so konfiguriert, dass von der SD-Karte 
mit dem System nur gelesen und nicht geschrieben wird, fällt das 
Haltbarkeitsargument weg, ebenso das „Trojanerargument“. Bleibt von den 
Punkten letztlich nur der Stromverbrauch, und der ist spätestens mit dem 
Display auch nicht mehr so relevant.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Jack V. schrieb:
> Minimal und wenig Stromverbrauch können Andere deutlich besser, als so’n
> doch recht fetter ESP32.

Meinst du? Der Server ist ja auch ein ESP32 und da muss ja die Webseite 
mit rein:
https://www.mikrocontroller.net/attachment/688425/RaumklimaGraph.png

von Rene K. (xdraconix)


Lesenswert?

Gut, auf einem RP könnte man die Webseite dann sogar in "schön" machen.

Christoph M. schrieb:
> Meinst du? Der Server ist ja auch ein ESP32 und da muss ja die Webseite
> mit rein

Ja z.b. der RP2020-WH braucht inkl. WLAN 30-40mA. Und der hat sogar zwei 
echte Kerne nicht wie der ESP32 solch ein zweiten Pseudo-Core.

von Christoph M. (mchris)


Lesenswert?

Rene K. schrieb:
> Ja z.b. der RP2020-WH

Gibt es nicht.

von Jack V. (jackv)


Lesenswert?

Christoph M. schrieb:
> Meinst du?

Ja.

Und Rene meinte möglicherweise den RP2040. Allerdings gibt’s halt auch 
nicht den ESP32, sondern durchaus auch welche mit zwei „echten“ 
Kernen. Aber ich hatte eher was aus z.B. dem Hause Nordic vor Augen. Ist 
zugegebenermaßen nicht mein Gebiet, aber dass ESP32 (egal welcher) 
insgesamt nicht unbedingt in der Minimal-Liga spielt, ist nun kein zu 
großes Geheimnis.

von Vincent H. (vinci)


Lesenswert?

Rene K. schrieb:
> Gut, auf einem RP könnte man die Webseite dann sogar in "schön" machen.

Warum sollte das auf einem ESP32 nicht gehen?
Ich betreue ein OSS Projekt dass eine Flutter Web App auf einen ESP32S3 
packt:
https://openremise.at/Frontend/demo/

von Bauform B. (bauformb)


Lesenswert?

Rene K. schrieb:
> Gut, auf einem RP könnte man die Webseite dann sogar in "schön" machen.

Warum sollte die da schöner werden? Seit Browser SVG und CSS verstehen, 
hängt das doch nur vom Web-Design-Künstler ab. Ein Webserver liefert 
heutzutage doch nur eine statische Seite und ggf. ein paar Byte 
dynamische Daten. Ja, ein paar kByte Flash braucht man schon.

> Ja z.b. der RP2020-WH braucht inkl. WLAN 30-40mA.

Mit Spitzen über 200mA, trotzdem sehr erfreulich. Und trotzdem ist der 
für Batteriebetrieb kaum zu gebrauchen:

https://www.reddit.com/r/raspberrypipico/comments/wjhfct/picow_deep_sleep_with_micropython/

Wenn man Reddit-Usern nicht traut, das Datenblatt sagt:
1
Software   Typical        Max.
2
Use-case   Average        Average
3
           DVDD Current   DVDD current
4
Popcorn    10.9  mA       16.6 mA
5
Sleep       0.39 mA        4.5 mA
6
Dormant     0.18 mA        4.2 mA
In Worten: einhundertachtzig Microampere TYPISCH

Edit: Und das ist nur der RP2040, dazu kommt noch der Kleinkram auf dem 
Board und ggf. der DC/DC-Wandler.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Jack V. schrieb:
> Allerdings gibt’s halt auch
> nicht den ESP32, sondern durchaus auch welche mit zwei „echten“
> Kernen.

Da hast du recht.
1
esptool.py --port /dev/ttyUSB0 chip_id
1
Detecting chip type... ESP32
2
Chip is ESP32-D0WDQ6 (revision v1.0)
3
Features: WiFi, BT, Dual Core, 240MHz

Eigentlich hat er ja sogar 3 Kerne ..

von Christoph M. (mchris)


Lesenswert?

Bauform B. schrieb:
> Edit: Und das ist nur der RP2040, dazu kommt noch der Kleinkram auf dem
> Board und ggf. der DC/DC-Wandler.

Für den ESP32 gibt es ja zum Glück diese Breakout-Boards ohne 
Spannungsregler und alles:
https://www.mikrocontroller.net/attachment/688751/ESP32_WROOM_ModuleExternalSupply.png

von Rene K. (xdraconix)



Lesenswert?

Bauform B. schrieb:
> Wenn man Reddit-Usern nicht traut, das Datenblatt sagt:Software
> Typical        Max.
> Use-case   Average        Average
>            DVDD Current   DVDD current
> Popcorn    10.9  mA       16.6 mA
> Sleep       0.39 mA        4.5 mA
> Dormant     0.18 mA        4.2 mA
> In Worten: einhundertachtzig Microampere TYPISCH

Nun, soviel anders ist der ESP32 auch nicht wirklich, und auch der hat 
genug "Futter" ringsrum.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.