📗 Welche Hardware nutzen? (Develboard, RFID, SD, Akku)

Allgemeines zu ESP32-Develboards

Wer sich scheut, selbst SMD zu löten, der benutzt einfach ein sog. Develboard. Diese sind praktisch, denn fĂŒr wenig Geld kriegt man Boards, die verschiedene Features bereitstellen:

  1. USB zu seriell-Adapter, so dass man via USB den ESP32 programmieren kann.
  2. Festspannungsregler: USB liefert 5V, der ESP32 vertrÀgt jedoch nur 3.3V
  3. Freie GPIOs als Pinheader rausgefĂŒhrt
  4. (optional) Integrierte Ladeelekronik fĂŒr Akkus
  5. (optional) uSD-Karten-Slot
  6. (optional) Weitere Peripherie wie z.B. Klinkenstecker, VerstÀrker, Mikrophoneingang


Also kurzum: Die Auswahl ist groß. GrundsĂ€tzlich haben alle Boards gemeinsam, dass auf ihnen ein ESP32 werkelt, weswegen sie (zumindest potentiell) alle mit ESPuino laufen sollten. Welches Board man letztlich verwendet, ist primĂ€r davon abhĂ€ngig, welche Interessen man verfolgt. Möchte man z.B. Batteriebetrieb, so kann es Sinn machen, ein Develboard zu wĂ€hlen, welches eine integrierte Ladeelekronik besitzt. Sicher, man kommt auch mit jedem anderen Board ans Ziel, indem man extern z.B. eine Powerbank anschließt. Man muss halt nur wissen, dass Boards wie z.B. die klassischen „ESP32 NodeMCU“ auch dann noch >10 mA fressen, wenn der ESP32 im Deepsleep ist. Umgehen kann man das natĂŒrlich, indem man an seinen ESPuino einen Schalter baut, der die Spannungsversorgung physikalisch trennt.
Ein weiterer und sehr wichtiger Punkt ist, wieviele GPIOs nach außen gefĂŒhrt werden, da ESPuino viele GPIOs benötigt. Auf der sicheren Seite ist man, wenn es möglichst viele sind, da dies mehr FlexibilitĂ€t bietet.

Hier mal einige Kriterien, ĂŒber die man sich aus meiner Sicht Gedanken machen sollte:

  • FĂŒhrt das ESP32-Develboard meiner Wahl ausreichend viele GPIOs nach außen, so dass mein Vorhaben machbar ist?
  • Möchte ich Batteriebetrieb? Wenn ja: Ist ein Akkuanschluss vorhanden und bietet das Board ggf. eine integrierte Ladeelekronik? Ist der Strombedarf im Deepsleep ĂŒberschaubar?
  • Batteriebetrieb: Gibt es bereits eine integrierte Möglichkeit, um die Spannung des angeschlossenen Akkus zu ĂŒberwachen? Dies ist z.B. bei Lolin D32 oder Lolin D32 pro der Fall. (Hinweis: Bei Lolin32 nicht, aber man kann es sich natĂŒrlich ĂŒber einen Spannungsteiler natĂŒrlich einfach selbst bauen.)
  • Kann man auch im eingebauten Zustand, ohne drĂŒcken einer Taste, flashen? Bei den o.g. NodeMCU ist das DrĂŒcken einer Taste notwendig, damit der ESP32 in den Flashmodus geht; bei den genannten Lolin-Boards nicht. Das muss jeder selbst fĂŒr sich entscheiden, ob dieses Feature notwendig ist.
  • Wie teuer ist das Board? Die o.g. NodeMCU sind, auch in Deutschland, vergleichsweise gĂŒnstig. Das gilt fĂŒr die Lolin-Boards nicht. Bestellt man jedoch in China, dann relativiert sich das; man muss allerdings auch eine Weile warten, bis die Sachen da sind.
  • Möchte ich das OTA-Feature nutzen, so benötigst man mindestens 8 MB Speicher. Üblicherweise wird man dann zu einem Develboard mit einem ESP32-WROVER mit 16 MB greifen, weil dieses auch PSRAM besitzt. Es gibt auch ESP32-WROOMs mit 16 MB, aber diese habe ich auf einem Develboard noch nie verbaut gesehen.

Ein paar nĂŒtzliche Links zu Videos von Andreas „the guy with the swiss accent“ Spiess:

Nachfolgend mal ein paar Develboards aus meiner Sicht.

Wemos Lolin32

Ehemals recht gĂŒnstig zu bekommen, lohnt sich der Kauf inzwischen (2022) nur noch bedingt.

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen
  • Recht niedrige Stromaufnahme im Deepsleep
  • Besitzt eine integrierte Ladelektronik fĂŒr LiPo
  • Man muss zum Flashen keine Taste drĂŒcken

