LoRaE220-433 Unit

支持以下产品:

LoRaE220-433

MicroPython TX 应用示例:

import os, sys, io
import M5
from M5 import *
from unit import LoRaE220433Unit
import time

lorae220433_0 = LoRaE220433Unit(1, (18, 17))

while True:
    lorae220433_0.send(0x9999, 0, 'Hello M5')
    time.sleep(1)

MicroPython RX 应用示例:

import os, sys, io
import M5
from M5 import *
from unit import LoRaE220433Unit

def lorae220433_0_receive_event(received_data, rssi):
    print(received_data.decode())
    print(rssi)

lorae220433_0 = LoRaE220433Unit(1, (13, 14))
lorae220433_0.receive_none_block(lorae220433_0_receive_event)

UiFlow2 代码块:

tx_example.png

UIFLOW2 RX 应用示例:

rx_example.png

lora-e220-433-tx.m5f2

lora-e220-433-rx.m5f2

工作模式

工作模式表格

模式(0-3)

M1

M0

功能描述

0:传输模式

0

0

SEND:用户可以通过串口输入数据,模块将启动无线传输。

RECEIVE:模块的无线接收功能已启用,接收到无线数据后,将通过串口的 TXD 引脚输出。

1:WOR 发送模式

0

1

发送:无线发送数据开启

接收:无线接收数据开启

注意:支持 Air Wake Up

2:WOR 接收模式

1

0

SEND:无线发送数据(向外发送)

接收:无线接收数据开启

注意:支持 Air Wake Up

3:配置模式

1

1

SEND:无线发送数据(向外发送)

无线接收数据关闭

配置:用户可以访问寄存器以配置模块状态

working mode.jpg

class LoRaE220433Unit

Constructors

class LoRaE220433Unit(id, port)

创建一个 LoRaE220433Unit 对象。

参数为:
  • port_id UART 端口 ID。

  • port 为 UART 引脚元组,包含:(tx_pin, rx_pin)

UIFLOW2:

init.png

Methods

LoRaE220433Unit.setup(own_address=0, own_channel=0, encryption_key=0x0000, air_data_rate=LoRaE220433Unit.AIRRATE_2_4K, subpacket_size=LoRaE220433Unit.SUBPACKET_200_BYTE, rssi_ambient_noise_flag=LoRaE220433Unit.RSSI_AMBIENT_NOISE_DISABLE, transmitting_power=LoRaE220433Unit.TX_POWER_22dBm, rssi_byte_flag=LoRaE220433Unit.RSSI_BYTE_DISABLE, transmission_method_type=LoRaE220433Unit.UART_TT_MODE, wor_cycle=LoRaE220433Unit.WOR_2000MS) bool

备注

仅当 LoRaE220433Unit 工作模式为 3 时可用。有关工作模式,请参阅 working mode table

设置模块参数。

参数为:
  • own_address:本地地址。

  • own_channel:本地通道。

  • encryption_key:加密密钥。

  • air_data_rate:数据传输速率。

  • subpacket_size:最大数据包长度。

  • rssi_ambient_noise_flag:RSSI 环境噪声。

  • transmitting_power:发射功率。

  • rssi_byte_flag:输出 RSSI 强度字节。

  • transmission_method_type:传输模式。

  • lbt_flag:该参数已不再使用。

  • wor_cycle:无线唤醒时间。

UIFLOW2:

setup.png setup_advance.png

LoRaE220433Unit.available_data() int

备注

当 LoRaE220433Unit 的工作模式为 0 / 1 / 2 时可用。有关工作模式,请参阅 working mode table

返回一个整数,用于统计无需阻塞即可读取的字节数。如果没有可用字节则返回 0,如果有字节则返回一个正数。

UIFLOW2:

available_data.png

LoRaE220433Unit.receive(timeout=1000) tuple[bytes, int]

备注

当 LoRaE220433Unit 的工作模式为 0 / 1 / 2 时可用。有关工作模式,请参阅 working mode table

使用阻塞方式接收数据。timeout 用于设置接收超时时间,单位为 ms。

UIFLOW2:

receive.png

LoRaE220433Unit.receive_none_block(receive_callback: function) None

备注

当 LoRaE220433Unit 的工作模式为 0 / 1 / 2 时可用。有关工作模式,请参阅 working mode table

使用非阻塞模式接收数据。receive_callback 传入的回调函数将在接收到数据时被调用。

receive_callback 的格式为:

def receive_callback(data: bytes, rssi: int)

UIFLOW2:

receive_none_block.png receive_callback1.png receive_callback2.png

LoRaE220433Unit.stop_receive() None

备注

当 LoRaE220433Unit 的工作模式为 0 / 1 / 2 时可用。有关工作模式,请参阅 working mode table

在非阻塞模式下停止接收数据。

UIFLOW2:

stop_receive.png

LoRaE220433Unit.send(target_address: int, target_channel: int, send_data: bytes | str) bool

备注

仅在 LoRaE220433Unit 的工作模式为 0 或 1 时可用。工作模式请参考 工作模式表

将数据发送到指定的目标地址和通道。

参数为:

  • target_address 目标地址,地址范围为 0x0000 - 0xFFFF,其中 0xFFFF 为广播地址。

  • target_channel 目标通道,有效通道范围为 0 - 30。

  • send_data 需要发送的数据。

UIFLOW2:

send1.png send2.png send3.png

Constants

LoRaE220433Unit.AIRRATE_2_4K: int
LoRaE220433Unit.AIRRATE_4_8K: int
LoRaE220433Unit.AIRRATE_9_6K: int
LoRaE220433Unit.AIRRATE_19_2K: int
LoRaE220433Unit.AIRRATE_38_4K: int
LoRaE220433Unit.AIRRATE_62_5K: int

rate。

LoRaE220433Unit.SUBPACKET_200_BYTE: int
LoRaE220433Unit.SUBPACKET_128_BYTE: int
LoRaE220433Unit.SUBPACKET_64_BYTE: int
LoRaE220433Unit.SUBPACKET_32_BYTE: int

最大数据包长度。

LoRaE220433Unit.RSSI_AMBIENT_NOISE_ENABLE: int
LoRaE220433Unit.RSSI_AMBIENT_NOISE_DISABLE: int

RSSI 环境噪声。

LoRaE220433Unit.TX_POWER_22dBm: int
LoRaE220433Unit.TX_POWER_17dBm: int
LoRaE220433Unit.TX_POWER_13dBm: int
LoRaE220433Unit.TX_POWER_10dBm: int

发射功率。

LoRaE220433Unit.RSSI_BYTE_ENABLE: int
LoRaE220433Unit.RSSI_BYTE_DISABLE: int

RSSI 字节。启用后,模块每次接收到数据时,都会在数据后附加 1 个 RSSI 值字节。

LoRaE220433Unit.UART_TT_MODE: int
LoRaE220433Unit.UART_P2P_MODE: int

传输模式。

LoRaE220433Unit.WOR_500MS: int
LoRaE220433Unit.WOR_1000MS: int
LoRaE220433Unit.WOR_1500MS: int
LoRaE220433Unit.WOR_2000MS: int
LoRaE220433Unit.WOR_2500MS: int
LoRaE220433Unit.WOR_3000MS: int
LoRaE220433Unit.WOR_3500MS: int
LoRaE220433Unit.WOR_4000MS: int

无线唤醒时间。