Ich betreibe schon seit etwa einem Jahr eine Art ESPuino, leider habe ich aber erst kürzlich dieses tolle Projekt gefunden. Da die Hardware von meinem System bis auf kleine Unterschiede identisch ist, habe ich entschieden meinen zusammengebastelten Code mit diesem hier zu ersetzen, da der Funktionsumfang viel grösser ist.
Der Code ist soweit auch sehr ähnlich und mit den gleichen/ähnlichen Bibliotheken aufgebaut. Der einzige grössere Unterschied ist, dass ich bei meiner Version Ordner von Playlists nicht via ID Mifare Karten verlinkt habe, sondern den Namen der Playlists auf die Karten geschrieben habe. Das ist soweit kein Problem, da die Karten hier ja trotzdem funktionieren und ich den ESPuino Ansatz eigentlich auch besser finde.
Mein Problem:
Auf der Weboberfläche des ESPuino wird nach einer 12-stelligen ID gefragt. Die Mifare Karten ID sind ja üblicherweise in HEX. Welchen Teil davon muss ich eingeben und in welchem Format? Im Code ist ja ein char array gefragt mit 12 bytes + 1 (ich nehme an string Schluss byte).
Bei mir wird die Karte erkannt, aber die Zuordnung klappt bisher nicht. Neu formatieren vielleicht?
Hallo Mars,
Bei ESPuino sind die 4 bytes von der CardID als 3-stellige Dezimalnummer kodiert (dadurch kommt die 12-stellige ID zu Stande). Die Umrechnung kannst du zB hier sehen:
Die 12-Stellige ID sollte in der GUI automatisch ausgefüllt werden, sobald die Karte erkannt wird. Bekommst du auf der seriellen Ausgabe die Info, dass dir Karte erkannt worden ist?
Sollte diese Form haben:
N [119741] RFID-Karte erkannt: f1-33-32-1b
I [119744] RFID-Karte empfangen: 241051050027
E [119747] RFID-Karte ist im NVS nicht hinterlegt.
Vielen Dank auch JHB für deinen Workflow. Ich glaube nicht so etwas irgendwo in den Anleitungen gesehen zu haben. Könnte vllt. irgendwo noch erwähnt werden @biologist?
Naja, leider ist das bei mir nicht das Problem. Der Fehler liegt ziemlich sicher am geteilten SPI. Es steht ja sogar hinter der Option, dass es noch nicht geht…
Mein PCB Design ist jetzt aber leider so… In meinem Code habe ich das ja zum laufen gebracht. Deshalb sollte das hier eigentlich auch klappen (mit etwas Performance Einbussen). Ich werde meine Lösung teilen, wenn es klappt. Könnte andere auch betreffen.