ESP32 Kleines Projekt

Hi, ich möchte für den Unikurs mit einem ESP32 ein kleines Trainingslogbuch bauen.

Dafür würde ich gerne ein 2004 LCD (FREENOVE I2C IIC LCD 2004 Module, TWI Serial 20x4 Display, Compatible with Arduino Raspberry Pi Pico ESP32 ESP8266: Amazon.de: Computer & Accessories) eine Tastatur 3x4 (Tastatur 12 Tasten 3 Pins, für Arduino & esp32, Keypad, Keyboard, Beschriftbar | eBay) und einen Akku 2100mah 3,7Volt an ein Lademodul (Aideepen 6 Pieces Type-C USB-C TC4056 5V 1A Li-ion Lithium Battery Charging Board Charger Module with Dual Protection Functions: Amazon.de: Electronics & Photo) über einen DC-DC Step Up Modul zu 5V boosten und über den 5V Pin und Ground Pin connecten, um den ESP mit Strom zu versorgen.

Mein Problem ist, das ich mir mein wissen über Stromkreise in den letzten Tagen nur grob angelesen habe und fragen wollte, ob dieses Projekt mit den genannten Teilen umsetzbar ist und ob ich vlt irgendwas vergesse.
LG

Hallo und herzlich willkommen.

Ich sehe da 3 kleine Probleme, die es noch zu lösen gibt.

  1. Ich bin nicht sicher, ob die Tasttatur vernünftig am analogen Pin des ESP32 arbeitet und da sicher ausgewertet werden kann. Fakt ist, der analoge Pin verträgt nur max. 3,3 Volt und da ist es schon nicht einfach die 12 Tasten sicher zu dekodieren.
    Es kann funktionieren, aber eine Tastatur am I2C-Bus wäre sicherer.
    Evtl. diese hier.. Habe ich bisher nicht verwendet.

  2. Warum einen 3,7 Volt Akku und per StepUp hochziehen, wenn es mit einer 5 Volt Powerbank einfacher geht.

  3. Die gezeigten LCD arbeiten meist mit 5 Volt und liefern dann auch 5 Volt auf die I2C-Datenpins. Das verträgt der ESP32 an den Pins nicht lange. Da muss ein I2C-Levelshifter dazwischen. Oder du verwendest ein Display welches mit 3,3 Volt arbeitet. Evtl. ein TFT mit SPI-Bus.
    Z.B. diese hier.

1 Like

Achja, eine Sache die mir noch sorgen bereitet: wenn ich die Tastatur und den Screen anschließe, den Du mir gelinkt, reichen die Pind an dem kleinen ESP aus?

Hi, vielen vielen vielen Dank, das hilft mir schon mal weiter :pray: ich hab jetzt auch einen ESP32 mit eingebautem LiPo Anschluss entdeckt, dann spar ich mir ein paar Teile. Beim Display und der Tastatur bin ich auch mega skeptisch, vor allem weil ESP32 Kompatibilität angegeben ist. Am Ende des Projektes sollte das ganze so groß wie ein Taschenrechner sein und portabel. Daher wird eine Powerbank etwas sperrig.

Allerdings frage ich mich, wie ich einen On/Off schalter eingebaut bekomme. Immerhin hängt der Akku ja jetzt direkt am Board.

Welcher kleine ESP ?
Du brauchst für das Display ca. 4-5 Pins (SPI), je nach Beschaltung. Und das Tastenfeld braucht 2 (I2C-Bus), plus evtl. IRQ. Beide plus der Versorgungsspannung.

1 Like

