Lesen und schreiben Sie NFC-Tags mit Python mit PaSoRi

Überblick

Wir werden zusammenfassen, wie kostengünstige NFC-Tags (NTAG) von Python auf Mac mit Sonys PaSoRi (RC-S380), einem über USB angeschlossenen NFC / Felica-Lesegerät / -Schreiber, gelesen und geschrieben werden. Grundsätzlich ist nfcpy ein Schuss.

Ich habe es nicht ausprobiert, aber es scheint, dass es auf die gleiche Weise mit Raspberry Pi verwendet werden kann. (Ergänzung) Selbst mit Raspbian war die Installationsprozedur mit nur sudo apt-get install python-pip und sudo pip install nfcpy in Ordnung. Um jedoch mit allgemeinen Rechten auf USB zugreifen zu können, wird die in der zweiten Hälfte von Verfahren zum Installieren von nfcpy auf Raspberry Pi - März 2016 Private Edition beschriebene Prozedur beschrieben. Wird benötigt.

Verfahren zum Einrichten der Umgebung

Annahme

Ich benutze Brew's Python 2.7. Sie sollten in der Lage sein, dies mit Python auf der Systemseite zu tun, aber es ist ein subtiler Punkt, was die Version von openssl ist. Wenn es also nicht funktioniert, versuchen Sie es bitte.

nfcpy Das Verfahren zum Bringen von nfcpy mit bzr wird oft eingeführt, aber mit pip ist es ein Schuss.

> brew install libusb
> pip install nfcpy

Wenn Sie süchtig nach openssl sind

Es wäre schön, wenn ich import nfc mit REPL von Python eingeben und problemlos laden könnte, aber es gibt Fälle, in denen das Laden von libcrypto in openssl fehlschlägt.

>>> import nfc
(Unterlassung)
AttributeError: dlsym(0x7fbc82c404a0, EC_KEY_set_public_key_affine_coordinates): symbol not found

Als Gegenmaßnahme gibt es viele Artikel, die besagen, dass es in Ordnung ist, wenn Sie eine neue OpenSL mit Brew installieren und verknüpfen.

> brew link openssl --force
Warning: Refusing to link: openssl

Ich kann nicht verlinken.

Die neueste libcrypto.1.0.0.dylib wird unter / usr / local / opt / openssl / lib installiert. Wenn Sie dies also als Ladepfad der Bibliothek für dynamische Links angeben, funktioniert dies vorerst. Was soll ich mit der richtigen Lösung machen?

export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$DYLD_LIBRARY_PATH

Lesen und Schreiben von NFC-Tags

Offizielle Probe von nfcpy

