NFC-tags lezen zonder Android
Patrick Gueulle laat ons zien dat je ook NFC-tags kunt lezen zonder te beschikken over een recente Android-smartphone.
Als u lid bent van Elektor hebt u bij het januari/februarinummer een elektronisch visitekaartje ontvangen dat een NFC-tag ST25TA02K van STMicroelectronics bevat.
In iedere tag zijn een URL en een unieke UID van zeven hexadecimale getallen opgeslagen. Om aan de door Elektor en STMicroelectronics georganiseerde wedstrijd deel te nemen moet u deze met een app op uw telefoon lezen… als deze geschikt is voor NFC.
Maar als dat nu niet het geval is?
Toen hij zijn exemplaar van Elektor had ontvangen moest Patrick Gueulle onmiddellijk denken aan al diegenen die geïnteresseerd zijn in het principe van near field communication en de UID van zo’n kaart graag zouden willen lezen, maar niet beschikken over een redelijk recente Android-telefoon. En wat betreft iPhones… we weten dat Apple nogal terughoudend is op het gebied van NFC.
Als u zich zorgen maakt over deze beperkingen of als u eenvoudigweg nieuwsgierig bent naar alternatieve mogelijkheden, dan heeft Patric Gueulle een klein programmaatje voor u dat is geschreven in ZCBasic en waarmee de UID kan worden weergegeven met behulp van een pc die is voorzien van een contactloze PC/SC-lezer zoals de populaire ACR122.
Hier is de broncode:
U zult verbaasd zijn over eenvoud van het ontwikkelen met de BasicCard-kit in vergelijking met het complexere Android*. Dit korte programma toont aan hoe eenvoudig het is om de UID te lezen van ieder draadloos object dat compatibel is met de gebruikte PC/SC-lezer. Het maakt eenvoudig gebruik van het commando « GET UID » ( FF CA 00 00 00) dat is vastgelegd in de PC/SC-specificaties.
Om deze code te compileren tot een autonome executable voor Windows is alleen de (gratis) software-kit van de BasicCard nodig. Een uitstekende gelegenheid om hiermee kennis te maken als u dat niet al eerder hebt gedaan!
Een aanvullende opmerking voor de gebruikers van een Omnikey 5321 lezer (ook erg populair): de regel ComPort = 101 moet zijn ComPort = 102, omdat het hier een bi-mode lezer betreft (met en zonder contact).
Omdat hij aan alles en iedereen denkt heeft Patrick Gueulle voor diegenen die niet zelf willen compileren een zip gemaakt (in de bijlage) die de twee varianten van de executable bevat (ComPort = 101 en 102) en de bijbehorende broncodes. Bedankt Patrick!
Lees ook: Synchrone smartcards uitpluizen.
U ziet Patrick Gueulle in het maart/aprilnummer (2016) terug met interessante nieuwtjes van de recente beurzen Cartes en Milipol.
* waarbij we ons wel moeten realiseren dat de app van STMicroelectronics nog veel meer kan dan alleen de UID lezen!
In iedere tag zijn een URL en een unieke UID van zeven hexadecimale getallen opgeslagen. Om aan de door Elektor en STMicroelectronics georganiseerde wedstrijd deel te nemen moet u deze met een app op uw telefoon lezen… als deze geschikt is voor NFC.
Maar als dat nu niet het geval is?
Toen hij zijn exemplaar van Elektor had ontvangen moest Patrick Gueulle onmiddellijk denken aan al diegenen die geïnteresseerd zijn in het principe van near field communication en de UID van zo’n kaart graag zouden willen lezen, maar niet beschikken over een redelijk recente Android-telefoon. En wat betreft iPhones… we weten dat Apple nogal terughoudend is op het gebied van NFC.
Als u zich zorgen maakt over deze beperkingen of als u eenvoudigweg nieuwsgierig bent naar alternatieve mogelijkheden, dan heeft Patric Gueulle een klein programmaatje voor u dat is geschreven in ZCBasic en waarmee de UID kan worden weergegeven met behulp van een pc die is voorzien van een contactloze PC/SC-lezer zoals de populaire ACR122.
Hier is de broncode:
#Include CARDUTIL.DEF
Declare Command &HFF &HCA UID(S$)
ComPort=101
CLS:Call WaitForCard:ResetCard(S$)
Print:Print "UID : ";
Call UID(P1P2=&H0000,Lc=0,S$)
For F=1 TO Len(S$)
C$=MID$(S$,F,1):C=ASC(C$):C$=HEX$(C)
IF LEN(C$)=1 then C$="0"+C$
Print C$;" ";
Next F
Print:Print
Call WaitForNoCard
Declare Command &HFF &HCA UID(S$)
ComPort=101
CLS:Call WaitForCard:ResetCard(S$)
Print:Print "UID : ";
Call UID(P1P2=&H0000,Lc=0,S$)
For F=1 TO Len(S$)
C$=MID$(S$,F,1):C=ASC(C$):C$=HEX$(C)
IF LEN(C$)=1 then C$="0"+C$
Print C$;" ";
Next F
Print:Print
Call WaitForNoCard
U zult verbaasd zijn over eenvoud van het ontwikkelen met de BasicCard-kit in vergelijking met het complexere Android*. Dit korte programma toont aan hoe eenvoudig het is om de UID te lezen van ieder draadloos object dat compatibel is met de gebruikte PC/SC-lezer. Het maakt eenvoudig gebruik van het commando « GET UID » ( FF CA 00 00 00) dat is vastgelegd in de PC/SC-specificaties.
Om deze code te compileren tot een autonome executable voor Windows is alleen de (gratis) software-kit van de BasicCard nodig. Een uitstekende gelegenheid om hiermee kennis te maken als u dat niet al eerder hebt gedaan!
Een aanvullende opmerking voor de gebruikers van een Omnikey 5321 lezer (ook erg populair): de regel ComPort = 101 moet zijn ComPort = 102, omdat het hier een bi-mode lezer betreft (met en zonder contact).
Omdat hij aan alles en iedereen denkt heeft Patrick Gueulle voor diegenen die niet zelf willen compileren een zip gemaakt (in de bijlage) die de twee varianten van de executable bevat (ComPort = 101 en 102) en de bijbehorende broncodes. Bedankt Patrick!
Lees ook: Synchrone smartcards uitpluizen.
U ziet Patrick Gueulle in het maart/aprilnummer (2016) terug met interessante nieuwtjes van de recente beurzen Cartes en Milipol.
* waarbij we ons wel moeten realiseren dat de app van STMicroelectronics nog veel meer kan dan alleen de UID lezen!