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.
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!
- Kannst du überhaupt Text auf dem Display darstellen?
- Hast du einen Font mit Zeichen gleicher Breite?
- 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() {
}
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