Jump to content

Frage zu NFC/RFID-Bricklett und Brick-MQTT-Proxy


Svain
 Share

Recommended Posts

Hallo liebe Tinkerforge-Community,

 

ich habe ein paar Fragen zum NFC/RFID-Bricklett (alte Version) sowie dem Brick-MQTT-Proxy. Ich verwende den Tinkerforge für ein Projekt in meinem Studium. Kurz zum Aufbau:

 

Mithilfe des Bricklett soll ein NFC-Tag ausgelesen werden. Auf dem NFC-Tag ist zu Testzwecken lediglich eine Zahl darauf. Mithilfe des Brick-MQTT-Proxy soll diese Zahl als MQTT-Nachricht zur Verfügung gestellt werden. Nun zu meinen Fragen/Problemen:

 

Auf dem Bricklett liegt dauerhaft ein NFC-Tag bereit(NFC-Forum-Typ2). Leider wird dieses nicht zuverlässig gefunden, stattdessen werden zwei verschiedene NFC-Tags gefunden. Beim Auslesen über den Brick Viewer sagt dieser immer "Could not find NFC Forum Type 2 tag". Wenn man mehrmalig auf "Scan for Tag" klickt, findet er irgendwann zwei unterschiedliche Tags (zu sehen an der ID), die er immer wieder in gleicher Reihenfolge anzeigt. Sobald man nach dem zweiten Tag wieder auf Scan klickt, beginnt der Zyklus wieder von vorne, er findet lange nichts und dann irgendwann die beiden Tags in gleicher Reihenfolge.

 

Weiter zum MQTT-Proxy. Mit dem offiziellen MQTT-Proxy wird eine MQTT-Nachricht mit Retained merkmal versendet. Das scheint also, von meinem Verständnis her, zu funktionieren. Er findet das Bricklett und da kein neuer Wert ermittelt wurde, gibt es nur die retained nachricht?

 

Nun zu den Fragen:

1. Was kann das Verhalten beim Auslesen über den Brick-Viewer sein? Liegt hier evtl. irgendwo ein Defekt vor? Leider habe ich keinen Zutritt zu dem Raum mit dem Bricklett um ein anderes Tag zu testen.

 

2. Beim Beschreiben über den Brick Viewer gebe ich offensichtlich Hexadezimale Werte ein, oder? Wenn ich also einfach die Zahl 52 darauf schreiben möchte, muss ich das so wie in den Screenshots im Anhang tun? Auf denen sieht man auch die unterschiedlich ausgelesenen Tags

 

3. Wie muss ich den JSON-Payload der MQTT-Nachricht interpretieren? Wird der Payload, z.B. bei der Page, direkt von Hexadezimal in ASCII oder etwas anderes übersetzt? Als Beispiel der JSON-Payload der Retained Nachricht im Anhang.

 

4. Gibt es eine Möglichkeit, eine neue MQTT-Nachricht zu "erzwingen" ohne physikalisch ein NFC-Tag auf das Bricklett zu legen? z.B. durch neubeschreiben über den Brick Viewer oder Reset des Master Bricks?

 

Ich hoffe, das war jetzt nicht zuviel Text/Info/Fragen.

 

Herzlichen Dank vorab für eure Unterstützung :)

Falls weitere Infos nötig sind, dann immer her damit :)

Tag1.png.7830b826451739e426907f7918d4849a.png

Tag2.png.85bd5ac69757505670e10518873485a5.png

MQTT.png.668377e38dca9e10c6a627043670dc81.png

Link to comment
Share on other sites

Hallo, zu deinen Fragen:

 

1. Das sieht so aus also ob du da zwei Tags in Reichweite hast. Das da manchmal eine Pause drin ist und nichts erkannt wird an der Kollisionsauflösung von NFC liegen. Da musst du entweder damit umgehen können, dass da zwei Tags kommen und auf den richtigen warten, oder den zweiten Tag aus der Reichweite des Bricklets entfernen.

 

2. Richtig, Brick Viewer stellt die Daten hexadezimal dar. Auf dem einen Tag steht 0x35 0x32 was als ASCII interpretiert den String "52" ergibt. Das ist eine von vielen Variante das zu realisieren, das spricht nichts gegen.

 

3. Der JSON Payload beinhaltet die Daten aus dem zweiten Tag dezimal dargestellt. 0x10, 0x55, 0x01, 0x74, ... in hexadezimal entspricht 16, 85, 1, 116, ... in dezimal.

 

4. Das .../page Topic sollte automatisch entsprechend dem .../_update_interval aktualisiert werden. Wenn das nicht passiert, dann läuft entweder der Brick-MQTT-Proxy nicht mehr, oder der Proxy kann den MQTT Broker nicht erreichen. Das Bricklet an sich schein ja noch zu funktionieren, ansonsten könntest du es nicht mit Brick Viewer nutzen.

 

Wir sind gerade Dabei den Brick-MQTT-Proxy durch MQTT API Bindings zu ersetzen:

 

https://www.tinkerunity.org/forum/index.php/topic,4735.0.html

 

Diese geben dir mehr Kontrolle über das NFC/RFID Bricklet. Damit kannst du einen get_page Aufruf über MQTT erzwingen.

Link to comment
Share on other sites

Vielen Dank für die schnelle Antwort.

 

Wenn es so scheint, dass dort zwei NFC-Tags in der Nähe liegen werde ich versuchen, Zugang zu dem Raum zu bekommen um mir das mit meinem Professor vor Ort anschauen zu können.

 

Dann noch eine kurze Nachfrage zum Page-Topic: Ich sehe in MQTTfx, dass das NFC/RFID-Bricklett verfügbar ist, die entsprechende "../enumerate/available/nfc_rfid" ist vorhanden, auch die retained Nachrichten. Es werden auch fleißig neue Nachrichten von anderen Bricklets (z.B. Temperatur, Barometer) veröffentlicht. Das Update-Intervall steht auf 60 Sekunden. Das sieht für mich so aus, als ob sowohl das Skript laufen und der MQTT-Broker erreicht wird.

 

Wenn ich das richtig verstanden habe, sollte also alle 60 Sekunden eine neue Nachricht versendet werden. Aber nur, wenn das Bricklett auch eine Verbindung zu einem NFC-Tag innerhalb der letzten 60 Sekunden hatte? Ansonsten bleibt es bei der "alten" Nachricht, da sich nichts geändert hat? Oder schickt das NFC/RFID-Bricklett alle 60Sekunden immer die Informationen über den letzten NFC-Tag als neue Nachricht (mit immer "gleichem" Inhalt)?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...