WIE weit bist mit dem Aufbau, nehme aber Display für die TFT_eSPI ;)
Eigentlich könnte man das auch für Arduino GFX Bauen, habe ja alles was das Display betrifft,
eigentlich alles nur nicht Adafruit ![]()
Auf den Serial-Eingang?
Oder Temp Humi..?
Hier
Mitte der Woche habe ein Player für paar Tage, mall schauen was wird von
Da ist es angeschlossen.
GPIO21
GPIO22
GND
Nein
RX -> GPIO 22
TX -> GPIO 35
RX -> GPIO 22
TX -> GPIO 35
Nur -1
Also jetzt das mall:
#include "DFRobotDFPlayerMini.h"//https://github.com/DFRobot/DFRobotDFPlayerMini
#define FPSerial Serial2
DFRobotDFPlayerMini myDFPlayer;
void setup() {
Serial.begin(115200);
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/35, /*tx =*/22);
myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true);
myDFPlayer.setTimeOut(500);
}
void loop() {
int ansage = myDFPlayer.readCurrentFileNumber();
Serial.println(ansage);
delay (1000);
}
RX -> GPIO 22
TX -> GPIO 35
Das wird nix!
Tausche die Pins.
35 ist nicht als TX / OUTPUT zu nutzen, dass ist ein NUR INPUT.
Ich würde die 27 nehmen.
Nur -1
Exakt das gleiche.
Ich würde die 27 nehmen.
Dazu brauche ich erst das zweite Kabel. Das ist noch unterwegs.
Oder ich bastel mir was. :D
35 ist nicht als TX / OUTPUT zu nutzen, dass ist ein NUR INPUT
Stimmt
Oder ich bastel mir was. :D
wurde nicht machen ;)
ok also zurück umstecken, habe mall abfrage gemacht ob der Player Startet
#define AA_FONT_SMALL "/fonts/NSBold15"
#define AA_FONT_MIDDLE "/fonts/NotoSans-Bold-20" //
#define AA_FONT_LARGE "/fonts/Lato-Black-26" //
#include <SPI.h>
#include <TFT_eSPI.h> // https://github.com/Bodmer/TFT_eSPI
TFT_eSPI tft = TFT_eSPI();
#include "DFRobotDFPlayerMini.h" //https://github.com/DFRobot/DFRobotDFPlayerMini
#define FPSerial Serial2
DFRobotDFPlayerMini myDFPlayer;
#include <FS.h>
#include <LittleFS.h>
int ansage;
bool anzeigen = 0;
String a, b, c, d, e = "";
uint32_t Altzeit;
uint8_t Intervall = 50; // Timing für DF Playerabfrage alle 50 ms Abfrage
int ansageAlt; // Alten Wert des Tittels merken
void setup() {
Serial.begin(115200);
LittleFS.begin();
tft.begin();
tft.setRotation(1);
tft.fillScreen(TFT_WHITE);
//Vodergrund Zerichnen, in der loop darf nicht fillScreen() genutzt werden!!!
tft.setCursor(3, 2); // x, y
tft.loadFont(AA_FONT_MIDDLE, LittleFS);
tft.setTextColor(TFT_BLACK, TFT_WHITE);
tft.print("RE14 Der Dorstener");
tft.unloadFont();
tft.loadFont(AA_FONT_SMALL);
tft.setCursor(8, 18);
tft.print("Essen-Steele - Dorsten");
tft.unloadFont();
tft.fillRect(0, 32, 320, 28, TFT_NAVY); //x, y, Weite, Höhe
tft.fillRect(0, 211, 320, 29, TFT_NAVY);
tft.drawLine(50, 59, 50, 180, TFT_NAVY); // x, y, Pos x, Länge
tft.drawLine(51, 59, 51, 180, TFT_NAVY);
tft.drawLine(50, 185, 50, 188, TFT_NAVY);
tft.drawLine(51, 185, 51, 188, TFT_NAVY);
tft.drawLine(50, 191, 50, 194, TFT_NAVY);
tft.drawLine(51, 191, 51, 194, TFT_NAVY);
tft.drawLine(50, 197, 50, 200, TFT_NAVY);
tft.drawLine(51, 197, 51, 200, TFT_NAVY);
tft.drawLine(50, 203, 50, 206, TFT_NAVY);
tft.drawLine(51, 203, 51, 206, TFT_NAVY);
tft.fillCircle(50, 225, 3, TFT_WHITE); // x,y, Radius
tft.drawCircle(50, 225, 8, TFT_WHITE);
tft.drawCircle(50, 225, 8, TFT_WHITE);
tft.fillCircle(50, 75, 10, TFT_NAVY); // x,y, Radius
tft.fillCircle(50, 100, 7, TFT_NAVY);
tft.fillCircle(50, 125, 7, TFT_NAVY);
tft.fillCircle(50, 150, 7, TFT_NAVY);
tft.fillCircle(50, 175, 7, TFT_NAVY);
tft.setTextColor(TFT_WHITE, TFT_NAVY);
tft.loadFont(AA_FONT_LARGE);
tft.setCursor(20, 35);
tft.print("Nächster Halt:");
tft.setCursor(80, 213);
tft.print("Dorsten");
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/21, /*tx =*/22);
if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //Use serial to communicate with mp3.
Serial.println(F("Player antwortet nicht :"));
while(true){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
myDFPlayer.setTimeOut(500);
}
void loop() {
//if (millis() - Altzeit > Intervall) {
ansage = myDFPlayer.readCurrentFileNumber();
// if (ansage != ansageAlt) {
//ansageAlt = ansage;
Serial.println(ansage);
switch (ansage) {
case 1:
a = "Essen-Steele";
b = "Essen Hbf";
c = "Essen-Borbeck";
d = "Bottrop Hbf";
e = "Gladbeck West";
break;
case 2:
a = "Essen Hbf";
b = "Essen-Borbeck";
c = "Bottrop Hbf";
d = "Gladbeck West";
e = "Gladbeck-Zweckel";
break;
case 3:
a = "Essen-Borbeck";
b = "Bottrop Hbf";
c = "Gladbeck West";
d = "Gladbeck-Zweckel";
e = "Feldhausen";
break;
case 4:
a = "Bottrop Hbf";
b = "Gladbeck West";
c = "Gladbeck-Zweckel";
d = "Feldhausen";
e = "Dorsten";
break;
case 5:
a = "Gladbeck West";
b = "Gladbeck-Zweckel";
c = "Feldhausen";
d = "Dorsten";
e = " ";
break;
case 6:
a = "Gladbeck-Zweckel";
b = "Feldhausen";
c = "Dorsten";
d = " ";
e = " ";
break;
case 7:
a = "Feldhausen";
b = "Dorsten (Endstelle)";
c = " ";
d = " ";
e = " ";
break;
case 8:
a = "Dorsten (Endstelle)";
b = " ";
c = " ";
d = " ";
e = " ";
break;
// nechste case eintragen mit dazugehörigen haltestellen
default:
a = " ";
b = " ";
c = " ";
d = " ";
e = " ";
break;
}
//Ale Angaben für String kommen vom Casse
tft.loadFont(AA_FONT_LARGE);
tft.setTextColor(TFT_RED, TFT_WHITE);
tft.setTextDatum(TL_DATUM); //Text Ausrichtung feststellen hier links Bündig
tft.setTextPadding(240); //Padden Sie den Text nach drawString() auf volle Breite, um den alten Text zu überschreiben.
tft.drawString(/*String*/ a, /*x Pos*/ 80, /*yPos*/ 64); // String, XPos, Y
tft.unloadFont();
tft.unloadFont();
tft.setTextColor(TFT_BLACK, TFT_WHITE);
tft.loadFont(AA_FONT_MIDDLE);
tft.drawString(b, 80, 90); // String, XPos, Y pos
tft.drawString(c, 80, 115);
tft.drawString(d, 80, 140);
tft.drawString(e, 80, 165);
tft.unloadFont();
delay(1000);
}
// }
//}
habe mall abfrage gemacht ob der Player Startet
"Player antwortet nicht:"
Pst: Wieder doof gefragt: Das ist nicht der Serial-Eingang mit RX/TX (GPIO01/03)
(!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //**Use serial to communicate with mp3**.
ok Jetz nochmal
void setup() {
// put your setup code here, to run once:
#include "DFRobotDFPlayerMini.h"//https://github.com/DFRobot/DFRobotDFPlayerMini
#define FPSerial Serial2
DFRobotDFPlayerMini myDFPlayer;
void setup() {
Serial.begin(115200);
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/21, /*tx =*/22);
if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //Use serial to communicate with mp3.
Serial.println(F("Player antwortet nicht :"));
while (true) {
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
myDFPlayer.setTimeOut(500);
}
void loop() {
int ansage = myDFPlayer.readCurrentFileNumber();
Serial.println(ansage);
delay (1000);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
Du hast das 2x setup & loop drin.
Mach mal nach FPSerial.begin() ein Delay von 2000 rein.
exit status 1
Compilation error: a function-definition is not allowed here before '{' token
Habe gerade auch gemerkt
// put your setup code here, to run once:
#include "DFRobotDFPlayerMini.h"//https://github.com/DFRobot/DFRobotDFPlayerMini
#define FPSerial Serial2
DFRobotDFPlayerMini myDFPlayer;
void setup() {
Serial.begin(115200);
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/21, /*tx =*/22);
if (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) { //Use serial to communicate with mp3.
Serial.println(F("Player antwortet nicht :"));
while (true) {
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
myDFPlayer.setTimeOut(500);
}
void loop() {
int ansage = myDFPlayer.readCurrentFileNumber();
Serial.println(ansage);
delay (1000);
}
}
Hier funktioniert die abfrage wieder.
Es werden wieder die Filenummern angezeigt.
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/21, /*tx =*/22);
Ich hab das oben schon mal geschrieben, 21 ist der Backlight-Pin
Aus dem Usersetup:
#define TFT_BL 21 // LED back-light control pin
Wenn der Display da dran hängt, stört der.
PS: Du hast 2x das define im userfile.
