

在这里,构造函数的示例,您必须传递UART接口,并且(如果需要,但已提及)Aux PIN,M0和M1。
要安装库执行以下命令:
pip install ebyte-lora-e32 from lora_e32 import LoRaE32
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE32 ( '433T20D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( ResponseStatusCode . get_description ( code )) from lora_e32 import LoRaE32 , print_configuration , Configuration
from lora_e32_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )结果
----------------------------------------
HEAD : 0b11000000 192
AddH : 0
AddL : 2
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionTrans : 0b1 -> Fixed transmission (first three bytes can be used a
s high/low address and channel)
OptionPullup : 0b1 -> TXD, RXD, AUX are push-pulls/pull-ups (default)
OptionWakeup : 0b0 -> 250ms (default)
OptionFEC : 0b1 -> Turn on Forward Error Correction Switch (Default)
OptionPower : 0b0 -> 20dBm (Default)
----------------------------------------
configuration_to_set = Configuration ( '433T20D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . OPTION . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
code , confSetted = lora . set_configuration ( configuration_to_set )配置对象具有很多参数。
class Configuration :
class Speed :
def __init__ ( self , model ):
self . model = model
self . airDataRate = AirDataRate . AIR_DATA_RATE_010_24
self . uartBaudRate = UARTBaudRate . BPS_9600
self . uartParity = UARTParity . MODE_00_8N1
class Option :
def __init__ ( self , model ):
self . model = model
self . transmissionPower = TransmissionPower ( self . model ). get_transmission_power (). get_default_value ()
self . fec = ForwardErrorCorrectionSwitch . FEC_1_ON
self . wirelessWakeupTime = WirelessWakeUpTime . WAKE_UP_250
self . ioDriveMode = IODriveMode . PUSH_PULLS_PULL_UPS
self . fixedTransmission = FixedTransmission . TRANSPARENT_TRANSMISSION
class Configuration :
def __init__ ( self , model ):
self . HEAD = 0
self . ADDH = 0
self . ADDL = 0
self . SPED = Speed ( model )
self . CHAN = 23
self . OPTION = Option ( model )我为每个参数创建一个常数类,此处列表: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 )结果
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 )结果
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
Arduino Uno盾牌
您可以在此处订购PCB
指南的6部分中的指导和集会视频
WEMOS D1盾牌
您可以在此处订购PCB
ESP32盾牌
您可以在此处订购PCB
指南的6部分中的指导和集会视频
我创建了一个库来管理EBYTE E32系列洛拉设备,非常强大,简单且便宜的设备。
Lora E32-TTL-100
您可以在此处找到Aliexpress(3公里设备)Aliexpress(8公里设备)
它们可以在3000m至8000m的距离上工作,并且具有许多功能和参数。
因此,我创建了此库来简化用法。
请参阅我的文章以获取更新的模式
您可以在这里找到我的图书馆。
下载。
单击右上角的下载按钮,重命名未压缩文件夹lora_e32。
检查lora_e32文件夹是否包含lora_e32.cpp和lora_e32.h。
将lora_e32库文件夹放置您的 /库 /文件夹。
如果您的第一个库,则可能需要创建库子文件夹。
重新启动IDE。
E32 TTL 100
您可以在这里购买Aliexpress
| 销号 | 引脚项目 | 引脚方向 | 引脚应用 |
|---|---|---|---|
| 1 | M0 | 输入(弱上拉) | 与M1一起工作并确定四种操作模式。不允许进行浮动,可以接地。 |
| 2 | M1 | 输入(弱上拉) | 与M0一起工作并确定四种操作模式。不允许进行浮动,可以接地。 |
| 3 | rxd | 输入 | TTL UART输入,连接到外部(MCU,PC)TXD Outputpin。可以配置为开放式或上拉输入。 |
| 4 | TXD | 输出 | TTL UART输出,连接到外部RXD(MCU,PC)输入。可以将其配置为开放式或推力输出 |
| 5 | 辅助 | 输出 | 指示模块的工作状态并唤醒外部MCU。在自我检查初始化过程中,PIN输出低水平。可以将其配置为开放式输出ORPUSH-PULL输出(允许浮动)。 |
| 6 | VCC | 电源2.3V〜5.5V DC | |
| 7 | gnd | 地面 | 如您所见,您可以通过M0和M1引脚设置各种模式。 |
| 模式 | M1 | M0 | 解释 |
|---|---|---|---|
| 普通的 | 0 | 0 | UART和无线通道很好 |
| wke | 0 | 1 | 与普通相同,但序列代码被添加到传输数据中以唤醒接收器。 |
| 节能 | 1 | 0 | UART是禁用的,并且无线处于WOR(无线电上的唤醒)模式,这意味着在收到数据时将打开设备。不允许传输。 |
| 睡觉 | 1 | 1 | 用于设置参数。传输和接收残疾。 |
如您所见,有一些可以以静态方式使用的引脚,但是如果您将其连接到库中获得的库,并且可以通过软件控制所有模式,但是接下来我们将更好地解释。
正如我已经说的那样,将所有引脚连接到微控制器的输出并不重要,您可以将M0和M1引脚放在高或低的位置以获得应有的配置,如果您不连接AUX,则库设置了合理的延迟,以确保操作完成。
当传输时,数据可用于唤醒外部MCU并返回数据传输饰面。
Lora E32辅助引脚在传输上
当接收辅助时,缓冲区为空时返回高。
洛拉E32辅助引脚接收
它也用于自我检查以恢复正常操作(在电源和睡眠/程序模式下)。
Lora E32 Aux PIN上的自我检查
ESP8266连接架构更简单,因为它在逻辑通信(3.3V)的相同电压下工作。
Lora E32 TTL 100 WEMOS D1完全连接
重要的是添加上拉电阻(4,7kOhm)以获得良好的稳定性。
| M0 | D7 |
|---|---|
| M1 | D6 |
| Rx | 引脚D2(上拉4,7kΩ) |
| TX | 引脚D3(上拉4,7kΩ) |
| 辅助 | D5(输入) |
| 3.3V | gnd |
Arduino工作电压为5V,因此我们需要在LORA模块的Rx PIN M0和M1上添加一个电压分隔器,以防止损坏,您可以在此处获得更多信息电压分隔器:计算器和应用。
您可以使用信号的2KOHM电阻对GND和1KOHM使用,而不是放在RX上。
Lora E32 TTL 100 Arduino完全连接
| M0 | 7(电压分隔器) |
|---|---|
| M1 | 6(电压分隔器) |
| Rx | 引脚D2(上拉4,7kΩ和电压分隔器) |
| TX | 引脚D3(上拉4,7kΩ) |
| 辅助 | 5(输入) |
| VCC | 3.3V |
| gnd | gnd |
| addh | 模块的高地址字节(默认00H) | 00h-ffh |
|---|---|---|
| addl | 模块的低地址字节(默认00H) | 00h-ffh |
| 加油 | 有关数据速率平价位和空气数据速率的信息 | 陈 |
| 通信通道(410m + Chan(1M),默认值17H(433MHz),仅适用于433MHz设备 | 00H-1FH |
|---|
选项
传输类型,上拉设置,唤醒时间,FEC,传输功率
uart parity位:_UART模式在交流方之间可能有所不同
| 7 | 6 | UART Parity位| const值| | --- | --- | --- | --- | --- | | 0 | 0 | 8n1(默认值)| mode_00_8n1 | | 0 | 1 | 8O1 | mode_01_8o1 | | 1 | 0 | 8 e1 | mode_10_8e1 | | 1 | 1 | 8n1(等于00)| mode_11_8n1 |
UART BAUD率:UART BAUD率在交流方之间可能有所不同,UART BAUD率与无线传输参数无关,并且不会影响无线传输 /接收功能。
| 5 | 43 | TTL UART BAUD率(BPS) | 恒定值 |
|---|---|---|---|
| 0 | 0 | 0 | 1200 |
| 0 | 0 | 1 | 2400 |
| 0 | 1 | 0 | 4800 |
| 0 | 1 | 1 | 9600(默认) |
| 1 | 0 | 0 | 19200年 |
| 1 | 0 | 1 | 38400 |
| 1 | 1 | 0 | 57600 |
| 1 | 1 | 1 | 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 | 19.2k(相同于101) | air_data_rate_110_192 |
| 1 | 1 | 1 | 19.2k(相同于101) | air_data_rate_111_192 |
传输模式:在固定传输模式下,每个用户数据框架的前三个字节可用作高/低地址和频道。传输时该模块更改其地址和通道。完成该过程后,它将恢复为原始设置。
| 7 | 固定传输启用位((类似于modbus) | 恒定值 |
|---|---|---|
| 0 | 透明传输模式 | ft_transparent_transmission |
| 1 | 固定传输模式 | ft_fixed_transmission |
IO驱动模式:该位用于模块内部拉动电阻器。在开放排水时,它还增加了水平的适应性。但是在某些情况下,它可能需要外部上拉
电阻。
| 6 | IO驱动模式(默认1) | 恒定值 |
|---|---|---|
| 1 | TXD和AUX推力输出,RXD上拉输入 | io_d_mode_push_pulls_pull_ups |
| 0 | txd,辅助开放式助理输出,RXD开放式收集器输入 | IO_D_MODE_OPEN_COLLECTOR |
无线唤醒时间:传输和接收模块在模式0中工作,其延迟时间无效并且可以是任意值,在模式1中,发射器可以连续发送相应时间的前码代码,当接收器在模式2中工作时,时间表示监视器间隔时间(无线唤醒)。只有在模式1中起作用的发射器的数据才能是
已收到。
| 5 | 4 | 3 | 无线唤醒时间 | 恒定值 |
|---|---|---|---|---|
| 0 | 0 | 0 | 250ms(默认) | wake_up_250 |
| 0 | 0 | 1 | 500ms | wake_up_500 |
| 0 | 1 | 0 | 750ms | wake_up_750 |
| 0 | 1 | 1 | 1000ms | wake_up_1000 |
| 1 | 0 | 0 | 1250ms | wake_up_1250 |
| 1 | 0 | 1 | 1500ms | wake_up_1500 |
| 1 | 1 | 0 | 1750毫秒 | wake_up_1750 |
| 1 | 1 | 1 | 2000ms | wake_up_2000 |
FEC:关闭FEC后,实际数据传输速率会增加,而反干扰能力会降低。同样,传输距离相对较短,双方都必须在相同的页面上保持关于转交或关闭FEC的相同页面。
| 2 | FEC开关 | 恒定值 |
|---|---|---|
| 0 | 关闭FEC | FEC_0_OFF |
| 1 | 打开FEC(默认) | FEC_1_ON |
传输功率
您可以通过应用这样的定义来更改这组常数:
适用于E32-TTL-100,E32-TTL-100S1,E32-T100S2。
外部电源必须确保当前产出的能力超过250mA,并确保电源涟漪在100mV之内。
由于其低电源,不建议使用低电源
效率。
| 1 | 0 | 传输功率(近似) | 恒定值 |
|---|---|---|---|
| 0 | 0 | 20DBM(默认) | Power_20 |
| 0 | 1 | 17dBm | Power_17 |
| 1 | 0 | 14dBm | Power_14 |
| 1 | 1 | 10dBm | Power_10 |
适用于E32-TTL-500。
外部电源必须确保当前产出的能力超过700mA,并确保电源波纹在100mV之内。
由于其低电源效率,不建议使用低电源。
| 1 | 0 | 传输功率(近似) | 恒定值 |
|---|---|---|---|
| 0 | 0 | 27DBM(默认) | Power_27 |
| 0 | 1 | 24dBm | Power_24 |
| 1 | 0 | 21dBm | Power_21 |
| 1 | 1 | 18dbm | Power_18 |
适用于E32-TTL-1W,E32(433T30),E32(868T30),E32(915T30S)
外部功率必须确保当前输出的能力超过1A,并确保电源涟漪在100mV之内。
由于其低电源,不建议使用低电源
效率。
| 1 | 0 | 传输功率(近似) | 恒定值 |
|---|---|---|---|
| 0 | 0 | 30DBM(默认) | Power_30 |
| 0 | 1 | 27dBm | Power_27 |
| 1 | 0 | 24dBm | Power_24 |
| 1 | 1 | 21dBm | Power_21 |
您可以使用此定义配置通道频率OLSO:
正常/透明传输模式用于将消息发送到具有相同地址和频道的所有设备。
Lora E32传输方案,线是频道
我以同样的方式创建了一组与固定传输一起使用的方法
您只需要更改发送方法,因为目标设备无法接收带有地址和频道的序言。
固定传输有更多方案