Vielicht weil eine Powerbank eine minimale Last braucht ( ca 50mA um nicht abzuschalten??

Stimmt, ist ein Argument, dass man aber technisch überlisten kann. :wink:

Hört sich aber als Projekt nit langer Batteriestandzeit an. Da ist ein aktiver Mehrverbrauch wahrscheinlich nicht so günstig.
Grüße Uwe

Hi Uwe, danke für den Tipp, kannst du das nochmal für Einsteiger wie mich erklären?

Was willst Du denn loggen und in welchen Abständen?
Wo sollen die Werte gespeichert werden?
Das hat gerade für die Lebensdauer der Versorgung Bedeutung.

Gruß Tommy

Hallo,
Deine angedachtes Tastenfeld arbeitet in Verbindung mit einem Analog-Eingang. Jeder Taste wird eine Spannung zugeordnet. Die Analogeingang des ESP32 ist nicht besonders linear, dazu gabs hier im Forum mal einen Post. Eventuell klappt das nicht unter Verwendung der beigefügten Lib und du musst selbst was programieren. Das Ist allerdings nicht wirklich ein Problem.

Zu dem Aku Betrieb. Es gibt Aku Halter für 18650 Akus mit eingebauter Ladeelektronik und 3,3V und 5V Ausgang.
Sowas hier

Wenn Du das Ding ja nur gelegentlich nutzt und es Dir auch auf eine ausreichend lange Betriebzeit mit dem Aku ankommt , dann solltest Du überlegen das Teil mittels eines Schalters komplett ausschalten zu können. Zusammen mit der Anzeige wird ein Aku mit 2500mAh sonst nur ein paar Tage am Stück laufen ( ich gehe da mal von 50-100mA aus) . Klar könnte man noch die Deep-Sleep Funktion nutzen, vorher die Anzeige abschalten und alle mittels eines Tasters wieder aufwecken aber ich denke das wird für einen Anfänger gleich etwas viel. Die Daten abspeichern kannst Du mit einem ESP auf einem internen Filesystem.

Gruß Heinz

1 Like

Zur Nichtlinearität des ESP32: ADC is Non-linear. Sowas kann man aber durch Kalibrieren ausgleichen.

Da Du I²C schon beim Display nutzt, kannst Du auch eine Tastatur an diesen Bus anschließen, braucht keine zusätzlichen Pins. Dazu verbindest Du beispielsweise ein 4x4 Keypad Modul mit einem PCF8574 IO I2C Erweiterungsmodul und nutzt die Bibliothek I2CKeyPad.

Viele Wege führen nach Rom :slightly_smiling_face:

1 Like

Hi, vielen Dank für die vielen Tipps :pray: Du meintest das ich die Library vlt selbst programmieren muss. Ich geh davon aus, das mit dem nicht linearen Pin gemeint ist, das andere Spannungen ausgelesen werden und ich diese on der Library anpassen muss?

Und ist es möglich das genannte Display über 3,3V zu Powern, ohne das ein Teil schaden nimmt? Ich nehme jetzt einen ESP, der nur mit 3,3V ausgestattet ist. Zwar ist die Bildschirmbeleuchtung dann niedriger, das stört allerdings nicht. Es sollte blos nichts dabei kaputt machen.

LG

In der Bibliothek wird es Wertebereiche geben, innerhalb derer eine Taste erkannt wird. Wenn Du diese anpassen kannst, das meinte ich mit kalibrieren, dann genügt das.

Gib mir einen Link zu Deiner Biblliothek und ich werfe mal einen Blick darauf :wink:

Ergänzung: Bei AnalogKeypad kannst Du in AnalogKeypad(const uint8_t analogPin, const uint8_t bitsADC = 10); die Auflösung vom ADC von 12 Bit einstellen und in AnalogKeypad.cpp findest Du die Schaltschwellen.

Ja, betreibe das LCD mit 5 V und verwende einen Levelshifter auf 3,3 V.

Dein gezeigtes LCD braucht 5 Volt. Meist reichen 3,3 Volt nicht aus. Das hatte ich dir doch schon geschrieben.
Bei 3,3 Volt liefert das LCD meist nicht genug Kontrast. Das hat nicht mit der Helligkeit zu tun.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.