LoRaE220 Unit

支持以下产品:

LoRaE220

MicroPython TX 示例:

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

lorae220_0 = LoRaE220JPUnit((33, 32))

while True:
    lorae220_0.send(0xFFFF, 0, bytes([0x68, 0x65, 0x6C, 0x6C, 0x6F]))
    time.sleep(1)

MicroPython RX 应用示例:

import os, sys, io
from unit import LoRaE220JPUnit

def lorae220_0_receive_event(received_data, rssi):
    print(received_data)

lorae220_0 = LoRaE220JPUnit((15, 13))
lorae220_0.receiveNoneBlock(lorae220_0_receive_event)

UiFlow2 TX 应用示例:

tx_example.png

UIFLOW2 RX 应用示例:

rx_example.png

lora_e220_tx_core2.m5f2

lora_e220_rx_dial.m5f2

工作模式

工作模式表

模式(0-3)

M1

M0

功能描述

0:传输模式

0

0

发送:用户可以通过串口输入数据,模块将开始无线传输。

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

1:WOR 发送模式

0

1

SEND:无线发送数据开启

RECEIVE:无线接收数据开启

注意:支持 Air Wake Up

2:WOR 接收模式

1

0

SEND:无线发送数据输出

RECEIVE:无线接收数据开启

注意:支持 Air Wake Up

3:配置模式

1

1

SEND:无线发送数据输出

接收:关闭无线接收数据

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

working mode.jpg

class LoRaE220JPUnit

Constructors

class LoRaE220JPUnit(port, port_id=1)

创建一个 LoRaE220JPUnit 对象。

参数为:
  • port uart 引脚元组,包含:(tx_pin, rx_pin)

  • port_id UART 端口 ID。

UIFLOW2:

init.png

Methods

LoRaE220JPUnit.setup(own_address=0, own_channel=0, encryption_key=0x2333, air_data_rate=LoRaE220JPUnit.BW500K_SF5, subpacket_size=LoRaE220JPUnit.SUBPACKET_200_BYTE, rssi_ambient_noise_flag=LoRaE220JPUnit.RSSI_AMBIENT_NOISE_DISABLE, transmitting_power=LoRaE220JPUnit.TX_POWER_13dBm, rssi_byte_flag=LoRaE220JPUnit.RSSI_BYTE_DISABLE, transmission_method_type=LoRaE220JPUnit.UART_TT_MODE, wor_cycle=LoRaE220JPUnit.WOR_2000MS) bool

备注

当 LoRaE220JPUnit 工作模式为 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

LoRaE220JPUnit.receiveNoneBlock(receive_callback: function) None

自 2.0.2 版本弃用: 该方法已弃用,并将在 2.0.2 版本中移除。

备注

当 LoRaE220JPUnit 的工作模式为 0 / 1 / 2 时可用。有关工作模式请参考 工作模式表

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

receive_callback 的格式为::

def receive_callback(data: bytes, rssi: int)

UIFLOW2:

receiveNoneBlock.png

LoRaE220JPUnit.receive_none_block(receive_callback: function) None

Added in version 2.0.2: 该方法将在 2.0.2 版本中添加。

备注

当 LoRaE220JPUnit 的工作模式为 0 / 1 / 2 时可用。有关工作模式请参考 工作模式表

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

receive_callback 的格式为::

def receive_callback(data: bytes, rssi: int)

UIFLOW2:

receiveNoneBlock.png receive_callback1.png receive_callback2.png

LoRaE220JPUnit.stopReceive() None

自 2.0.2 版本弃用: 该方法已弃用,并将在 2.0.2 版本中移除。

备注

当 LoRaE220JPUnit 的工作模式为 0 / 1 / 2 时可用。有关工作模式请参考 工作模式表

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

UIFLOW2:

stopReceive.png

LoRaE220JPUnit.stop_receive() None

Added in version 2.0.2: 该方法将在 2.0.2 版本中添加。

备注

当 LoRaE220JPUnit 的工作模式为 0 / 1 / 2 时可用。有关工作模式请参考 工作模式表

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

UIFLOW2:

stopReceive.png

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

备注

当 LoRaE220JPUnit 的工作模式为 0 / 1 / 2 时可用。有关工作模式请参考 工作模式表

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

UIFLOW2:

receive.png

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

备注

仅当 LoRaE220JPUnit 的工作模式为 0 或 1 时可用。有关工作模式,请参考 working mode table

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

参数为:

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

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

  • 需要发送的 send_data 数据。

UIFLOW2:

send1.png send2.png send3.png

Constants

LoRaE220JPUnit.BAUD_1200: int
LoRaE220JPUnit.BAUD_2400: int
LoRaE220JPUnit.BAUD_4800: int
LoRaE220JPUnit.BAUD_9600: int
LoRaE220JPUnit.BAUD_19200: int
LoRaE220JPUnit.BAUD_38400: int
LoRaE220JPUnit.BAUD_57600: int
LoRaE220JPUnit.BAUD_115200: int

波特率。

LoRaE220JPUnit.BW125K_SF5: int
LoRaE220JPUnit.BW125K_SF6: int
LoRaE220JPUnit.BW125K_SF7: int
LoRaE220JPUnit.BW125K_SF8: int
LoRaE220JPUnit.BW125K_SF9: int
LoRaE220JPUnit.BW250K_SF5: int
LoRaE220JPUnit.BW250K_SF6: int
LoRaE220JPUnit.BW250K_SF7: int
LoRaE220JPUnit.BW250K_SF8: int
LoRaE220JPUnit.BW250K_SF9: int
LoRaE220JPUnit.BW250K_SF10: int
LoRaE220JPUnit.BW500K_SF5: int
LoRaE220JPUnit.BW500K_SF6: int
LoRaE220JPUnit.BW500K_SF7: int
LoRaE220JPUnit.BW500K_SF8: int
LoRaE220JPUnit.BW500K_SF9: int
LoRaE220JPUnit.BW500K_SF10: int
LoRaE220JPUnit.BW500K_SF11: int

rate.

LoRaE220JPUnit.SUBPACKET_200_BYTE: int
LoRaE220JPUnit.SUBPACKET_128_BYTE: int
LoRaE220JPUnit.SUBPACKET_64_BYTE: int
LoRaE220JPUnit.SUBPACKET_32_BYTE: int

最大数据包长度。

LoRaE220JPUnit.RSSI_AMBIENT_NOISE_ENABLE: int
LoRaE220JPUnit.RSSI_AMBIENT_NOISE_DISABLE: int

RSSI 环境噪声。

LoRaE220JPUnit.TX_POWER_13dBm: int
LoRaE220JPUnit.TX_POWER_12dBm: int
LoRaE220JPUnit.TX_POWER_7dBm: int
LoRaE220JPUnit.TX_POWER_0dBm: int

发射功率。

LoRaE220JPUnit.RSSI_BYTE_ENABLE: int
LoRaE220JPUnit.RSSI_BYTE_DISABLE: int

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

LoRaE220JPUnit.UART_TT_MODE: int
LoRaE220JPUnit.UART_P2P_MODE: int

传输模式。

LoRaE220JPUnit.WOR_500MS: int
LoRaE220JPUnit.WOR_1000MS: int
LoRaE220JPUnit.WOR_1500MS: int
LoRaE220JPUnit.WOR_2000MS: int
LoRaE220JPUnit.WOR_2500MS: int
LoRaE220JPUnit.WOR_3000MS: int

无线唤醒时间。