CON:

  • Hat keinen Spannungsteiler zur Spannungsmessung integriert. Muss man sich dazubauen, ist aber kein großes Problem.
  • Verwendet einen ESP32-WROOM statt eines ESP32-WROVER
  • UnterstĂŒtzt wegen nur 4 MB Flash kein OTA-Update

Wemos Lolin D32

Ist der Nachfolger des Lolin32.

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen
  • Recht niedrige Stromaufnahme im Deepsleep
  • Besitzt eine integrierte Ladelektronik fĂŒr LiPo
  • Hat einen Spannungsteiler zur Spannungsmessung integriert
  • Man muss zum Flashen keine Taste drĂŒcken

CON:

  • Verwendet einen ESP32-WROOM statt eines ESP32-WROVER
  • In Deutschland relativ teuer
  • In China manchmal nicht verfĂŒgbar
  • UnterstĂŒtzt wegen nur 4 MB Flash kein OTA-Update

Wemos Lolin D32 pro

Ist der große Lolin D32 gewissermaßen

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen
  • Recht niedrige Stromaufnahme im Deepsleep
  • Besitzt eine integrierte Ladelektronik fĂŒr LiPo
  • Hat einen Spannungsteiler zur Spannungsmessung integriert
  • Man muss zum Flashen keine Taste drĂŒcken
  • Verwendet einen ESP32-WROVER
  • SD-Slot integriert
  • UnterstĂŒtzt in der 16 MB Flash-Variante auch OTA-Updates

CON:

  • GPIOs 16+17 sind nicht nutzbar, da sie vom ESP32-WROVER fĂŒr interne Zwecke (PSRAM) benötigt werden. Da kann das Board allerdings nix fĂŒr; das ist einfach so bei ESP32-WROVER.
  • In Deutschland relativ teuer
  • SD-Slot ist nicht mit SD_MMC kompatibel (benutzt andere GPIOs)
  • VerhĂ€lt sich manchmal etwas zickig und sollte daher mit 100 ”F-Kondensator extern stabilisiert werden.

D32 pro FePo

Basiert auf dem Lolin D32 pro und ist eine Eigenentwicklung von mir. UnterstĂŒtzt im Gegensatz zu allen anderen Boards, die ich so kenne, LiFePO4 (anstelle LiPo) und hat einen USB-C-Anschluss.

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen
  • Recht niedrige Stromaufnahme im Deepsleep
  • Besitzt eine integrierte Ladelektronik fĂŒr LiFePO4 mit bis zu 1 A Ladestrom
  • USB-C-Anschluss
  • Hat einen stromsparenden Spannungsteiler zur Spannungsmessung integriert
  • Man muss zum Flashen keine Taste drĂŒcken
  • Verwendet einen ESP32-WROVER-E mit 16 MB Flash
  • SD-Slot integriert
  • UnterstĂŒtzt in der 16 MB Flash-Variante auch OTA-Updates

CON:

  • GPIOs 16+17 sind nicht nutzbar, da sie vom ESP32-WROVER fĂŒr interne Zwecke (PSRAM) benötigt werden. Da kann das Board allerdings nix fĂŒr; das ist einfach so bei ESP32-WROVER.
  • Bislang nur in Kleinserie erhĂ€ltlich

LILYGO TTGO T8 V1.7

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen
  • Besitzt eine integrierte Ladelektronik fĂŒr LiPo
  • Verwendet einen ESP32-WROVER
  • SD-Slot integriert, der auch SD_MMC unterstĂŒtzt
  • In Deutschland mit 12eur nicht fĂŒrchterlich teuer.
  • Hat (gemĂ€ĂŸ Schaltplan) einen Spannungsteiler zur Spannungsmessung integriert (wie bei Wemos Lolin auf GPIO35)

CON:

  • GPIOs 16+17 sind nicht nutzbar, da sie vom ESP32-WROVER fĂŒr interne Zwecke (PSRAM) benötigt werden. Da kann das Board allerdings nix fĂŒr; das ist einfach so bei ESP32-WROVER.
  • Relativ hoher Stromverbrauch im Deepsleep (3,5 mA)
  • UnterstĂŒtzt wegen nur 4 MB Flash kein OTA-Update (obwohl er ein WROVER ist)

ESP32 NodeMCU (aka DevKit C)

Das Standardboard. FĂŒr die meisten Leute vermutlich der Einstieg in die ESP32-Welt. Achtung: Es gibt welche mit 30 Pins und welche mit 38 Pins. Auf jeden Fall das GrĂ¶ĂŸere nehmen.

PRO:

  • FĂŒhrt sĂ€mtliche GPIOs nach außen. (Auch solche, die man nicht wirklich nutzen kann.)
  • In Deutschland recht gĂŒnstig

