

在这里,构造函数的示例,您必须传递UART接口,并且(如果需要,但已提及)Aux PIN,M0和M1。
要安装库执行以下命令:
pip install ebyte-lora-e22 from lora_e22 import LoRaE22
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE22 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e22 import LoRaE22 , print_configuration
from lora_e22_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )结果
# ----------------------------------------
# HEAD : 0xc1 0x0 0x9
#
# AddH : 0x0
# AddL : 0x0
#
# Chan : 23 -> 433
#
# SpeedParityBit : 0b0 -> 8N1 (Default)
# SpeedUARTDatte : 0b11 -> 9600bps (default)
# SpeedAirDataRate : 0b10 -> 2.4kbps (default)
#
# OptionSubPacketSett: 0b0 -> 240bytes (default)
# OptionTranPower : 0b0 -> 22dBm (Default)
# OptionRSSIAmbientNo: 0b0 -> Disabled (default)
#
# TransModeWORPeriod : 0b11 -> 2000ms (default)
# TransModeTransContr: 0b0 -> WOR Receiver (default)
# TransModeEnableLBT : 0b0 -> Disabled (default)
# TransModeEnableRSSI: 0b0 -> Disabled (default)
# TransModeEnabRepeat: 0b0 -> Disabled (default)
# TransModeFixedTrans: 0b0 -> Transparent transmission (default)
# ----------------------------------------
您只能设置当之无愧的参数,另一个将设置为默认值。
configuration_to_set = Configuration ( '400T22D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . ADDH = 0x01
configuration_to_set . CHAN = 23
configuration_to_set . NETID = 0
configuration_to_set . SPED . airDataRate = AirDataRate . AIR_DATA_RATE_100_96
configuration_to_set . SPED . uartParity = UARTParity . MODE_00_8N1
configuration_to_set . SPED . uartBaudRate = UARTBaudRate . BPS_9600
configuration_to_set . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . OPTION . transmissionPower = TransmissionPower ( '400T22D' ).
get_transmission_power (). POWER_10
# or
# configuration_to_set.OPTION.transmissionPower = TransmissionPower22.POWER_10
configuration_to_set . OPTION . RSSIAmbientNoise = RssiAmbientNoiseEnable . RSSI_AMBIENT_NOISE_ENABLED
configuration_to_set . TRANSMISSION_MODE . WORTransceiverControl = WorTransceiverControl . WOR_TRANSMITTER
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
configuration_to_set . TRANSMISSION_MODE . enableRepeater = RepeaterModeEnableByte . REPEATER_DISABLED
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . CRYPT . CRYPT_H = 1
configuration_to_set . CRYPT . CRYPT_L = 1
# Set the new configuration on the LoRa module and print the updated configuration to the console
code , confSetted = lora . set_configuration ( configuration_to_set )我为每个参数创建一个常数类,此处列表:airdatarate,uartbaudrate,uartparity,变速箱功率,forwardErrorCorrectionsWitch,WirelessWakeUptime,iodrivemode,fixeTransmissiment
在这里,发送数据的示例,您可以传递字符串
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )这里的接收器代码
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )如果要接收RSSI,也必须在配置中启用它
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED并将标志设置为true在接收_message方法中
code , value , rssi = lora . receive_message ( True )结果
Success!
pippo
在这里,发送数据的示例,您可以传递字典
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })这里的接收器代码
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
utime . sleep_ms ( 2000 )如果要接收RSSI,也必须在配置中启用它
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED并将标志设置为true在接收_DICT方法中
code , value , rssi = lora . receive_dict ( True )结果
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
https://downloads.arduino.cc/libraries/logs/github.com/xreef/ebyte_lora_e22_series_library/
您可以在此处订购PCB
指南的6部分中的指导和集会视频
您可以在此处订购PCB
指南的6部分中的指导和集会视频
我创建了一个库来管理EBYTE E22系列洛拉设备,非常强大,简单且便宜的设备。
LORA或远程无线数据遥测是由Semtech开创的一项技术,其频率低于NRF24L01(433 MHz,868 MHz,868 MHz或916 MHz,对于NRF24L01,又是2.4 GHz),但距离为4000m至1000000m)。
洛拉E22
您可以在这里找到Aliexpress(433MHz 4km)-Aliexpress(433MHz 10km)
请参阅我的文章以获取更新的模式
您可以在这里找到我的图书馆。
下载。
单击右上角的下载按钮,重命名未压缩文件夹lora_e22。
检查Lora_E22文件夹是否包含lora_e22.cpp和lora_e22.h。
将lora_e22库文件夹放置您的 /库 /文件夹。
如果您的第一个库,则可能需要创建库子文件夹。
重新启动IDE。
E22
| 销号 | 引脚项目 | 引脚方向 | 引脚应用 |
|---|---|---|---|
| 1 | M0 | 输入(弱上拉) | 与M1一起工作并确定四种操作模式。不允许进行浮动,可以接地。 |
| 2 | M1 | 输入(弱上拉) | 与M0一起工作并确定四种操作模式。不允许进行浮动,可以接地。 |
| 3 | rxd | 输入 | TTL UART输入,连接到外部(MCU,PC)TXD Outputpin。可以配置为开放式或上拉输入。 |
| 4 | TXD | 输出 | TTL UART输出,连接到外部RXD(MCU,PC)输入。可以将其配置为开放式或推力输出 |
5 | 辅助 | 输出 | per nifeare lo stato di funzionamento del modulo e riattivare l'mcu esterno。 Durante la Pssoceura di Inizializzazione di Autocontrollo,Il Pin Emette una bassa tensione。 puòEssereconformato uscita optrain o输出pusp-pult-push-pull(dento non metterlo a terra,ma se hai Qualidei,ad esempio ti si freeze iL dispositivod preaveibile mettere una una una una insistenza restistenza restistenza di restistenza di restistenza di restistenza di da 4.7klio collegarlo collegarlo collegarlo collegarlo al depositivo)。 |
| 6 | VCC | 电源2.3V〜5.5V DC | |
| 7 | gnd | 地面 |
如您所见,您可以通过M0和M1引脚设置各种模式。
| 模式 | M1 | M0 | 解释 |
|---|---|---|---|
| 普通的 | 0 | 0 | UART和无线通道是开放的,透明的传输正在打开(通过Special Command在空中支撑配置) |
| 最差模式 | 0 | 1 | 可以定义为较差的发射器和较差的接收器 |
| 配置模式 | 1 | 0 | 用户可以通过串行端口访问寄存器以控制模块的工作状态 |
| 深度睡眠模式 | 1 | 1 | 睡眠模式 |
如您所见,有一些可以以静态方式使用的引脚,但是如果您将其连接到库中获得的库,并且可以通过软件控制所有模式,但是接下来我们将更好地解释。
正如我已经说的那样,将所有引脚连接到微控制器的输出并不重要,您可以将M0和M1引脚放在高或低的位置以获得应有的配置,如果您不连接AUX,则库设置了合理的延迟,以确保操作完成。
当传输时,数据可用于唤醒外部MCU并返回数据传输饰面。
Lora E22辅助引脚在传输上
当接收辅助时,缓冲区为空时返回高。
Lora E22辅助引脚接收
它也用于自我检查以恢复正常操作(在电源和睡眠/程序模式下)。
lora e22 aux pin on自我检查
ESP8266连接架构更简单,因为它在逻辑通信(3.3V)的相同电压下工作。
Lora E22 TTL 100 WEMOS D1完全连接
重要的是添加上拉电阻(4,7kOhm)以获得良好的稳定性。
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| M1 | D6 |
| TX | 引脚D2(上拉4,7kΩ) |
| Rx | 引脚D3(上拉4,7kΩ) |
| 辅助 | 引脚D5(上拉4,7kΩ) |
| VCC | 5V(但在3.3V中使用较少的功率) |
| gnd | gnd |
ESP32的类似连接架构,但是对于RX和TX,我们使用RX2和TX2,因为默认情况下ESP32没有软焊接,但具有3个序列。
EBYTE LORA E22设备ESP32开发套件V1面包板完全连接
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| TX | 引脚RX2(上拉4,7kΩ) |
| Rx | 引脚TX3(上拉4,7kΩ) |
| 辅助 | 引脚D18(上拉4,7kΩ) |
| VCC | 5V(但在3.3V中使用较少的功率) |
| gnd | gnd |
| addh | 模块的高地址字节(默认00H) | 00h-ffh |
| addl | 模块的低地址字节(默认00H) | 00h-ffh |
| 加油 | 有关数据速率平价位和空气数据速率的信息 | |
| 陈 | 通信频道(410m + Chan(1M),默认17H(433MHz),仅适用于433MHz设备CHEK在下面检查设备的正确频率 | 00H-1FH |
| 选项 | 传输类型,数据包大小,允许特殊消息 | |
| 传输_mode | 许多指定传输方式的参数 |
选项
传输类型,上拉设置,唤醒时间,FEC,传输功率
UART Parity位: UART模式在交流方之间可能有所不同
| 4 | 3 | UART均等位 | 恒定值 |
| 0 | 0 | 8N1(默认) | MODE_00_8N1 |
| 0 | 1 | 8o1 | 模式_01_8O1 |
| 1 | 0 | 8 E1 | MODE_10_8E1 |
| 1 | 1 | 8N1(等于00) | 模式_11_8N1 |
UART BAUD率:UART BAUD率在交流方之间可能有所不同,UART BAUD率与无线传输参数无关,并且不会影响无线传输 /接收功能。
| 7 | 6 | 5 | TTL UART BAUD率(BPS) | 恒定值 |
| 0 | 0 | 0 | 1200 | UART_BPS_1200 |
| 0 | 0 | 1 | 2400 | UART_BPS_2400 |
| 0 | 1 | 0 | 4800 | UART_BPS_4800 |
| 0 | 1 | 1 | 9600(默认) | UART_BPS_9600 |
| 1 | 0 | 0 | 19200年 | UART_BPS_19200 |
| 1 | 0 | 1 | 38400 | UART_BPS_38400 |
| 1 | 1 | 0 | 57600 | UART_BPS_57600 |
| 1 | 1 | 1 | 115200 | UART_BPS_115200 |
空气数据速率:空气数据速率越低,传输距离的时间越长,反干扰性能的时间越长,并且较长的传输时间,空气数据速率必须保持相同的通信方。
| 2 | 1 | 0 | 空气数据率(bps) | 恒定值 |
| 0 | 0 | 0 | 0.3K | air_data_rate_000_03 |
| 0 | 0 | 1 | 1.2k | air_data_rate_001_12 |
| 0 | 1 | 0 | 2.4k(默认) | air_data_rate_010_24 |
| 0 | 1 | 1 | 4.8K | air_data_rate_011_48 |
| 1 | 0 | 0 | 9.6k | air_data_rate_100_96 |
| 1 | 0 | 1 | 19.2k | air_data_rate_101_192 |
| 1 | 1 | 0 | 38.4k | air_data_rate_110_384 |
| 1 | 1 | 1 | 62.5k | air_data_rate_111_625 |
####子数据包设置
这是数据包的最大lenght。
当数据小于子数据包长度时,接收端的串行输出是不间断的连续输出。当数据大于子数据包长度时,接收端串行端口将输出子数据包。
| 7 | 6 | 数据包大小 | 恒定值 |
| 0 | 0 | 240 bytes(默认) | SPS_240_00 |
| 0 | 1 | 128比特 | SPS_128_01 |
| 1 | 0 | 64比特 | SPS_064_10 |
| 1 | 1 | 32比特 | SPS_032_11 |
#### RSSI环境噪声启用
此命令可以启用/禁用RSSI的管理类型,重要的是要管理远程配置,请注意消息中的RSSI参数。
启用后,可以以发送模式或Wor Transmitting模式发送C0 C1 C2 C3命令以读取寄存器。寄存器0x00:当前环境噪声RSSI寄存器0x01:上次收到数据时。
| 5 | RSSI环境噪声启用 | 恒定值 |
| 0 | 使能够 | rssi_ambient_noise_enabled |
| 1 | 禁用(默认) | rssi_ambient_noise_disabled |
####启用RSSI
启用后,该模块会接收无线数据,并且它将遵循输出后通过串行端口TXD的RSSI强度字节
####传输类型
传输模式:在固定传输模式下,每个用户数据框架的前三个字节可用作高/低地址和频道。传输时该模块更改其地址和通道。完成该过程后,它将恢复为原始设置。
####启用中继器功能
####传输前监视数据
启用后,将在传输之前监视无线数据,这可以在一定程度上避免干扰,但可能会导致数据延迟。
#### wor
Wor Transmitter:接收和发送功能的模块已打开,并在传输数据时添加唤醒代码。接收已打开。
Wor接收器:该模块无法在WOR监视模式下传输数据并运行。监视期如下(最差周期),可以节省大量功率。
####最差周期
如果WOR正在传输:在WOR接收器接收到无线数据并通过串行端口输出后,它将等待1000ms,然后再进入WOR。用户可以输入串行端口数据并在此期间通过无线返回。每个串行字节将刷新1000ms。用户必须在1000ms内传输第一个字节。
首先,我们必须介绍一种简单但有用的方法来检查接收缓冲区中是否有东西
int available ();这只是返回当前流中有多少个字节。
正常/透明传输模式用于将消息发送到具有相同地址和频道的所有设备。
Lora E22传输方案,行是通道
固定传输有更多方案
Lora E22传输方案,行是通道
现在,您可以使用所有信息来完成您的工作,但是我认为重要的是要展示一些现实的例子以消除所有可能性。
EBYTE LORA E22 ARDUINO,ESP32或ESP8266:设置和基本用法
Ebyte Lora E22 Arduino,ESP32或ESP8266:库
EBYTE LORA E22 ARDUINO,ESP32或ESP8266:配置
Ebyte Lora E22 Arduino,ESP32或ESP8266:固定传输和RSSI
EBYTE LORA E22 ARDUINO,ESP32或ESP8266的设备:节省和发送结构化数据
Ebyte Lora E22 Arduino,ESP32或ESP8266:中继器模式和远程设置
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和Arduino Shield的设备
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和Wemos D1 Shield的设备
Ebyte Lora E22 Arduino,ESP32或ESP8266:Wor Microcontroller和ESP32 DEV V1 Shield的设备