LoRaE220 Unit

支持以下产品:

LoRaE220

Micropython TX Example:

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 Example:

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 Example:

tx_example.svg

UIFLOW2 RX Example:

rx_example.svg

lora_e220_tx_core2.m5f2

lora_e220_rx_dial.m5f2

Working Mode

工作模式

Mode (0-3)

M1

M0

功能描述

0:Transmission Mode

0

0

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

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

1:WOR Sending Mode

0

1

SEND: 无线发送数据打开。

RECEIVE: 无线接收数据打开。

NOTE: 支持空中唤醒。

2:WOR Receiving Mode

1

0

SEND: 无线发送数据关闭。

RECEIVE: 无线接收数据打开。

NOTE: 支持空中唤醒。

3:Configuration Mode

1

1

SEND: 无线发送数据关闭。

RECEIVE: 无线接收数据打开。

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.svg

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 时可用。工作模式请参考 工作模式表

设置模块的参数。

参数为:
  • 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: LBT Flag。

  • wor_cycle: WOR。

UIFLOW2:

setup.svg

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.svg

LoRaE220JPUnit.receive_none_block(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.svg receive_callback1.svg receive_callback2.svg

LoRaE220JPUnit.stopReceive() None

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

备注

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

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

UIFLOW2:

stopReceive.svg

LoRaE220JPUnit.stop_receive() None

在 2.0.2 版本加入: 这个方法将在 2.0.2 版本中添加。

备注

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

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

UIFLOW2:

stopReceive.svg

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

备注

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

使用阻塞方法接收数据。’ ‘ timeout ‘ ‘用于设置“接待超时,单位是Ms。”

UIFLOW2:

receive.svg

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

备注

当 LoRaE220JPUnit 的工作模式为 0 或者 1 时可用。工作模式请参考 工作模式表

目标地址和信道发送数据。

参数为:

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

  • target_channel 目标信道,有效的信道范围是 0 - 30。

  • send_data 需要发送的数据。

UIFLOW2:

send1.svg send2.svg send3.svg

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

速率

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 字节。使能后,模块会在每次接收到数据后,会在数据后面追加一个字节的 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

无线唤醒时间