In diesem Beitrag möchte ich untersuchen, ob das CrowPanel von Elecrow das ideale Display für deine ESP32-Projekte darstellt.
Disclaimer: Das CrowPanel wurde mir kostenfrei von Elecrow zur Verfügung gestellt. Trotz dieser Bereitstellung bleibt meine Bewertung objektiv und unabhängig. Alle im Beitrag geäußerten Meinungen sind meine eigenen und basieren auf meinen persönlichen Erfahrungen mit dem Produkt.
Das Gehäuse ist äußerst poliert und spiegelnd, was auf der einen Seite sehr cool und edel aussieht, auf der anderen Seite jedoch dafür sorgt, dass dieser Staub magisch anzieht.
Inhaltsverzeichnis
- Technische Daten des CrowPanel mit ESP32 Chip
- Lieferumfang
- Aufbau
- Programmieren des CrowPanel in der Arduino IDE
- Installieren des ESP32
- Programmieren des CrowPanel in MicroPython
- Fazit zum 2,4″ Elecrow CrowPanel
Technische Daten des CrowPanel mit ESP32 Chip
Zunächst die technischen Daten des Displays:
Modell | 2,4 Zoll ESP32 Display |
Hauptprozessor | ESP32-WROOM-32-N4 |
Auflösung | 240 x 320 |
Farbtiefe | 262K Farben |
Touch-Typ | Resistiver Touchscreen |
Touch-Panel | TN Panel |
Bildschirm | TFT-LCD Bildschirm |
Display-Treiber | ILI9341V |
Schnittstellen | 1x TF Kartensteckplatz, 1x I2C, 1x GPIO, 1x Lautsprecher, 1x UART1, 1x UART0 |
Tasten | BOOT-Taste und Reset-Taste |
Auf der offiziellen Seite von Elecrow findest du weitere Dokumentation zu diesem Display.
Lieferumfang
Zum Lieferumfang des Mikrocontrollers gehört:
- der Mikrocontroller mit Display,
- ein USB-Datenkabel,
- ein Datenkabel,
- ein Gehäuse,
- ein Eingabestift
Aufbau
Auf der Rückseite des Mikrocontrollers findest du diverse Schnittstellen, an welche du weitere Sensoren/Aktoren anschließen und programmieren kannst.
GPIO Anschlüsse
Die GPIOs können via HY2.0-4P Anschluss abgegriffen werden. Dazu liegt dem Gerät ein Kabel bei, wenn du alle Anschlüsse gleichzeitig abgreifen möchtest, dann benötigst du noch zwei weitere Kabel, welche du für knapp 2€ zzgl. Versandkosten auf ebay.de* findest.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
UART1 | Beschreibung | I2C | Beschreibung | GPIO_D |
---|---|---|---|---|
IO16 | RXD | IO21 | SCL | IO25 |
IO17 | TXD | IO22 | SDA | IO32 |
3.3V | 3.3V | 3.3V | ||
GND | GND | GND |
Hinweis zum Speaker (SPK) und Batterieanschluss
Die Anschlüsse für Speaker und der Batterie sind identisch, d.h. du kannst eventuell deine Batterie in den Sockel SPK stecken. Damit könntest du eventuell dein Board beschädigen, jedoch denke ich das dort eine Diode verbaut wurde, um dieses zu verhindern.
Programmieren des CrowPanel in der Arduino IDE
Das CrowPanel kann in der Arduino IDE, SquareLine Studio, Plattform IO programmiert werden. Der verbaute ESP32 Chip unterstützt hier die Sprachen C++ (Arduino & ESP-IDF) sowie MicroPython.
Interessant ist hier SquareLine Studio, welchem ich einen separaten Beitrag widmen möchte, da dieses für die Erstellung von Dashboards geeignet ist.
Nachfolgend möchte ich dir zeigen, wie du den Mikrocontroller mit TFT-Display & Touchfunktion in der Arduino IDE programmieren kannst. Ein sehr ähnliches Gerät habe ich dir bereits im Beitrag ESP32 Development Board mit 2,8 Zoll Touch Display: Programmieren für Anfänger vorgestellt.
Installieren des ESP32
Wenn bei dir noch nicht geschehen, dann muss der Boardtreiber für den ESP32 in der Arduino IDE eingerichtet werden. Dazu muss die nachfolgende URL zu den zusätzlichen Boardverwalter URLs hinzugefügt werden.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
In der Arduino IDE navigieren wir dazu über Datei > Einstellungen zum Dialog Einstellungen und wählen dort die Schaltfläche (1) neben den zusätzlichen Boardverwalter URLs. Im neuen Dialog tragen wir die URL (2) ein und bestätigen dieses mit der Schaltfläche OK (3).
Im nächsten Schritt kann jetzt der Boardtreiber über den internen Boardverwalter (4) installieren.
Dort suchen wir nach esp32 (5) und wählen die Schaltfläche INSTALLIEREN (6). Da ich bereits den Treiber installiert habe, steht bei mir die Schaltfläche ENTFERNEN.
Benötigte Bibliotheken für die Programmierung in der Arduino IDE
Damit wir das TFT-Display programmieren können, benötigen wir eine zusätzliche Bibliothek, welche wir über den internen Bibliotheksverwalter installieren können.
Im internen Bibliotheksverwalter (1) suchst du nach “TFT_eSPI” (2) und wählst dort die Schaltfläche “INSTALLIEREN” (3).
Die Programmierung des TFT-Displays werde ich im angekündigten Beitrag zu SquareLine Studio behandeln. Nachfolgend gehe ich auf die Programmierung über die 3 Grove Schnittstellen ein.
Beispiel – Taster & LEDs am CrowPanel via Grovekabel
Über die freien GPIO-Pins, die wir mit einem speziellen Anschlusskabel nutzen können, lassen sich verschiedene Sensoren und Aktoren ansteuern. In diesem Beispiel werden wir zwei LEDs und zwei Taster verbinden. Die Schaltung ist so aufgebaut, dass jeweils ein blauer und ein roter Taster die zugehörige LED (rot und blau) ein- und ausschaltet.
//rote LED am GPIO21 angeschlossen #define ledRot 21 //blaue LED am GPIO22 angeschlossen #define ledBlau 22 //roter Taster am GPIO25 angeschlossen #define tasterRot 25 //baluer LED am GPIO32 angeschlossen #define tasterBlau 32 //Felder zum speichern der Zustände der LEDs bool statusLedRot = false; bool statusLedBlau = false; void setup() { //Pins der LEDs als Ausgang definieren pinMode(ledRot, OUTPUT); pinMode(ledBlau, OUTPUT); //Pins der Taster als Eingang über den //internen 10 kOhm Widerstand leiten pinMode(tasterRot, INPUT_PULLUP); pinMode(tasterBlau, INPUT_PULLUP); } void loop() { //Wenn der Taster betätigt wird, erhalten //wir auf dem Pin ein LOW Signal if (digitalRead(tasterRot) == LOW) { //umkehren des Zustandes der LED statusLedRot = !statusLedRot; digitalWrite(ledRot, statusLedRot); //eine Pause von 250 ms. damit der Taster entprellt wird delay(250); } if (digitalRead(tasterBlau) == LOW) { statusLedBlau = !statusLedBlau; digitalWrite(ledBlau, statusLedBlau); delay(250); } }
Programmieren des CrowPanel in MicroPython
Flashen des CrowPanel für MicroPython
Den verbauten ESP32 Chip können wir ebenso recht einfach in MicroPython (sowie CircuitPython) programmieren. Dazu müssen wir diesen jedoch mit einer passenden Firmware flashen.
Diesen Vorgang können wir uns mit der Thonny IDE welche du unter https://thonny.org/ für Windows, macOS und Linux herunterladen kannst, sehr einfach in wenigen Schritten lösen.
Wie erwähnt arbeitet auf dem Elecrow CrowPanel ein ESP32, für diesen gibt es auf der Hauptseite von MicroPython eine passende Firmware als BIN-Datei zum Herunterladen. Ebenso findest du in der offiziellen Dokumentation eine Firmware, welche jedoch aus dem Jahr 2022 stammt.
Nach dem erfolgreichen Flashen des Mikrocontrollers wählen wir diesen im entsprechenden Interface aus und drücken die Stopp-Taste. In der Shell sollte nun die Firmware-Versionsnummer angezeigt werden.
MicroPython v1.24.0 on 2024-10-25; Generic ESP32 module with ESP32
Type "help()" for more information.
Beispiel – Wechselblinken zweier LEDs in MicroPython programmieren
Das erste kleine Beispiel mit MicroPython ist, das steuern von LEDs, dazu benötigen wir lediglich:
- zwei 5 mm LEDs*,
- zwei 220 Ohm Vorwiderstände*,
- ein 170 Pin Breadboard*, sowie
- ein Anschlußkabel mit Stecker*
Im Beitrag DIY Grove Shield #1: LED Wechselblinker habe ich dir gezeigt wie du dir mit wenigen Bauteilen ein Shield bauen kannst welches zwei LEDs und eine Grove Schnittstelle hat.
# importieren der Module für den Zugriff auf # die GPIOs import machine # importieren des Modules für den Zugriff auf # die Funktionen für Zeit import time # rote LED am GPIO21 angeschlossen ledRot = machine.Pin(21, machine.Pin.OUT) # blaue LED am GPIO16 angeschlossen ledBlau = machine.Pin(22, machine.Pin.OUT) # starten der Endlosschleife while True: # deaktivieren der roten LED ledRot.value(0); # aktivieren der blauen LED ledBlau.value(1); # eine Pause von 250 ms. time.sleep(0.25) # aktivieren der roten LED ledRot.value(1); # deaktivieren der blauen LED ledBlau.value(0); # eine Pause von 250 ms. time.sleep(0.25)
Beispiel – Schalten von LEDs mit Taster
Wie du dir dieses kleine Modul selber bauen kannst habe ich dir ebenso im Beitrag DIY Grove Shield #2: 2fach Taster Shield erläutert.
Mit zwei zusätzliche Taster können wir nun diese LEDs umschalten. In meinem Fall nutze ich dazu ein fertiges Modul von Seedstudio mit Grove Schnittstelle.
# importieren der Module für den Zugriff auf # die GPIOs import machine # importieren des Modules für den Zugriff auf # die Funktionen für Zeit import time # rote LED am GPIO21 angeschlossen ledRot = machine.Pin(21, machine.Pin.OUT) # blaue LED am GPIO16 angeschlossen ledBlau = machine.Pin(22, machine.Pin.OUT) #roter Taster am GPIO25 tasterRot = machine.Pin(25, machine.Pin.IN, machine.Pin.PULL_UP) #blauer Taster am GPIO32 tasterBlau = machine.Pin(32, machine.Pin.IN, machine.Pin.PULL_UP) # Felder zum speichern der zustände von den LEDs statusLedRot = False statusLedBlau = False # starten der Endlosschleife while True: # Wenn der rote Taster betätigt wurde, dann... if not tasterRot.value(): # umkehren des Status der LED statusLedRot = not statusLedRot # Abhängig vom Status des Feldes wird die # LED aktiviert oder deaktiviert ledRot.value(0 if statusLedRot else 1) # eine kleine Pause von 250 ms. um den Taster zu entprellen time.sleep(0.25) if not tasterBlau.value(): statusLedBlau = not statusLedBlau ledBlau.value(0 if statusLedBlau else 1) time.sleep(0.25)
Fazit zum 2,4″ Elecrow CrowPanel
Das Display ist im Grunde nicht schlecht, beinhaltet jedoch keine echte Innovation. Die Programmierung des TFT-Displays in der Arduino IDE ist etwas schwieriger und hat bei mir bisher nicht funktioniert. Wie jedoch aus den Beispielen zu entnehmen ist, funktioniert die Ansteuerung der GPIOs in der Arduino IDE sowie in MicroPython reibungslos.
Ausblick
Im nächsten Beitrag zum CrowPanel würde ich dieses einmal mit SquareLine Studio programmieren und prüfen, ob dieses dort besser integriert ist.
Alternativen
Wenn du eine einfache alternative suchst, dann schaue dir doch einmal das Board ESP32-2432S028R an. Dieses hat ein größeres Display und ist nach derzeitiger Information auch einfacher zu programmieren.