UHF-RFID Unit

支持以下产品:

UHFRFIDUnit

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 unit import UHFRFIDUnit
 9
10
11nbiot2_0 = None
12uhfrfid_0 = None
13
14
15epc = None
16
17
18def setup():
19    global nbiot2_0, uhfrfid_0, epc
20
21    M5.begin()
22    Widgets.fillScreen(0x222222)
23
24    uhfrfid_0 = UHFRFIDUnit(2, port=(18, 17))
25    epc = uhfrfid_0.inventory()
26    print(epc)
27    uhfrfid_0.select(UHFRFIDUnit.S0, 0b000, UHFRFIDUnit.RFU, 0x20, False, epc)
28    uhfrfid_0.write_mem_bank(UHFRFIDUnit.RFU, 0x00, "12345678", "00000000")
29    print(uhfrfid_0.read_mem_bank(UHFRFIDUnit.RFU, 0x00, 4, "00000000"))
30
31
32def loop():
33    global nbiot2_0, uhfrfid_0, epc
34    M5.update()
35
36
37if __name__ == "__main__":
38    try:
39        setup()
40        while True:
41            loop()
42    except (Exception, KeyboardInterrupt) as e:
43        try:
44            from utility import print_error_msg
45
46            print_error_msg(e)
47        except ImportError:
48            print("please update to latest firmware")

UiFlow2 应用示例

example.png

cores3_uhf_rfid_example.m5f2

class UHFRFIDUnit

Constructors

class UHFRFIDUnit(id: Literal[0, 1, 2], port: list | tuple, verbose: bool = False)

创建一个 UHF-RFID 单元。

参数:
  • id (int) – 单元的 ID。

  • port (list|tuple) – 设备连接到的端口。

  • verbose (bool) – 打印日志信息。默认为 True。

UIFLOW2:

init.png

Methods

解调器

UHFRFIDUnit.get_demodulator_mixer() int

获取解调器混频器数值。

Return int:

解调器混频器值。

Options:
  • 0x00:0 dB

  • 0x01:3 dB

  • 0x02:6 dB

  • 0x03:9 dB

  • 0x04:12 dB

  • 0x05:15 dB

  • 0x06:16 dB

UIFLOW2:

get_demodulator_mixer.png

UHFRFIDUnit.set_demodulator_mixer(value: int) bool

设置解调器混频器值。

参数:

value (int) – 解调器混频器值。

Options:
  • 0x00:0 dB

  • 0x01:3 dB

  • 0x02:6 dB

  • 0x03:9 dB

  • 0x04:12 dB

  • 0x05:15 dB

  • 0x06:16 dB

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_demodulator_mixer.png

UHFRFIDUnit.get_demodulator_amplifier() int

获取解调放大器值。

Return int:

解调放大器数值。

Options:
  • 0x00:12 dB

  • 0x01:18 dB

  • 0x02:21 dB

  • 0x03:24 dB

  • 0x04:27 dB

  • 0x05:30 dB

  • 0x06:36 dB

  • 0x07:40 dB

UIFLOW2:

get_demodulator_amplifier.png

UHFRFIDUnit.set_demodulator_amplifier(value: int) bool

设置解调器放大器值。

参数:

value (int) – 解调放大器数值。

Options:
  • 0x00:12 dB

  • 0x01:18 dB

  • 0x02:21 dB

  • 0x03:24 dB

  • 0x04:27 dB

  • 0x05:30 dB

  • 0x06:36 dB

  • 0x07:40 dB

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_demodulator_amplifier.png

UHFRFIDUnit.get_demodulator_threshold() int

获取解调器阈值。

Return int:

解调器阈值。范围为 0x01B0 到 0xFFFF。

UIFLOW2:

get_demodulator_threshold.png

UHFRFIDUnit.set_demodulator_threshold(value: int) bool

设置解调器阈值。

参数:

value (int) – 解调器阈值。范围为 0x01B0 到 0xFFFF。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_demodulator_threshold.png

