ESP32 Port inkl. Webinterface


#81

…dann werde ich auch in diese Richtung gehen.

Beim Thema Hardware kann ich nicht unterstützen. Ich bin auf vorhandene Komponenten angewiesen. Mein ESP32 Sparkfun hat allerdings schon ein LiPo Anschluss und Ladeschaltung integriert…aber ich brauche ja auch 5 Volt für die LEDS…
Spromsparen dachte ich bisher an die pololu Platine um entweder alles vom Strom zu trennen, oder nur die zusätzlichen Komponenten abzuschalten (RFID,LED,VS1053) und dann den ESP32 in den deep-standby zu schicken. Dann könnte man die “Box” durch Bewegung, Tastendruck oder was auch immer wieder wecken.


#82

Wie viele sollen es denn jetzt sein, immer noch drei oder gehen wir auf fünf ?
Oder doch alles über Drehimpulsgeber?

Ich würde alles auf der SD-Card speichern von den Karten werden dann nur noch die UUID benötigt und mann kann alles aus der Ferne parametrieren.

Es gibt also für jede Datei eine einzelne Datei?

Was soll der alles können, man ja nur die Drehrichtung und Impulse auswerten und wie lange der Tastendruck war (einfach / doppelt / lang)? (Play / Pause / Vol+ / Vol-) <-langer druck-> (Spulen+ / Spueln- / Nächster Track) <-doppelter druck-> (EQ-Wechseln)?

Ich war der Meinung das man das so kompakter und günstiger hin bekommt. Mit den fertigen Modulen ist man ja schnell bei 40+€ und dann kommt ja noch das Gehäuse mit Lautsprecher und Knöpfen etc. dazu. Ich hatte jetzt mal die Kosten der letzten Box überschlagen welche Ich für meine Nichte gebaut habe und war überrascht wie schnell Ich 100€ zusammen hatte…

Und last but not least: Wie steht es um das Web-Interface? Ist da was geplant? Ich habe die Box mit dem ESP Upgrade jetzt vier Tage bei meinem Sohn im Einsatz und muss sagen das Ich das Web-Interface eigentlich kaum nutze. Bisher nur um die Box ab zu schalten und einmal um die passende EQ Einstellung zu finden. Das hätte Ich dann per MQTT bzw. beim EQ über CLI einfacher haben können ohne mir noch eine HTML Page aus zu denken.


#83

Ich verfolge das Thema immer mal wieder, allerdings bin ich was den ESP angeht ein totaler Neuling, daher verstehe ich (noch) nicht alles.
Ersteinmal ein großes Lob an Eure bisherige Arbeit!

So wie ich es sehe, ist es mit Eurer Methothe möglich per Wlan das Gerät zu steuern und auch den Karteninhalt zu ändern richtig?
Und ihr strebt auch an, dass man damit Internetstreams hören kann. (Oder ihr habt es schon umgesetzt). Richtig? So wie ich es verstanden habe, ist es aber auf keinem Fall möglich, damit auch Spotify oder anderen Streaminganbieter zu nutzen, oder?

Plant ihr das Ganze einmal einem mit einer Anleitung, Teileliste und Übersicht der Funktionen aufzubereiten?
Ich würde es gerne nachbauen wenn ihr fertig seid :slight_smile:


#84

So, die Brocken sind bestellt, jetzt heißt es erst mal warten… :slight_smile:


#85

Ja, korrekt.

Mein Plan bisher: 2 Taster (Vor / Zurück) und statt des mittleren Tasters den Drehregler für Play/Pause und Lautstärke. Alles andere kann dann ja nachträglich immer noch erweitert werden.

Das stimmt. Ist sicher ne gute Idee eine eigene Plantine zu entwickeln mit bestimmten Komponenten.

Ich dachte, wir übernehmen das von Dir :smiley: Ich sehe es allerdings auch so, dass ein Webinterface zur Steuerung ganz am Schluß der Featureliste kommen kann. Für mich wäre Wifi für den Zugriff auf die Karte wichtig, Streams und evtl. MQTT. CLI über Wifi würde ich gut finden, Serielle Konsole über Wifi…


