jul 042016
 

20160703_135208_HDRIn de categorie “had ik eigenlijk al langs eens mee moeten experimenteren” valt zeker het product dat ik dit weekend eens flink aan de tand gevoeld heb: een RFID Module voor Arduino en vergelijkbare apparaten. Immers, RFID (radio frequency identification) en zusje NFC (near field communication) kom je op steeds meer plekken tegen. Van mijn bankpas, OV-kaart, de personeelspas op het werk, de etiketten aan de kleren die ik bij sommige zaken koop, tot mijn telefoon (LG G4), om maar eens een paar voorbeelden te noemen.

20160702_141424_HDR-1Het setje dat ik ter beschikking gekregen heb, bestaat uit een RFID-RC522 reader, een kaart in credit card formaat en een tag in sleutelhangerformaat. De eerste stap die je moet uitvoeren (tenminste, dat is aan te raden) is het solderen van een van de twee bijgeleverde headers, de rechte of die met een hoek. Ik koos voor de header met de hoek van 45 graden, als je de reader vast wilt kunnen prikken in een breadboard zul je de andere kiezen.

Daarna heb je in totaal 7 kabels nodig om het geheel aan te sluiten op de Arduino.

Uno_RFID-RC522

Aansluitschema RFID-RC522

Daarbij moet je even opletten omdat het wellicht lijkt alsof de kabels in dezelfde volgorde van “rechts naar links” gaan, maar dat is niet zo. Als je van onder naar boven (met het zilverkleurige kristal aan de bovenkant) telt, dan is de onderste aansluiting voor 3,3 V (niet voor 5V). De GND (ground) zit niet er direct naast, maar eentje verder (je ziet GND staan op het bordje), die moet je aansluiten op een van de GND aansluitingen op de Arduino (er zijn er meer).

Dan krijg je de overige 5 aansluitingen:

  • De RST zit tussen 3.3V en GND op de RC522 (de gele kabel in het plaatje), die sluit je aan op ~9.
  • De aansluiting boven de GND sluit je niet aan, die erboven (turquoise in de afbeelding) gaat naar ~11
  • Die daarboven (groen) gaat naar ~11
  •  Die daarboven (oranje) gaat naar ~13
  • De bovenste (blauw) gaat naar ~10

Niet helemaal helder? Klik dan even op de afbeelding om goed het plaatje te bekijken.

DumpInfo

Output van DumpInfo script

De volgende stap daarna is uiteraard het vinden en installeren van de juiste library voor de RFID-RC522. De meest gebruikte is die van Michuel Balboa, dus die heb ik ook gebruikt. Na het installeren van de library heb je ook nu weer de beschikking over voorbeelden. Het voorbeeld dat je het meest inzicht geeft over de inhoud van een tag is DumpInfo. Daarmee krijg je namelijk niet alleen het UID (unieke ID van de tag), het type van de tag (PICC type: MIFARE 1KB in dit geval) maar ook de inhoud van de kaart / tag  te zien.

De twee tags die bijgeleverd worden zijn standaard leeg, daar is dus niet heel veel aan te zien. Wil je meer weten over wat je nou eigenlijk te zien krijgt in zo’n dump, dan is het handig om wat meer te weten over de MIFARE 1KB RFID kaart. De kaart maakt gebruik van 16 sectoren (in de dump genummerd 0 – 15) of 64 blokken (genummerd 0-63). Elk blok heeft ruimte voor 16 bytes aan data (te zien als kolommen genummerd 0 – 15 in de dump). De informatie die je ziet wordt in hexadecimaal formaat opgeslagen, dus daarom zul je in het algemeen in die dump alleen maar “zooi” zien, d.w.z. geen informatie waar je echt chocola van kunt maken zonder dat je de software de conversie naar leesbare tekst laat uitvoeren.

Wat je mogelijk ook zal opvallen in de dump of de screenshot hiernaast is dat er regelmatig de combinatie FF FF FF FF FF FF ziet staan. Goed gezien! Die combinatie is de standaardsleutel die gebruikt wordt bij het krijgen van toegang tot de data. Als je bv deze sketch als uitgangspunt neemt dan heb je daarmee eigenlijk alles wat je voor een eenvoudige situatie nodig hebt: je zou het unieke ID van een tag kunnen gebruiken om de Arduino bepaalde acties op te laten starten, je zou dan zoiets kunnen bouwen als de Nabaztag/tag van bijna 10 jaar geleden. Wil je specifieke info op de tag opslaan of met de Arduino vanaf de tag lezen, dan kan dat ook.

Maar ik wilde meer. Want ik had immers een LG G4 met NFC. En toen werd het wat ingewikkelder…
Lees verder….

Deel dit bericht: