About the author

Sébastien Joly

Passionné de plongée, de voile croisière, de navigation, d'océans, de géomatique, de domotique, d'informatique ... des tictictics, je suis technophile un point c'est tout. Je m'intéresse à la domotique depuis plusieurs années mais je me suis lancé fin 2012 seulement. [ Accéder à mes articles ] [ Mon installation domotique ]

Related Articles

42 Comments

  1. 1

    fredo

    Bel article. Clair, net, précis… du Seb, c’est bien !

  2. 2

    Pascal STEPHANY

    Excellent !!!
    Merci Seb 🙂

  3. 3

    framboise314

    Bonjour Seb
    Pour l instant je suis en vacances
    j’ai bien noté de préparer un article présentant
    cette passerelle domotique quand je reprendrai (mi sept)
    Cordialement
    François

  4. 4

    Sébastien Joly

    @framboise314 c’est pas ce que je voulais dire avec mon commentaire sur framboise314. C’est juste pour orienter tes lecteurs au cas ou …

  5. 5

    TouFou

    Merci Merci Merci !!!!!

    Je peux enfin utiliser ma carte NFC simplement!!!!

    Je me permet une ou deux remarques pour ton tuto:
    Dans la partie installation de mon petit developpement apres le wget, il faut rajouter mv domotique-info-nxpnfc.tar nxpnfc.tar

    et ensuite, à chaque fois que tu mentionne /home/pi/nxpnfc.sh, c’est plutot /home/pi/nxpnfc/nxpnfc.sh

    Un grand merci pour ton article!!

  6. 6

    Sébastien Joly

    @TouFou
    Merci pour ta correction. Par contre je préfère renommer directement la cible de téléchargement dans la commande wget.

  7. 7

    miguipda

    Bonjour,

    personnellement, je verrais bien l’usage de ce tutoriel en déportant le module NFC de la carte RPi (avec un câble de rallonge) afin que le module NFC soit (dans le montant de chassis en bois de la porte ou) attaché derrière la porte (côté intérieur donc) juste à hauteur de la poignée poussoir. Ainsi, en mettant la main sur cette poignée de porte, l’anneau (http://nfcring.com/) se retrouve alors (invisiblement) face au capteur NFC.

    Le RPi se trouvant placé avec sa caméra comme oeil de judas de porte (en mode détection de mouvement).

    Ceci serait alors une bonne sécurité d’intrusion non désirée pour toute personne sachant crocheter une porte. La non détection de l’anneau NFC et l’enregistrement (même partiel) vidéo permet un envoi (mail) des infos propres à l’ouverture/fermeture (désiré ou inconnu) de la porte.

    Double fonctionnalité donc : sécurité et log des entrées sorties

    D’avance merci de faire ce deuxième tuto complémentaire de vidéo en mode détection de mouvement avec le module camera de la RPi : http://www.seeedstudio.com/depot/Raspberry-Pi-Camera-Module-p-1659.html?cPath=122_111

    Excellente continuation et merci pour ces excellent articles.

  8. 8

    Sébastien Joly

    @miguipda bonjour,
    L’idée est intéressante, mais je n’ai pas prévu à moyen termes cet article en sus.

  9. 9

    Barry

    Hi,

    Sorry that this is in english, but I get this error:

    pi@raspberrypi ~/nxpnfc $ sudo python /home/pi/nxpnfc/nxpnfc.py
    2014-10-06 | 10:15:28 | Lancement du script
    2014-10-06 | 10:15:28 | Chargement du fichier de configuration.
    2014-10-06 | 10:15:28 | Attente lecture Mifare.
    Traceback (most recent call last):
    File « /home/pi/nxpnfc/nxpnfc.py », line 72, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

    Are you able to assist?

  10. 10

    Sébastien Joly

    Hi @Barry,
    Can you give me the configuration file (nxpnfc.cfg) without password?
    It is imperative to three semicolons per line in this file.

  11. 11

    Barry

    Hi and thanks for your response, iactually left the example file as is, so its as per the download, i have not modified it.

  12. 12

    Sébastien Joly

    @Barry, This is normal then. You must adapt the http request to your needs. What do you drive?

  13. 13

    Barry

    Hi, I would expect the system to still run without error, only when i go to swipe the NFC should it error?

    pi@raspberrypi ~/nxpnfc $ more nxpnfc.cfg
    041272495B2381; »0@http://192.168.1.140/api/callAction?deviceID=82&name=turnOn|admin|motdepasse »; »1@http://192.168.1.140/api/callAction?deviceID=82&name=turnOff|admin|motdepasse »;
    041272495B2382; »http://192.168.1.2/sms-gw/sms.php?telnum=06123456784&message=ACTION1″; »http://192.168.1.2/sms-gw/sms.php?telnum=0612345678&message=ACTION2″;

    I did what you suggested and made a new nxpnfc.cfg which now contains a single line:
    041272495B2382; »http://www.unix.co.nz/?var=test »; »http://www.unix.co.nz/?var2=test »;

    I tried to start it and the same error appears:

    pi@raspberrypi ~/nxpnfc $ sudo python /home/pi/nxpnfc/nxpnfc.py
    2014-10-06 | 13:31:34 | Lancement du script
    2014-10-06 | 13:31:34 | Chargement du fichier de configuration.
    2014-10-06 | 13:31:34 | Attente lecture Mifare.
    Traceback (most recent call last):
    File « /home/pi/nxpnfc/nxpnfc.py », line 72, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

    I dont have a keyboard attached at all but this shouldnt be the problem right.

  14. 14

    Sébastien Joly

    You forget the value « delay » (second). Must stipulate 0 if you do not want to delay.

  15. 15

    Barry

    same error with 041272495B2382; »0@http://www.unix.co.nz/?var=test »; »0@http://www.unix.co.nz/?var2=test »;

    Funny thing is even with your original cfg file its an error, why would you provide a example cfg with errors?

  16. 16

    Sébastien Joly

    It is difficult to provide an example that works with the local network of each.
    I think you did not understand the idea of the script in a home automation infrastructure. Http request that you want to execute is what action?
    In my example I offer a url to a Fibaro Homecenter2. By changing the IP address the login and password it works on. But if you do not read the article, and use the project without understanding the context is not ideal.

  17. 17

    Nico

    Bonjour,
    J’ai le même problème que les personnes précédentes. Lorsque j’exécute le fichier nxpnfc.py, j’ai l’erreur suivante:
    root@raspberrypi:/home/pi/nxpnfc# python nxpnfc.py
    2014-11-04 | 13:49:07 | Lancement du script
    2014-11-04 | 13:49:07 | Chargement du fichier de configuration.
    2014-11-04 | 13:49:07 | Attente lecture Mifare.
    Traceback (most recent call last):
    File « nxpnfc.py », line 72, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

    Même en modifiant le fichier de configuration, le problème persiste.
    Pouvez vous m’aider?

    Merci

  18. 18

    Sébastien Joly

    @Nico,
    La solution est la même qu’expliqué au dessus.
    Relire les conditions de formatage de la ligne de configuration. Respecter les éléments de l’encadré jaune

  19. 19

    Nico

    Après quelques recherche, il semblerait qu’il s’agisse d’une erreur au niveau de nxppy. La méthode uid=nxppy.read_mifare() génère une erreur:
    AttributeError: ‘module’ object has no attribute read_mifare

  20. 20

    Sébastien Joly

    Je n’ai jamais ce message d’erreur et la librairie PIP n’a pas évolué depuis mon installation.
    Seule possibilité vous êtes en Python 3 au lieu de 2.6 ou 2.7.

  21. 21

    Sébastien Joly

    Petit détail, si vous modifier le script python, vous n’êtes pas sans savoir la rigueur d’indentation du langage Python.
    De plus, il faut pas modifier les fichiers dans un éditeur ne respectant pas l’encodage du système cible.

  22. 22

    Nico

    Merci pour la réactivité!
    Je suis bien en version 2.7.3
    root@raspberrypi:/home/pi# python -V
    Python 2.7.3
    Je n’ai pas modifié le script python, juste tenté de l’exécuter.

  23. 23

    Sébastien Joly

    Sachant qu’il ne peut y avoir de différence que dans le fichier de config nxpnfc.cfg, je vous encourage à vérifier que vos actions et URL sont valides et fonctionnelles.

  24. 24

    Nico

    J’ai vérifié à nouveau le fichier de configuration, il me semble correct:
    041272495B2381; »0@http://172.22.1.11″;;

    Sachant que le raspberry dispose d’une adresse en 172.22.1.* et qu’il accède en wget et ping à l’adresse 172.22.1.11.

  25. 25

    Sébastien Joly

    Ok, mais en quoi cela matérialise une action ?

  26. 26

    Nico

    il s’agit d’un fichier index.php qui va désactiver une alarme. Mais cette url n’est pas appelée car le script nxpnfc.py s’arrête juste après avoir marqué « Attente lecture Mifare. »

  27. 27

    Sébastien Joly

    Je peux voir le log ?
    041272495B2381; »0@http://172.22.1.11?;;
    Les double-quotes sont pas bonne ( » « ).

  28. 28

    Nico

    root@raspberrypi:/home/pi/nxpnfc# sudo tail -f /home/pi/nxpnfc/nxpnfc.log
    2014-11-04 | 15:01:36 | Attente lecture Mifare.
    2014-11-04 | 15:02:06 | Lancement du script
    2014-11-04 | 15:02:06 | Chargement du fichier de configuration.
    2014-11-04 | 15:02:06 | Attente lecture Mifare.
    2014-11-04 | 15:08:45 | Lancement du script
    2014-11-04 | 15:08:45 | Chargement du fichier de configuration.
    2014-11-04 | 15:08:45 | Attente lecture Mifare.

  29. 29

    Sébastien Joly

    @Nico,
    Et dès le passage d’un d’un Mifare cela plante ?
    Car là j’ai pas d’UID.

  30. 30

    Nico

    Il ne lit aucun badge, il plante avant…

  31. 31

    Nico

    Lorsque j’exécute le fichier nxpnfc.py, voilà l’erreur:
    ^Croot@raspberrypi:/home/pi/nxpnfc# python nxpnfc.py
    2014-11-04 | 16:42:33 | Lancement du script
    2014-11-04 | 16:42:33 | Chargement du fichier de configuration.
    2014-11-04 | 16:42:33 | Attente lecture Mifare.
    Traceback (most recent call last):
    File « nxpnfc.py », line 74, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

  32. 32

    Nico

    J’ai créé un nouveau script python qui essaye simplement de lire un badge:
    import nxppy

    uid = nxppy.read_mifare()
    print uid
    Voilà l’erreur
    Traceback (most recent call last):
    File « test.py », line 3, in
    uid = nxppy.read_mifare()
    AttributeError: ‘module’ object has no attribute ‘read_mifare’

    C’est pourquoi je pense que c’est un problème au niveau de nxppy…

  33. 33

    Sébastien Joly

    J’ai vu que tu viens de créer une issue sur le git.
    Je pense surtout que ton install PIP ne s’est pas passé comme il faut.
    Te rappelles-tu le retour console suite à « sudo pip install nxppy » ?
    Je suis persuadé que tu n’as pas vu une erreur à ce moment là, car ce que je lis sur l’issue est « segmentation fault » qui peut arriver lors du make de la procédure.
    Donc, je te propose de reprendre au début après avoir nettoyé.

  34. 34

    Nico

    root@raspberrypi:/home/pi# sudo pip install nxppy
    Downloading/unpacking nxppy
    Downloading nxppy-1.1.tar.gz (1.5Mb): 1.5Mb downloaded
    Running setup.py egg_info for package nxppy
    no previously-included directories found matching ‘doc/.build’

    Installed /home/pi/build/nxppy/nose-1.3.4-py2.7.egg

    Installing collected packages: nxppy
    Running setup.py install for nxppy
    compiling NxpRdLib
    — The C compiler identification is GNU 4.6.3
    — The CXX compiler identification is GNU 4.6.3
    — Check for working C compiler: /usr/bin/gcc
    — Check for working C compiler: /usr/bin/gcc — works
    — Detecting C compiler ABI info
    — Detecting C compiler ABI info – done
    — Check for working CXX compiler: /usr/bin/c++
    — Check for working CXX compiler: /usr/bin/c++ — works
    — Detecting CXX compiler ABI info
    — Detecting CXX compiler ABI info – done
    — Configuring done
    — Generating done
    — Build files have been written to: /home/pi/build/nxppy/NxpRdLib_PublicRelease/build
    Scanning dependencies of target nxprd
    [ 1%] Building C object CMakeFiles/nxprd.dir/home/pi/build/nxppy/NxpRdLib_PublicRelease/comps/phalMful/src/phalMful.c.o

    [ 95%] Building C object CMakeFiles/nxprd.dir/home/pi/build/nxppy/NxpRdLib_PublicRelease/comps/phpalI14443p4a/src/Rd710/phpalI14443p4a_Rd710.c.o
    [ 97%] Building C object CMakeFiles/nxprd.dir/home/pi/build/nxppy/NxpRdLib_PublicRelease/comps/phpalI14443p4a/src/phpalI14443p4a.c.o
    [ 98%] Building C object CMakeFiles/nxprd.dir/home/pi/build/nxppy/NxpRdLib_PublicRelease/comps/phpalI14443p4a/src/Sw/phpalI14443p4a_Sw.c.o
    [100%] Building C object CMakeFiles/nxprd.dir/CMakeFiles/CompilerIdC/CMakeCCompilerId.c.o
    Linking C static library libnxprd.a
    [100%] Built target nxprd
    building ‘nxppy’ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -INxpRdLib_PublicRelease/types -INxpRdLib_PublicRelease/intfs -INxpRdLib_PublicRelease/comps/phpalSli15693/src/Sw -I/usr/include/python2.7 -c Mifare.c -o build/temp.linux-armv6l-2.7/Mifare.o -O1
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -INxpRdLib_PublicRelease/types -INxpRdLib_PublicRelease/intfs -INxpRdLib_PublicRelease/comps/phpalSli15693/src/Sw -I/usr/include/python2.7 -c nxppy.c -o build/temp.linux-armv6l-2.7/nxppy.o -O1
    gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv6l-2.7/Mifare.o build/temp.linux-armv6l-2.7/nxppy.o -o build/lib.linux-armv6l-2.7/nxppy.so NxpRdLib_PublicRelease/build/libnxprd.a

    Successfully installed nxppy
    Cleaning up…

    root@raspberrypi:/home/pi/nxpnfc# python nxpnfc.py
    2014-11-04 | 17:17:40 | Lancement du script
    2014-11-04 | 17:17:40 | Chargement du fichier de configuration.
    2014-11-04 | 17:17:40 | Attente lecture Mifare.
    Traceback (most recent call last):
    File « nxpnfc.py », line 74, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

  35. 35

    Nico

    J’ai désinstallé puis réinstallé nxppy.
    La réinstall semble bonne (aucune erreur affichée) mais j’ai toujours le mêmes problèmes avec le script python…

  36. 36

    Testeur

    Bonjour,

    J’ai tout installé correctement cependant je n’ai pas vraiment compris comment le tester. Télécharger une appli android pour write un tag sur le NXP ? J’ai testé avec plusieurs applications mais toujours en « attente lecture mifare » rien ne se passe. Je suis surement passé complètement à coté d’un truc mais je ne comprends pas comment le tester.

    Un petit coup de pouce ?

    Merci en tout cas

  37. 37

    Testeur

    Excusez-moi petite erreur dans le précédent message, je ne peux tout simplement pas lancer le process puisque quand je le lance directement par -> sudo python nxpnfc.py j’ai l’erreur :
    « Traceback (most recent call last) :
    File « nxpnfc.py », line 72, in
    except (SystemExit, KeyboardInterupt):
    NameError: name ‘KeyboardInterupt’ is not defined

    Merci de votre aide…

  38. 38

    Fouyou

    Merci pour cet excellent article. Il m’a bien aidé à me lancer dans cette aventure qui me tentait depuis longtemps. J’ai du procéder à pas mal de changements pour que tout fonctionne :
    – Le script présenté ici ne peut marcher en l’état avec plusieurs tags NFC différents,
    – Il faut faire attention car la version actuelle des outils n’est pas compatible avec les dernières mises à jour d’OS de la raspberry.
    J’ai bien galéré pour faire le point la dessus et faire marcher l’ensemble. Si cela intéresse, j’ai tout noté sur mon (tout petit) blog qui me sert de bloc-note pour mon implémentation domotique.
    Merci encore pour la bonne base qu’a constitué cet article !

  39. 39

    Emmanuel

    Bonjour ! Pouvez-vous ré-uploadé votre script svp ? Le lien semble cassé 🙁

    Merci par avance,

    Emmanuel.

  40. 40

    Sébastien Joly

    BOnjour Emmanuel,
    Non les fichiers sont toujours en ligne (commande wget).
    Je ne conseille pas la mise en oeuvre car la librairie nxppy n’est plus la mëme.

  41. 41

    Emmanuel

    Au temps pour moi !! Le fichier est bien accessible ! Effectivement nxppy semble avoir changé.

    J’ai cependant réussi a reprendre le script de Fouyou et cela semble fonctionner. Cependant je rencontre des soucis à l’écriture sur mes cartes vierges. Je ne pense pas avoir bien compris le principe malgré la lecture de la doc sur github…

    J’effectue des mifare.write_block sans succès… Des erreurs…

    As-tu pu creuser davantage le côté « Ecriture » ?

    Merci d’avance,

    Emmanuel.

  42. 42

    Mlab

    Bonjour,

    Super tuto qui nous à extrêmement bien avancé sur notre projet. Et-il par contre possible de lier un display LCD tout en utilisant la carte? Apparemment les bus SPI se marchent dessus.

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

2016 - Tous droits protégés - Domotique Info

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation de cookies ou autres traceurs pour vous proposer par exemple, des publicités ciblées adaptés à vos centres d’intérêts ou encore, réaliser des statistiques de visites. Plus informations

Les paramètres de cookies sur ce site sont configurés pour "autoriser les cookies" afin de vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site Web sans modifier vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer