QR-Code Generator mit ESP32 auf ILI3941 Display?

Ich suche einen Code + PIN Belegung, mit dem ich QR-Codes mit dem ESP32 auf einem ILI9341 (2,8") generieren kann. Habe es bisher nur geschafft, QR-Codes auf dem Serial Monitor in der Arduino IDE zu generieren.

Dan zeige doch dein Code.

Hier ist der Code, um QR-Codes auf dem Serial Monitor zu generieren:

/**
 *  QRCode
 *
 *  A quick example of generating a QR code.
 *
 *  This prints the QR code to the serial monitor as solid blocks. Each module
 *  is two characters wide, since the monospace font used in the serial monitor
 *  is approximately twice as tall as wide.
 *
 */

#include "qrcode.h"

#define TFT_DC 2
#define TFT_CS 32
#define TFT_RST 4

void setup() {
    Serial.begin(115200);

    // Start time
    uint32_t dt = millis();
  
    // Create the QR code
    QRCode qrcode;
    uint8_t qrcodeData[qrcode_getBufferSize(3)];
    qrcode_initText(&qrcode, qrcodeData, 3, 0, "HELLO WORLD");
  
    // Delta time
    dt = millis() - dt;
    Serial.print("QR Code Generation Time: ");
    Serial.print(dt);
    Serial.print("\n");

    // Top quiet zone
    Serial.print("\n\n\n\n");

    for (uint8_t y = 0; y < qrcode.size; y++) {

        // Left quiet zone
        Serial.print("        ");

        // Each horizontal module
        for (uint8_t x = 0; x < qrcode.size; x++) {

            // Print each module (UTF-8 \u2588 is a solid block)
            Serial.print(qrcode_getModule(&qrcode, x, y) ? "\u2588\u2588": "  ");

        }

        Serial.print("\n");
    }

    // Bottom quiet zone
    Serial.print("\n\n\n\n");
}

void loop() {

}

Schön nur welsche QR Lib nutzt du?
Was die Pins angeht die bleiben so solange du das Display nutzt,
Notfalls wird in der Lib angepasst wenn du andere nutzen möchtest

Schau mall hier

Musst nur für dein Display anpassen
!!! Habe nicht getestet!!!

QRCode von Richard Moore

Danke, das hab ich auch schon probiert, hat aber nicht funktioniert.

Was hat nicht funktioniert?

Der Code wird zwar fehlerfrei auf den ESP32 hochgeladen, aber auf dem Bildschirm erscheint bloß ein Flimmern.

Video:

Display falsch verdrahtet oder falschen Treiber geladen.

Warum hast das Display umgeklemmt?
Zeige mall den ganzen Sketch was hast Du hochgeladen.

1 Like

Das ist der Code und ich habe genau diese Verdrahtung verwendet:

/* *********************************************************************************
 * ESP QRcode
 * dependency library :
 *   Adafruit_GFX
 *   Adafruit_ST7735
 *
 * Example using 1.44 ST7735 TFT display. 
 * ST7735 TFT SPI module connections
 *   TFT SCL(CLK) ---> NodeMCU pin D5 (GPIO14) ---> ESP32 pin 18 (GPIO18)
 *   TFT SDA(DIN) ---> NodeMCU pin D7 (GPIO13) ---> ESP32 pin 23 (GPIO23)
 * 
 ***********************************************************************************/
#define TFTDISPLAY
#include <Arduino.h>

#include <Adafruit_GFX.h>      
#include <Adafruit_ST7735.h>   
#include <SPI.h>
#include <qrcode.h>


#ifdef ARDUINO_ARCH_ESP32
#define TFT_RST   25    // TFT RST -> D25 (GPIO25) on ESP32
#define TFT_CS    5     // TFT CS  -> D5 (GPIO5)
#define TFT_DC    26    // TFT A0  -> D26 (GPIO26)
#else
#define TFT_RST   D6     // TFT RS  -> D6 on Wemos D1
#define TFT_CS    D8     // TFT CS  -> D8 (GPIO8)
#define TFT_DC    D4     // TFT A0  -> D4 (GPIO4)
#endif

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
QRcode qrcode (&tft,INITR_144GREENTAB);

void setup() {
     tft.initR(INITR_144GREENTAB);
     qrcode.init();
     // create qrcode
     qrcode.create("Hello world.");
}

void loop() {

}

Das ist nicht dein Display!

  1. Kannst du überhaupt Text auf dem Display darstellen?
  2. Hast du einen Font mit Zeichen gleicher Breite?
  3. Hat der Font Unicode-Zeichen, hier U2588 ?

Mindestens einer dieser Punkte wird der Unterschied zwischen Serial und deinem Display sein.
Zusätzlich könnte sein, dass '\n' nicht reicht, um auf dem Display an den Anfang der neuen Zeile zu positionieren.

Dann fang mal nur mit 1. an

Das Display hat schon funktioniert, verstehe nicht warum der TO ständig die Pins ändert. Ich habe heute Mal kurz den Code versucht zu Kompilieren, hat nicht funktioniert ging nicht wo möglich falsche Core Version.
Mall sehen ob Abend finde Zeit warum das so ist.

So Jetzt der Test Sketch was nicht funktioniert, und das mit dem 'QRcode' does not name a type kommt in allen Beispielen, auch für Serial Monitor liegt es an der Core Version?

example:33:1: error: 'QRcode' does not name a type
 QRcode qrcode (&tft,INITR_144GREENTAB);
 ^~~~~~

und logisch, kommt sofort

exit status 1
'QRcode' does not name a type

Hier das Beispiel, habe keine Pins angepasst!
Der TO schreibt dass das bei ihm fehlerfrei Kompiliert was mich wundert
IDE1.8.19 ESP32 Core 2.0.10

/* *********************************************************************************
 * ESP QRcode
 * dependency library :
 *   Adafruit_GFX
 *   Adafruit_ST7735
 *
 * Example using 1.44 ST7735 TFT display. 
 * ST7735 TFT SPI module connections
 *   TFT SCL(CLK) ---> NodeMCU pin D5 (GPIO14) ---> ESP32 pin 18 (GPIO18)
 *   TFT SDA(DIN) ---> NodeMCU pin D7 (GPIO13) ---> ESP32 pin 23 (GPIO23)
 * 
 ***********************************************************************************/
#define TFTDISPLAY
#include <Arduino.h>

#include <Adafruit_GFX.h>      
#include <Adafruit_ST7735.h>   
#include <SPI.h>
#include <qrcode.h>


#ifdef ARDUINO_ARCH_ESP32
#define TFT_RST   25    // TFT RST -> D25 (GPIO25) on ESP32
#define TFT_CS    5     // TFT CS  -> D5 (GPIO5)
#define TFT_DC    26    // TFT A0  -> D26 (GPIO26)
#else
#define TFT_RST   D6     // TFT RS  -> D6 on Wemos D1
#define TFT_CS    D8     // TFT CS  -> D8 (GPIO8)
#define TFT_DC    D4     // TFT A0  -> D4 (GPIO4)
#endif

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
QRcode qrcode (&tft,INITR_144GREENTAB);

void setup() {
     tft.initR(INITR_144GREENTAB);
     qrcode.init();
     // create qrcode
     qrcode.create("Hello world.");
}

void loop() {

}

In Netz steht es als QRCode

Gruß Tommy

Edit: Sorry, das war eine andere Lib.

Die PIN-Belegung im Code habe ich nicht geändert. Ich hab einfach alles so verkabelt, wie es im QR-Code-Generator-Code steht.

bringt nix,

exit status 1
'QRCode' does not name a type

Werde mall abends wen zeit finde mall in die Lib Schauen.
Gruß Bernhard.

Sorry, war eine andere Lib.

Gruß Tommy