Working

UHFRFIDUnit.get_working_region() int

获取工作区域。

Return int:

工作区域。

Options:
  • UHFRFIDUnit.CN_900MHZ:中国 900MHz

  • 中国 800MHz

  • USA

  • EUR

  • UHFRFIDUnit.KR:KR

UIFLOW2:

get_working_region.png

UHFRFIDUnit.set_working_region(region: int) bool

设置工作区域。

参数:

region (int) – 工作区域。

Options:
  • UHFRFIDUnit.CN_900MHZ:中国 900MHz

  • 中国 800MHz

  • USA

  • EUR

  • UHFRFIDUnit.KR:KR

Return int:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_working_region.png

UHFRFIDUnit.get_working_channel() int

获取工作通道。

Return int:

工作通道。范围为 0 到 19。

UIFLOW2:

get_working_channel.png

UHFRFIDUnit.set_working_channel(channel: int) bool

设置工作通道。

参数:

channel (int) – 工作通道。范围为 0 到 19。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_working_channel.png

UHFRFIDUnit.insert_working_channel(channel: int) bool

请提供需要翻译的 PO 片段(包含 msgid/msgstr,以及可能的 #, fuzzy 标记)。我会按规则输出对应的 msgstr 中文文本。

参数:

channel (int) – 工作通道。范围为 0 到 19。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

insert_working_channel.png

UHFRFIDUnit.clear_working_channel() bool

清除工作通道。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

clear_working_channel.png

UHFRFIDUnit.set_automatic_hopping(enable: bool) bool

设置自动跳频。

参数:

enable (bool) – 启用自动跳频。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_automatic_hopping.png

射频功率

UHFRFIDUnit.get_channel_rssi(channel: int) int

获取通道 RSSI 值。

参数:

channel (int) – 工作通道。范围为 0 到 19。

Return int:

通道 RSSI 值,单位为 dBm。

UIFLOW2:

get_channel_rssi.png

UHFRFIDUnit.get_blocking_signal_strength(channel: int) int

获取阻塞式信号强度。

参数:

channel (int) – 工作通道。范围为 0 到 19。

Return int:

阻塞信号强度,单位为 dBm。

UIFLOW2:

get_blocking_signal_strength.png

UHFRFIDUnit.get_tx_power() int

获取 TX 功率。

Return int:

发射功率。单位为 dBm。范围为 -7 dBm 到 30 dBm。

UIFLOW2:

get_tx_power.png

UHFRFIDUnit.set_tx_power(power: int) bool

设置 TX 功率。

参数:

power (int) – 发射功率。范围为 -7 dBm 到 30 dBm。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_tx_power.png

UHFRFIDUnit.set_continuous_wave(enable: bool) bool

设置连续波。

参数:

enable (bool) – 启用连续波。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_continuous_wave.png

模块信息与设置

UHFRFIDUnit.get_manufacturer_id() str

获取制造商 ID。

Return str:

制造商 ID。

UIFLOW2:

get_manufacturer_id.png

UHFRFIDUnit.get_hardware_version() str

获取硬件版本。

Return str:

硬件版本。

UIFLOW2:

get_hardware_version.png

UHFRFIDUnit.get_firmware_version() str

获取固件版本。

Return str:

固件版本。

UIFLOW2:

get_firmware_version.png

UHFRFIDUnit.sleep() bool

设置休眠。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

sleep.png

UHFRFIDUnit.wake() bool

设置唤醒。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

wake.png

UHFRFIDUnit.set_automatic_sleep_time(min: int) bool

设置自动休眠时间。

参数:

min (int) – 自动休眠时间(单位:分钟)。范围为 1 到 30。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_automatic_sleep_time.png

UHFRFIDUnit.disable_automatic_sleep() bool

禁用自动休眠。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

disable_automatic_sleep.png

读取和写入标签

UHFRFIDUnit.inventory() str

获取 tag 的 epc 码。如果未找到 tag,则返回空字符串。

返回:

标签 EPC 码的十六进制字符串。

UIFLOW2:

inventory.png

UHFRFIDUnit.set_select_mode(mode: int) bool

设置选择模式。

参数:

mode (int) – 选择模式。

Options:
  • 0x00:需要选择命令

  • 0x01:无需选择命令

  • 0x02:部分操作需要选择命令

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_select_mode.png

UHFRFIDUnit.select(target: int, action: int, membank: int, pointer: int, truncate: bool, mask: str) bool

设置 select 标签。

参数:
  • target (int) – target.

  • action (int) – action.

  • membank (int) – memory bank

  • pointer (int) – pointer.

  • truncate (bool) – truncate。

  • mask (str) – EPC 码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

select.png

UHFRFIDUnit.set_access_password(old_password: str, new_password: str) None

设置访问密码。

参数:
  • old_password (str) – 旧访问密码,十六进制字符串。

  • new_password (str) – 新的访问密码。十六进制字符串。

UIFLOW2:

set_access_password.png

UHFRFIDUnit.set_kill_password(password) None

设置 kill 密码。

参数:

password (str) – 击杀密码:十六进制字符串。

UIFLOW2:

set_kill_password.png

UHFRFIDUnit.kill(password: str) bool

杀死标签。

参数:

password (str) – 击杀密码:十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

kill.png

UHFRFIDUnit.set_query_param(dr=0b0, m=0b00, tr_ext=0b1, sel=0b00, session=0b00, target=0b0, q=0b0100) bool

设置查询参数。

参数:
  • dr (int) – dr. 固定为 0。

  • m (int) –

    1. 已修正为 0。

  • tr_ext (int) – tr_ext. 修复为 1。

  • sel (int) – sel,范围是 0 到 3。

  • session (int) – 会话。范围是从 0 到 3。

  • target (int) – 目标。范围是 0 到 1。

  • q (int) – 范围是 0 到 8。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_query_param.png

UHFRFIDUnit.lock_mem_bank(kill_lock: int = 0b00, access_lock: int = 0b00, epc_lock: int = 0b00, tid_lock: int = 0b00, user_lock: int = 0b00, access: str = '00000000') bool

锁定内存库。

参数:
  • kill_lock (int) – 关闭锁定。选项: - UHFRFIDUnit.OPEN:打开 - UHFRFIDUnit.LOCK:锁定 - UHFRFIDUnit.PERMA_OPEN:永久打开 - UHFRFIDUnit.PERMA_LOCK:永久锁定

  • access_lock (int) – 访问锁。选项: - UHFRFIDUnit.OPEN:打开 - UHFRFIDUnit.LOCK:锁定 - UHFRFIDUnit.PERMA_OPEN:永久打开 - UHFRFIDUnit.PERMA_LOCK:永久锁定

  • epc_lock (int) – epc 锁定。选项: - UHFRFIDUnit.OPEN: 开放 - UHFRFIDUnit.LOCK: 锁定 - UHFRFIDUnit.PERMA_OPEN: 永久开放 - UHFRFIDUnit.PERMA_LOCK: 永久锁定

  • tid_lock (int) – tid 锁定。选项: - UHFRFIDUnit.OPEN:开启 - UHFRFIDUnit.LOCK:锁定 - UHFRFIDUnit.PERMA_OPEN:永久开启 - UHFRFIDUnit.PERMA_LOCK:永久锁定

  • user_lock (int) – 用户锁定。选项: - UHFRFIDUnit.OPEN:打开 - UHFRFIDUnit.LOCK:锁定 - UHFRFIDUnit.PERMA_OPEN:永久打开 - UHFRFIDUnit.PERMA_LOCK:永久锁定

  • access (str) – 访问密码,十六进制字符串。

UIFLOW2:

lock_mem_bank.png

UHFRFIDUnit.read_mem_bank(bank: int, offset: int, length: int, access_password: str = '00000000') str

读取存储器组。

参数:
  • bank (int) – 存储区。选项: - UHFRFIDUnit.RFU:保留 - UHFRFIDUnit.EPC:epc - UHFRFIDUnit.TID:tid - UHFRFIDUnit.USER:user

  • offset (int) – offset。

  • length (int) – length.

  • access_password (str) – 访问密码,十六进制字符串。

Return str:

数据。十六进制字符串。

UIFLOW2:

read_mem_bank.png

UHFRFIDUnit.write_mem_bank(bank: int, offset: int, data: str, access_password: str = '00000000')

写入内存库。

参数:
  • bank (int) – 存储区。选项: - UHFRFIDUnit.RFU:保留 - UHFRFIDUnit.EPC:epc - UHFRFIDUnit.TID:tid - UHFRFIDUnit.USER:user

  • offset (int) – offset。

  • data (str) – 数据。十六进制字符串。

  • access_password (str) – 访问密码,十六进制字符串。

UIFLOW2:

write_mem_bank.png

Impinj Monza

UHFRFIDUnit.get_impinj_monza_qt_sr(persistence, password: str = '00000000') bool

获取 Impinj Monza QT_SR。

参数:
  • persistence (int) – 持久性:0x00 为易失性存储器,0x01 为非易失性存储器。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

QT_SR 状态。

UIFLOW2:

get_impinj_monza_qt_sr.png

UHFRFIDUnit.set_impinj_monza_qt_sr(qt_sr: bool, persistence: int, password: str = '00000000') bool

设置 Impinj Monza QT_SR。

参数:
  • qt_sr (bool) – QT_SR 状态。

  • persistence (int) – 持久性:0x00 为易失性存储器,0x01 为非易失性存储器。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_impinj_monza_qt_sr.png

UHFRFIDUnit.get_impinj_monza_qt_mem(persistence, password: str = '00000000') bool

设置 Impinj Monza QT_MEM。

参数:
  • persistence (int) – 持久性:0x00 为易失性存储器,0x01 为非易失性存储器。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

QT_MEM 状态。

UIFLOW2:

get_impinj_monza_qt_mem.png

UHFRFIDUnit.set_impinj_monza_qt_mem(qt_mem: bool, persistence: int, password: str = '00000000') bool

设置 Impinj Monza QT_MEM。

参数:
  • qt_mem (bool) – QT_MEM 状态。

  • persistence (int) – 持久性:0x00 为易失性存储器,0x01 为非易失性存储器。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_impinj_monza_qt_mem.png

NXP

UHFRFIDUnit.nxp_eas_alarm() str

获取 NXP EAS 报警代码。

Return str:

NXP EAS 报警代码(十六进制字符串)。

UIFLOW2:

nxp_eas_alarm.png

UHFRFIDUnit.get_nxp_config_word(password: str = '00000000') int

获取 NXP 配置字。

参数:

password (str) – 访问密码,十六进制字符串。

Return int:

NXP 配置字。

UIFLOW2:

get_nxp_config_word.png

UHFRFIDUnit.set_nxp_config_word(config_word: int, password: str = '00000000') bool

设置 NXP 配置字。

参数:
  • config_word (int) – NXP 配置字。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

set_nxp_config_word.png

UHFRFIDUnit.nxp_read_protect(set: int, password: str = '00000000') bool

设置 NXP 读取保护。

参数:
  • set (int) – 设置读保护。0x00 表示设置读保护,0x01 表示解除读保护。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

nxp_read_protect.png

nxp_read_protect1.png

UHFRFIDUnit.nxp_change_eas(set: int, password: str = '00000000') bool

更改 NXP EAS。

参数:
  • set (int) – 设置 EAS。0x00 为设置 EAS,0x01 为重置 EAS。

  • password (str) – 访问密码,十六进制字符串。

Return bool:

如果成功则为 True,如果失败则为 False。

UIFLOW2:

nxp_change_eas.png

nxp_change_eas1.png