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.
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
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 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 -
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.
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