­čôŚ Welche Hardware nutzen? (Develboard, RFID, SD)

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.

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

Benutze ich hier vorrangig.

PRO:

  • F├╝hrt s├Ąmtliche GPIOs nach au├čen
  • Recht niedrige Stromaufnahme im Deepsleep
  • G├╝nstig (ist der Vorg├Ąnger des Lolin D32 und wird weiterhin abverkauft)
  • Besitzt eine integrierte Ladelektronik f├╝r LiPo
  • Man muss zum Flashen keine Taste dr├╝cken

CON:

  • Hat keinen Spannungsteiler zur Spannungsmessung integriert
  • Verwendet einen ESP32-WROOM statt eines ESP32-WROVER

Wemos Lolin D32

Ist der Nachfolger des Lolin32.

PRO:

  • F├╝hrt s├Ąmtliche GPIOs nach au├čen
  • Recht niedrige Stromaufnahme im Deepsleep
  • G├╝nstig (ist der Vorg├Ąnger des Lolin D32 und wird weiterhin abverkauft)
  • 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

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

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)

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.
  • Hoher Stromverbrauch im Deepsleep (3,5 mA)

ESP32 NodeMCU

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 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!?)

Welcher ESP32-Chip?

Das Ganze trennt sich grob in zwei Lager: WROOM32 und WROVER. Der Vorteil des WROVER besteht darin, dass er PSRAM besitzt. M├Âglicherweise wird dieses im weiteren Projektfortschritt noch weiter genutzt, aber aktuell besteht der Hauptvorteil vor allem darin, dass dieser PSRAM als Zwischenspeicher f├╝r Webstreams genutzt wird. Das f├╝hrt dazu, dass es weniger Aussetzer gibt. Wer also nicht plant, Webstreams zu h├Âren, der braucht (zumindest f├╝r hier und jetzt) keinen WROVER. Was nicht hei├čt, dass es mit WROOM nicht auch ginge. Aber mit dem WROVER ist die Wahrscheinlichkeit f├╝r Aussetzer eben geringer. WROVER bieten auch mehr Flash-Speicher, dieser wird aktuell von ESPuino jedoch nicht genutzt. Grunds├Ątzlich bin ich bestrebt, m├Âglichst alle Features auch f├╝r WROOM verf├╝gbar zu halten. ├ťbrigens: Der WROVER hat auch einen Nachteil. N├Ąmlich den, dass zur Ansteuerung des PSRAM zwei GPIOs (16 + 17) ben├Âtigt werden. Diese sind anderweitig nicht nutzbar.

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)
  • 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 Tonies. Und da ESPuino immer nur lesend auf RFIDs zugreift, wird auch nix ├╝berschrieben/kaputt gemacht.

CON:

  • Teurer als RC522
  • Gibt es 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.

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: Schlie├čt man bei den Lolin-Boards z.B. einen LiPo-Akku an, 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:

  • Der Standard. Wird von (ich nehme an) allen SD-Boards unterst├╝tzt

CON:

  • Langsamer als SD_MMC
  • Braucht 4 GPIOs (statt 3 bei SD_MMC)

SD_MMC
PRO:

  • Erheblich schneller als SPI
  • Ben├Âtigt nur 3 GPIOs

CON:

  • GPIOs 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.
  • Funktioniert nicht mit allen SD-Boards

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 => 372 kiB/s

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

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.

Welcher Port-Expander?

Die Antwort ist einfach: Es wird nur PCA9555 unterst├╝tzt :joy:

2 Like

Hier ├╝brigens mal verschiedene RFID-Reader im Vergleich.
Links: PN532 (aktuell noch nicht unterst├╝tzt aber demn├Ąchst)
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.

1 Like

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 Like

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.

2 Like