CON:

  • Hat keinen Spannungsteiler zur Spannungsmessung integriert
  • Recht hohe Stromaufnahme im Deepsleep (fĂŒr Batteriebetrieb wichtig, ohne Batteriebetrieb aber egal)
  • Besitzt in der Regel keine integrierte Ladelektronik fĂŒr Akkus
  • Verwendet einen ESP32-WROOM
  • Man muss zum Flashen eine Taste drĂŒcken (manchmal geht’s auch ohne, warum auch immer!?)
  • UnterstĂŒtzt wegen nur 4 MB Flash kein OTA-Update

Welcher ESP32-Chip?

Am besten das hier lesen: 📗 Welche Vorteile bietet ein ESP32-WROVER gegenĂŒber einem ESP32-WROOM beim ESPuino?.

RFID: RC522 oder PN5180?

RC522
PRO:

  • Ist der Quasi-Standard
  • GĂŒnstig zu haben
  • Braucht nur vier GPIOs

CON:

  • Reichweite

Fazit: Wenn du mit der Reichweite kein Probem hast, dann bleibe am besten einfach beim RC522.
Hinweis: Die VerstÀrkung (Gain) kann man einstellen in settings.h via rfidGain. Mögliche Werte sind nachfolgend beschrieben:


Hier gibt es auch noch ein paar Infos: Kompatible NFC Tags

PN5180
PRO:

  • Erheblich bessere Reichweite (6cm und mehr). Wird noch besser, wenn man ISO-15693-RFID-Tags verwenden, diese sind jedoch teurer.
  • Kann ab Firmware 4.1 (die man aber selbst flashen muss) auch den ESPuino aus dem Deepsleep aufwecken
  • Kann auch andere RFID-Kartentypen lesen. Mit Passwort z.B. auch T*nies. Und da ESPuino immer nur lesend auf RFIDs zugreift, wird auch nix ĂŒberschrieben/kaputt gemacht.

CON:

  • Teurer als RC522
  • Gibt es fast nur in China
  • Benötigt mehr GPIOs: 6. Zur Nutzung des Deepsleep-Features sogar 7.

Fazit: Lohnt sich vor allem dann, wenn man Probleme mit der SensitivitĂ€t des RC522 hat. Ich fĂŒr den PN5180 aber definitiv empfehlen! Hinweis: Vereinzelt wurden mit diesem Reader auch Probleme beschrieben: RFID Sticker (mit PN5180).

3.3 V oder 5 V?

Viele Develboards fĂŒhren 3.3 V und 5 V nach außen; ungeachtet dessen, dass der ESP32 intern immer mit 3.3 V lĂ€uft. Das ist erstmal gut, weil dann kann man sich die jeweils passende Spannung fĂŒr die Peripherie aussuchen. Problem: Betreibt man die Lolin-Boards ausschließlich mit einem LiPo-Akku, so gibt es keine 5 V mehr, da der LiPo-Akku selbst nur maximal 4.2 V fĂŒhrt. Hier hat man keine Wahl: Die Peripherie kann nur mit 3.3 V versorgt werden. Alternativ kann man natĂŒrlich auch eine Powerbank verwenden; diese liefert immer 5 V und wird extern angeschlossen. Auch möglich ist eine externe Ladeelektronik und ggf. ein Regler, der aus den maximal 4.2 V eben 5 V macht. Nur muss sich jeder selbst ĂŒberlegen, ob es Sinn macht, die Spannung anzuheben, damit sie im Anschluss vom Festspannungsregler des Develboards wieder zu 3.3 V wird (und die ĂŒberschĂŒssigen 1.7 V schlicht verbraten werden).
Auf der anderen Seite kann es aber auch Nachteile haben, nur 3.3 V zur VerfĂŒgung zu haben. Die Neopixel sind beispielsweise fĂŒr 5 V spezifizert; sie laufen jedoch mit 3.3 V ebenso. Weiterhin hat der MAX98357a bei 3.3 V weniger Leistung als bei 5 V. Mir persönlich macht das nichts, er ist aus meiner Sicht fĂŒr meine Kinder mehr als laut genug.
Wichtig: Verwendet man 3.3 V so sollte man sich gut ĂŒberlegen, welches SD-Board man verwendet. Es gibt viele, die beide Spannungen unterstĂŒtzen. Schlecht ist es, wenn es dafĂŒr nur einen Anschluss gibt. Denn das bedeutet, dass die Spannung immer ĂŒber einen internen Spannungsregler lĂ€uft. Das ist deswegen ein Problem, weil der Spannungsregler von den 3.3 V ein bisschen was abzwackt, so dass es dahinter mit der noch zur VerfĂŒgung stehenden Spannung eng werden kann. Sind 3.3 V geplant, so bin ich persönlich ein großer Fan dieses SD-Boards. Das ist so ziemlich das Billigste von allen, aber da es keinen Festspannungsregler besitzt, funktioniert es SICHER an 3.3 V auch astrein. Wichtig: Es kann KEIN 5 V!

