Local-Voice/simple_nfc_reader.py
2025-09-22 00:40:12 +08:00

23 lines
634 B
Python

#!/usr/bin/env python3
import subprocess
import os
import re
import sys
def read_uid():
os.environ['LIBNFC_DRIVER'] = 'pn532_i2c'
os.environ['LIBNFC_DEVICE'] = 'pn532_i2c:/dev/i2c-1'
try:
result = subprocess.run(['nfc-list'], capture_output=True, text=True, timeout=5)
if result.returncode == 0:
match = re.search(r'UID\s*\(NFCID1\):\s*([0-9A-Fa-f\s]+)', result.stdout)
if match:
return match.group(1).strip().replace(' ', '').upper()
except:
pass
return None
if __name__ == "__main__":
uid = read_uid()
print(uid if uid else "000000")