#86

Ich antworte mal aus meiner Sicht…

Ja, korrekt. Primäre der Zugriff auf die SD-Karte

Ja, genau. Die zur Zeit verwendete Library bringt eine Funktion für das Abspielen von Streams bereits mit. Probiert habe ich das bisher nicht. Webradio und Youtube würde ich anstreben.

Vermutlich nicht. Wenn jemand dazu Ideen hat…

Auf jeden Fall geplant.

Um vielleicht nicht zu viele Erwartungen zu enttäuschen…
Persönlich sehe ich die Vorteile und nächsten Schritte hier:

  • WIFI für den Zugriff auf die SD-Karte
  • Zusätzliche Funktionen des MP3 Players. Resume/Spulen
  • Abspielen von Streams
  • Mehr Leistung für “Erweiterungen”
    • RGB LEDs
    • Beschleunigungssensor

#87

Vielen Dank für die Antworten. Dann lag ich doch nicht so falsch. Freue mich schon es nachzubauen.

Das wären auch genau die Sachen, die mir im Moment im TonUino noch fehlen.


#88

Guten morgen,

Meine persönliche Meinung:

Bespielen der SD Karte mit MP3‘s ist ganz nett, aber für mich ist es auch kein Problem, gerade die Karte in den Rechner zu stecken.

Streams wären natürlich Mega!!!

Leider kann ich als KFz-ler nicht viel in der Entwicklung unterstützen :frowning:


#89

Ich habe Kfz-Elektriker gelernt, jeder kann wenn er will😜


#90

Hey leute ich hatte gerade die idee das fals es in einem Haushalt mal mehr als einen TonUINO gibt man das eingebaute Bluetooth des ESP dazu nutzt um eine Box als Master Speaker und eine oder viele andere als Slave zu nutzen…


#91

Ich glaube das wird für eine lange Zeit zu kompliziert, da dann die Wiedergabe zwischen den einzelnen Boxen
synchronisiert werden müsste (man Bluetooth Übertragung ausgleichen)

Wenn die verwendete Library funktioniert, müsste nur ein anderer “Dateiname” auf der Karte hinterlegt werden und der “Player” muss den String an die korrekte Funktion weitergeben. Sobald ich wieder “mein” WLAN habe werde ich das mal probieren.

Die komplette Konfiguration auf der SD Karte zu spichern ist natürlich möglich. den cardHandler könnte man dann stark reduzieren, dafür wird das Aufwand zum lesen und schreiben der SD Karte deutlich größer.

Da würde dann das Hauptproblem darin liegen die Zugriffe der Tasks auf die SD Karte zu synchronisieren damit nicht zwei Tasks gleichzeitig auf die SD Karte zugreifen wollen / können.

@Christian Ich hab Teile deines “Resume” Codes jetzt auch bei mir eingebaut. Das Abspeichern habe ich allerdings um ein “Tag” erweitert, damit man auch mehrere Informationen in einer Datei ablegen kann und nicht von der Reihenfolge abhängig ist.
Zusätzlich setze ich den Fortschritt auf 0 zurück, wenn das Ende des Files erreicht wurde, sonst könnte man ein Lied nie erneut spielen :slight_smile:


#92

Ja, aber ist es nicht etwas hakelig die RFID-Karten zu beschreiben? Unterschiedliche Typen usw.? Wenn ich die Möglichkeit habe, gehört die Konfig für mich auf das Device wo auch die Daten liegen.

…und ich übernehme die Funktionen aus der File-Klasse. :wink: Das ist ja einfacher als das manuelle Parsen. Diese Funktionen sind ja auch schon die halbe Miete, wenn ich die Konfig einer Karte auf die SD schreiben möchte!

