RFID Unit
RFIDUnit 是一款用于 RFID 卡读写操作的硬件模块。它扩展了 MFRC522 驱动,支持卡片检测、读取、写入,以及选择和唤醒 RFID 卡等高级功能。
支持以下产品:
MicroPython 应用示例
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import * 9from unit import RFIDUnit 10import time 11 12 13title0 = None 14i2c0 = None 15rfid_0 = None 16 17 18def setup(): 19 global title0, i2c0, rfid_0 20 21 M5.begin() 22 Widgets.fillScreen(0x222222) 23 title0 = Widgets.Title( 24 "RFIDUnit CoreS3 Example", 3, 0xFFFFFF, 0x0000FF, Widgets.FONTS.DejaVu18 25 ) 26 27 i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000) 28 rfid_0 = RFIDUnit(i2c0) 29 30 31def loop(): 32 global title0, i2c0, rfid_0 33 print(rfid_0.is_new_card_present()) 34 print(rfid_0.read_card_uid()) 35 print(rfid_0.read(1)) 36 time.sleep_ms(100) 37 38 39if __name__ == "__main__": 40 try: 41 setup() 42 while True: 43 loop() 44 except (Exception, KeyboardInterrupt) as e: 45 try: 46 from utility import print_error_msg 47 48 print_error_msg(e) 49 except ImportError: 50 print("please update to latest firmware")
UiFlow2 应用示例
class RFIDUnit
Constructors
Methods
- RFIDUnit.is_new_card_present()
检查是否存在新的 RFID 卡。
UIFLOW2

- RFIDUnit.read_card_uid()
如果 RFID 卡可用,则读取其 UID。
UIFLOW2

- RFIDUnit.read(block_addr)
从 RFID 卡中读取指定块。
- 参数:
block_addr – 用于读取数据的块地址。
UIFLOW2

- RFIDUnit.write(block_addr, buffer)
将数据写入 RFID 卡的指定块。
- 参数:
block_addr – 写入数据的块地址。
buffer – 要写入该块的数据缓冲区。
UIFLOW2

- RFIDUnit.close()
使 PICC 进入 Halt 状态,并停止加密通信会话。
UIFLOW2

- RFIDUnit.wakeup_all()
唤醒范围内的所有 RFID 卡。
- RFIDUnit.picc_select_card()
选择当前处于活动状态的 RFID 卡。