SPI oder SD_MMC?

SPI
PRO:

  • Ist der Quasi-Standard.

CON:

  • Langsamer als SD_MMC
  • Braucht 4 GPIOs (statt 3 bei SD_MMC)
  • Es gibt einen Bug, der dazu fĂŒhrt, dass der Schreibvorgang grĂ¶ĂŸerer Dateien spontan abbricht.

SD_MMC
PRO:

  • Erheblich schneller als SPI
  • Benötigt nur 3 GPIOs

CON:

  • GPIOs (15, 14, 2) sind fest und können nicht geĂ€ndert werden.
  • Einer der GPIOs ist 2. Wird dieser GPIO beim Start des ESP32 auf HIGH gezogen, so kriegt man den ESP32 nicht in den Flash-Modus. Das bedeutet, dass man SD-Board ein etwaiger PullUp-Widerstand entfernt werden muss. Siehe z.B. hier bei diesem SD-Board.

Fazit: SD_MMC lohnt sich auf jeden Fall. Hier noch ein paar Durchsatzraten bei einem Dateitransfer von 70,7 MiB.

SD_MMC:
FTP (up): 3:57min => 298 kiB/s
FTP (down): 3:45 => 314 kiB/s
HTTP: 3:10min => 362 kiB/s

SPI:
FTP (up): 6:38 => 178 kiB/s
FTP (down): 5:38 => 208 kiB/s
HTTP: 6:24min => 184 kiB/s

Akku: LiPo oder LiFePO4?

Das lasse ich am besten denjenigen ausfĂŒhren, der sich damit gut auskennt: EREMIT LiIon - der richtige Akku.

Jumperwires oder Stecker?

Auf jeden Fall Stecker (oder anlöten)!! Jumperwires sind zum Testen mitunter schon kritisch, aber auf lange Sicht definitiv problematisch. Guter oder schlechter Kontakt scheint sowas wie Tagesform-abhĂ€ngig zu sein :slight_smile: Klar, zum Testen wird man erstmal mit Jumperwires experimentieren wollen. Aber man wird damit nicht glĂŒcklich.

Welcher Port-Expander?

Die Antwort ist einfach: Es wird nur PCA9555 unterstĂŒtzt :joy:

3 „GefĂ€llt mir“

Hier ĂŒbrigens mal verschiedene RFID-Reader im Vergleich.
Links: PN532 (wird nicht unterstĂŒtzt, da er keinen Vorteil bietet ggĂŒ. RC522 und PN5180)
Mitte: PN5180
Rechts: RC522

Die Befestigungslöcher zwischen PN5180 und RC522 sind ĂŒbrigens 100% kompatibel in ihrer Position. PN5180 ist halt, wie man unschwer erkennen kann, insgesamt nur ein wenig grĂ¶ĂŸer.

2 „GefĂ€llt mir“

Beim PN532 funktioniert auf jeden Fall I2C nur mit Level Shifter da das Bord eigentlich mit 5V betrieben wird. SPI soll an 3,3V laufen.
Ich hoffe, dass ich das wenn der Levelshifter da ist zum laufen bekomme.
Den RC522 gibt es noch in einer Minivariante.
RFID-Reader

1 „GefĂ€llt mir“

I2C ist schon sehr alt und stammt aus der Zeit als es nur TTL gab und deshalb 5V . Der PN 532 geht lt. Datenblatt auch mit 3,3V.

Dazu hatte ich folgendes vor einiger Zeit @biologist geschrieben :
PN532 habe ich hier und damals mal getestet , aber nur LESEN . Geht mit 3,3V und I2C . Ich denke die 5V sind der I2C-Spezifikation geschuldet , die nur fĂŒr 5V ausgelegt ist . Das lĂ€uft mit 3,3V trotzdem, weil ja auf jeden Fall ein ordentliches HIGH auf den Datenleitungen erreicht wird . Außerdem geht es ohne RST ,wofĂŒr der gebraucht wird , weiß ich nicht . IRQ muss beim Booten angeschlossen sein, danach gehts es auch ohne .

Hi @biologist

Whow , ist das eine Masterarbeit?

An dieser Stelle mal ein Aufruf an alle , besonders an die AnfÀnger .

!!! LESEN , LESEN, LESEN !!!

Die Doku von @biologist ist immer sehr ausfĂŒhrlich und er versucht auch es verstĂ€ndlich zu halten.
Nochmals von mir ein dickes Lob und DANKE.

4 „GefĂ€llt mir“