Si vous êtes abonné à Elektor, vous avez reçu avec votre numéro de janvier-février 2016 une carte de visite électronique dotée d’une balise NFC ST25TA02K de STMicroelectronics.
Dans chaque balise sont enregistrés une URL et un numéro d'identification unique UID de sept octets. Pour participer au jeu-concours organisé par Elektor et STMicroelectronics, vous devez les lire avec une appli NFC sur votre téléphone... à supposer qu'il soit compatible NFC.
Que faire si ce n'est pas le cas ?
Quand il a reçu son exemplaire de la revue Elektor, notre ami Patrick Gueulle a aussitôt pensé à tous ceux que le principe de la communication en champ proche intéresse et qui voudraient lire l'UID une telle carte mais qui, justement, ne sont pas équipés d'un téléphone Android assez récent. Et à ceux qui ont un iPhone... on sait qu'Apple a une vision fort restrictive de la NFC...
SI vous êtes concerné par ces restrictions, ou tout simplement curieux de ce que l'on trouve sur les chemins de traverse, Patrick Gueulle vous propose un petit programme en langage ZCBasic qui permet d'afficher l'UID à l'aide d'un PC équipé d'un lecteur PC/SC sans contact comme le modèle ACR122 (cela commence à devenir courant).
En voici le code source :
#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
 
Admirez l'étonnante simplicité de développement d'applications avec le kit BasicCard par rapport à "l'usine à gaz" Android* !  Ce court programme montre à quel point il est facile de lire l'UID de n'importe quel objet sans contact compatible avec le lecteur PC/SC utilisé. Il exploite tout simplement la commande « GET UID » ( FF CA 00 00 00) imposée par les spécifications PC/SC.
Pour compiler ce code en exécutable autonome pour Windows, il suffit du kit logiciel de la BasicCard, entièrement gratuit. Une excellente occasion de le découvrir si ce n'est déjà fait !
Un dernier détail pour les utilisateurs d'un lecteur Omnikey 5321 (lui aussi très répandu) : la ligne ComPort = 101 devient ComPort = 102, car il s'agit d'un lecteur bi-mode (avec et sans contact).

Comme il pense à tout et à tous, Patrick Gueulle a préparé pour ceux qui ne veulent pas passer par la case compilation, un zip (lien ci-dessous en pièce jointe) qui réunit les deux variantes de l'exécutable (ComPort = 101 et 102), ainsi que les codes-source correspondants. Merci Patrick !

Lire aussi :  ausculter les cartes à puce synchrones avec un lecteur PC/SC (téléchargement libre)
Vous retrouverez Patrick Gueulle dans les numéros de mars et d'avril 2016 d'Elektor avec deux articles et des informations croustillantes sur les récents salons Cartes et Milipol.

* sans perdre de vue toutefois le fait que l'appli de STMicroelectronics fait bien plus que lire l'UID !