Lesen Sie die offiziellen Erste Schritte oder [Beispiele](https://github.com/nfcpy/nfcpy/ Sie können normalerweise sehen, wie Sie es verwenden, indem Sie sich die Beispiele in Baum / Master / Beispiele ansehen. Das Beispiel allein kann auch als Befehl verwendet werden (Verwendung)

Beispielsweise können Sie die NFC-Tag-Informationen mit dem folgenden Befehl anzeigen.

> python tagtool.py show

So schreiben Sie die Daten zum Öffnen eines YouTube-Videos für NTAG:

> python ndeftool.py make smartposter -t PPAP https://youtu.be/0E00Zuayv9Q | python tagtool.py load -

Schreiben Sie selbst

Wenn Sie die erforderliche Verarbeitung mit nfcpy selbst schreiben möchten, lautet der Code wie folgt.

import nfc
import nfc.ndef

def startup(targets):
    print "waiting for new NFC tags..."
    return targets


def connected(tag):
    if not tag.ndef or not tag.ndef.is_writeable:
        print("not a writeable nfc tag")
        return False
    print("old message:")
    print(tag.ndef.message.pretty())

    smartposter = nfc.ndef.SmartPosterRecord("https://youtu.be/0E00Zuayv9Q")
    smartposter.title = "PPAP"
    new_message = nfc.ndef.Message(smartposter)

    if len(str(new_message)) > tag.ndef.capacity:
        print "too long message"
        return True

    if tag.ndef.message == new_message:
        print "already same record"
        return True

    tag.ndef.message = new_message
    print("new message:")
    print(tag.ndef.message.pretty())

    return True


def released(tag):
    print("released:")
    if tag.ndef:
        print(tag.ndef.message.pretty())
    

clf = nfc.ContactlessFrontend('usb')
print(clf)
if clf:
    while clf.connect(rdwr={
        'on-startup': startup,
        'on-connect': connected,
        'on-release': released,
    }):
        pass

Schreiben Sie einfach das NFC-Tag neu, um ein YouTube-Video zu öffnen, bis Sie mit Strg-C aufhören.

Referenz-URL

Umgang mit NFC-Tags mit mehreren Systemcodes in nfcpy Verfahren zur Installation von nfcpy auf der Raspberry Pi-Private-Version im März 2016

Recommended Posts

Lesen und schreiben Sie NFC-Tags mit Python mit PaSoRi
Lesen und schreiben Sie JSON-Dateien mit Python
Lesen und Schreiben von Gleitkommazahlen mit einfacher Genauigkeit in Python
Erstellen und lesen Sie Messagepacks in Python
Schreiben Sie die O_SYNC-Datei in C und Python
Schreiben Sie mit f2py ein Python-Modul in fortran
[Python3] Lesen und Schreiben mit datetime isoformat mit json
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Lesen Sie DXF mit Python
Schreiben Sie Python in MySQL
Durchsuchen von Pixiv-Tags und Speichern von Illustrationen mit Python
Schreiben Sie Tests in Python, um die Abdeckung zu profilieren und zu überprüfen
CSV-Datei lesen und schreiben
Schreiben Sie Pandec-Filter in Python
Schreiben Sie Python in Rstudio (reticulate)
Lesen Sie Eulers Formel in Python
Dateien lesen und schreiben
Lesen Sie XML mit dem in Python angegebenen Namespace
Lesen Sie Outlook-E-Mails mit Python
Stapel und Warteschlange in Python
Dateien schreiben und lesen
Unittest und CI in Python
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Lesen Sie die Fortran-Ausgabe mit Python
Versuchen Sie es mit GUI, PyQt in Python
Tipps zum Codieren kurz und einfach in Python zu lesen
Sammeln Sie Tweets mit tweepy in Python und speichern Sie sie in MongoDB
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
[Python] Verwenden Sie diese Option, um WAV-Dateien zu lesen und zu schreiben. [WAVIO]
Schreiben Sie eine Dichotomie in Python
GUI-Programmierung in Python mit Appjar
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Lesen Sie die Protokollpufferdaten mit Python3
Schreiben Sie ein JSON-Schema mit Python DSL
Sortieralgorithmus und Implementierung in Python
Authentifizierung mit Tweepy-User-Authentifizierung und Anwendungsauthentifizierung (Python)
Schreiben Sie mit dem ETE Toolkit verschiedene Formen phylogenetischer Bäume in Python
Schreiben Sie einen HTTP / 2-Server in Python
Schreiben Sie die AWS Lambda-Funktion in Python
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Lesen und verwenden Sie Python-Dateien aus Python
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Versuchen Sie es mit LevelDB mit Python (plyvel)
Lesen Sie PNG-Chunks in Python (Klassenausgabe)
Lesen Sie die Big-Endian-Binärdatei in Python und konvertieren Sie sie in ndarray
Überprüfen und verschieben Sie das Verzeichnis in Python
Reihenfolge in PyYAML beibehalten und lesen
Verwendung globaler Variablen in Python-Funktionen
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Schreiben Sie Selentestcode in Python
Erstellen und testen Sie mit Docker in wenigen Minuten eine OpenCV- und Python-Umgebung
Hashing von Daten in R und Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python