Outils pour utilisateurs

Outils du site


utiliser_un_lecteur_rfid_acr_122u_gnu_linux

Utiliser un lecteur RFID ACR 122U avec GNU/Linux

Présentation

Dans le cadre de la réalisation d'une table interactive, il m'a été demandé de pouvoir interagir avec un ordinateur avec un objet. Pour ce faire, j'ai identifié la technologie RFID comme étant adéquate. Pour plus d'info sur la technologie, faîtes un tour chez Wikipédia : https://fr.wikipedia.org/wiki/Radio-identification .

Après quelques recherches sur les internets, je suis tombé sur la référence ACR 122U, produite en Chine, et qui semble être la plus diffusée. Un capteur coûte aux environs d'une cinquantaine d'euros.

Installation du driver

Voici maintenant la suite de commande détaillée qui m’a permis d’installer le lecteur sur un Raspberry Pi, et un Debian Stretch, selon la source suivante : https://oneguyoneblog.com/2015/09/16/acr122u-nfc-usb-reader-raspberry-pi/

Mise-à-jour des paquets :

sudo apt-get update

Installation des paquets nécessaires :

sudo apt-get -y install subversion autoconf debhelper flex libusb-dev libpcsclite-dev libpcsclite1 libccid pcscd pcsc-tools libpcsc-perl libusb-1.0-0-dev libtool libssl-dev cmake checkinstall

Installation du driver pour le lecteur :

wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.0-rc7/libnfc-1.7.0-rc7.tar.gz

Décompressage du paquet :

tar -xvzf libnfc-1.7.0-rc7.tar.gz

On entre dans le répertoire :

cd libnfc-1.7.0-rc7

Configuration du paquet :

./configure –with-drivers=acr122_usb

Compilation :

make

Installation :

sudo make install

Reconfiguration de ldconfig :

sudo sh -c "echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf"

Mise-à-jour de ldconfig :

sudo ldconfig

Une fois que ceci est fait, utiliser cette commande :

sudo nfc-list

Permet de détecter le lecteur RFID. S’il n’y a pas de tag :

NFC device: ACS / ACR122U PICC Interface opened

Avec un tag :

NFC device: ACS / ACR122U PICC Interface opened
1 ISO14443A passive target(s) found:
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
       UID (NFCID1): 9a  8b  6e  02  
      SAK (SEL_RES): 08 

La référence UID de 8 caractères est l’identifiant unique du tag, qui nous permettra plus tard de l’identifier.

Un script en Python pour l'utiliser

import os, re
from subprocess import Popen, PIPE

tags = [ "e0  f6  6e  02", "80  16  6e  02", "7b  3a  6e  02" ]
fonctions = [ fonction1, fonction2, fonction3 ]

while True:
	
	tag_reading = Popen(["nfc-list"], stdout=PIPE).communicate()[0]
	
	for i in range( len( tags ) ):
		if re.search( tags[i], tag_reading ):
			fonctions[i]()
	
	sleep( 0.5 )

def fonction1():
	pass

def fonction2():
	pass

def fonction3():
	pass
utiliser_un_lecteur_rfid_acr_122u_gnu_linux.txt · Dernière modification: 2019/05/10 09:41 par serge