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?
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.. :)
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...
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.
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..
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:
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.
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.
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.
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.
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.
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.
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.
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 ;)
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.
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
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.
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.
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.
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/
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:
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.