Ich lösche die Datei einfach, wenn das Ende erreicht ist…Wie stellst Du sicher, dass Du nur den Wert von “File Position” überschreibst?


#93

Als hakelig würde ich es nicht bezeichnen. Aber du hast schon recht, man könnte alles auf der SD Karte speichern.

Bisher gar nicht. :wink: Aber bei C++ bleibt einem nicht anders übrig, als das File komplett neu zu schreiben. Ändern einer einzelnen Zeile ist nicht möglich.


#94

Hallo Christopher,

Ich habe bei der letzten version ein Fehler "variable or field writeCarddeclared void
er zeigt die zeile:
void writeCard(nfcTagObject nfcTag) {

hast du eine Idee?


#95

Hallo,

die Genaue Fehlermeldung wäre gut denn die Letzte Version auf GitHub hatte beim kompilieren eigentlich keine Fehlermeldungen.

Hier mal der Code-Ausschnitt der letzten Version:

void writeCard(nfcTagObject nfcTag) {
  MFRC522::PICC_Type mifareType;

uint8_t bytes[4];

bytes[0] = (nfcTag.color >> 0)  & 0xFF;
bytes[1] = (nfcTag.color >> 8)  & 0xFF;
bytes[2] = (nfcTag.color >> 16) & 0xFF;
bytes[3] = (nfcTag.color >> 24) & 0xFF;

  byte buffer[20] = {0x13, 0x37, 0xb3, 0x47, // 0x1337 0xb347 magic cookie to
                                             // identify our nfc tags
                     0x01,                   // version 1
                     nfcTag.folder,          // the folder picked by the user
                     nfcTag.mode,    // the playback mode picked by the user
                     nfcTag.special, // track or function for admin cards
                     bytes[3],  //Farbe welche eingeschaltet werden soll
                     bytes[2],  //Farbe welche eingeschaltet werden soll
                     bytes[1],  //Farbe welche eingeschaltet werden soll
                     bytes[0],  //Farbe welche eingeschaltet werden soll
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

  byte size = sizeof(buffer);

  mifareType = mfrc522.PICC_GetType(mfrc522.uid.sak);

  // Authenticate using key B
  Serial.println(F("Authenticating again using key B..."));
  status = (MFRC522::StatusCode)mfrc522.PCD_Authenticate(
      MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid));
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("PCD_Authenticate() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
    myDFPlayer.playMp3Folder(401);
    return;
  }

  // Write data to the block
  Serial.print(F("Writing data into block "));
  Serial.print(blockAddr);
  Serial.println(F(" ..."));
  dump_byte_array(buffer, 20);
  Serial.println();
  status = (MFRC522::StatusCode)mfrc522.MIFARE_Write(blockAddr, buffer, 16);
  if (status != MFRC522::STATUS_OK) {
    Serial.print(F("MIFARE_Write() failed: "));
    Serial.println(mfrc522.GetStatusCodeName(status));
      myDFPlayer.playMp3Folder(401);
  }
  else
    myDFPlayer.playMp3Folder(400);
  Serial.println();
  delay(100);
}

#96

Habe jetzt in der Version 0.18.0 die Wiedergabemöglichkeit von Playlists eingefügt (incl. Resume)

Die Wiedergabe von Streams solle auch möglich sein, ist aber noch ungetestet.


#97

Kanns kaum erwarten mit zu machen, leider ist bisher nur der esp32 angekommen📬


#98

Ich hoffe das ich in der nächsten Woche auch dazu kommen etwas dazu beizutragen.

Wo liegt denn der aktuelle Stand?
Basis ist noch immer der DFplayer oder vs1053?

Gruß
Multi


#99

Kommt darauf an:

  • Christopher arbeitet an einer Version mit dem DFplayer
  • Christian und ich arbeiten jeweils an einer Version mit dem VS1053

#100

Wie ich schon Mal erwähnt habe macht für mich nur eine Version ohne DFplayer Sinn wegen der Streams.

Kann ich mich irgendwie einbringen?