

要安装库执行以下命令:
pip install ebyte-lora-e220在这里,构造函数的示例,您必须传递UART接口,并且(如果需要,但已提及)Aux PIN,M0和M1。
from lora_e220 import LoRaE220
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE220 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e220 import LoRaE220 , print_configuration
from lora_e220_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )结果
----------------------------------------
Initialization: {} Success
Retrieve configuration: {} Success
----------------------------------------
HEAD : 0xc1 0x0 0x8
AddH : 0x0
AddL : 0x0
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionSubPacketSett: 0b0 -> 200bytes (default)
OptionTranPower : 0b0 -> 22dBm (Default)
OptionRSSIAmbientNo: 0b0 -> Disabled (default)
TransModeWORPeriod : 0b11 -> 2000ms (default)
TransModeEnableLBT : 0b0 -> Disabled (default)
TransModeEnableRSSI: 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 . 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 . 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 . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
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
Lora Smart Home(LLCC68)是中型室内室内和室内室内无线应用程序的Sub-GHzLora®RF收发器。 SPI接口。销与销钉与SX1262兼容。 SX1261,SX1262,SX1268和LLCC68的设计用于长时间的电池寿命,仅4.2 mA Active接收电流。 SX1261可以传输到+15 dBM,而SX1262,SX1268和LLCC68可以使用高效的集成功率放大器传输到+22 dbm。
这些设备支持LPWAN用例的LORA调制,以及(G)FSK调制遗留用例。这些设备可高度配置,以满足消费者使用的不同应用要求。该设备提供了与LoraAlliance®发布的Lorawan®规范使用的Semtech收发器兼容的LORA调制。该无线电适合针对符合无线电法规的系统,包括但不限于ETSI EN 300 220,FCC CFR 47第15部分,中国监管要求和日本ARIB T-108。从150MHz到960MHz的连续频率覆盖范围可以支持世界各地所有主要的Sub-GHz ISM频段。
| LLCC68 | SX1278-SX1276 | |
|---|---|---|
| 距离 | > 11公里 | 8公里 |
| 费率(洛拉) | 1.76kbps - 62.5kbps | 0.3kbps - 19.2kbps |
| 睡眠动力消耗 | 2µA | 5µA |
EBYTE LORA E220 LLCC68 ARDUINO,ESP32或ESP8266的库。
| 销号 | 引脚项目 | 引脚方向 | 引脚应用 |
|---|---|---|---|
| 1 | M0 | 输入(弱上拉) | 与M1一起工作并确定四种操作模式。不允许漂浮;它可以是地面的。 |
| 2 | M1 | 输入(弱上拉) | 使用M0并决定四种操作模式。不允许漂浮;它可以是地面的。 |
| 3 | rxd | 输入 | TTL UART输入连接到外部(MCU,PC)TXD输出引脚。它可以配置为开放式或上拉输入。 |
| 4 | TXD | 输出 | TTL UART输出连接到外部RXD(MCU,PC)输入引脚。可以将其配置为开放式或推力输出 |
5 | 辅助 | 输出 | 指示模块的工作状态并唤醒外部MCU。在自我检查初始化过程中,销钉输出低水平。可以将其配置为开放式或推扣输出(允许浮动)。 |
| 6 | VCC | 电源3V〜5.5V DC | |
| 7 | gnd | 地面 |
如您所见,您可以通过M0和M1引脚设置各种模式。
| 模式 | M1 | M0 | 解释 |
|---|---|---|---|
| 普通的 | 0 | 0 | UART和无线通道是开放的,并且透明传输正在打开 |
| 最差的发射器 | 0 | 1 | 最差的发射器 |
| 最差的接收器 | 1 | 0 | 较差的接收器(支撑在空中醒来) |
| 深度睡眠模式 | 1 | 1 | 该模块进入睡眠状态(配置参数时会自动醒来) |
有些引脚可以在静态上使用,但是如果将它们连接到微控制器并将其配置在库中,则可以在性能中获得并可以通过软件控制所有模式。尽管如此,接下来我们将更好地解释。
正如我已经说过的,将所有引脚连接到微控制器的输出并不是必不可少的。您可以将M0和M1引脚置于高或低点以获得所需的配置。如果您不连接AUX,则库设置合理的延迟以确保操作完成(如果您在设备冻结方面遇到麻烦,则必须将上拉4.7K电阻器或更好地连接到设备。 )。
当传输时,数据可用于唤醒外部MCU并返回数据传输饰面。
接收时,辅助速度低并在缓冲区为空时返回高。
它也用于自我检查以恢复常规操作(在电动和睡眠/程序模式下)。
ESP8266连接模式更为简单,因为它在逻辑通信的相同电压(3.3V)的相同电压下工作。
至关重要的是要添加下拉电阻器(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个序列。
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| TX | 引脚RX2(上拉4,7kΩ) |
| Rx | 引脚TX3(上拉4,7kΩ) |
| 辅助 | 引脚D18(上拉4,7kΩ)(D15醒来) |
| VCC | 5V(但在3.3V中使用较少的功率) |
| gnd | gnd |
| M0 | 2(电压分隔器) |
| M1 | 3(电压分隔器) |
| TX | 引脚14 TX(上拉4,7kΩ) |
| Rx | 引脚13 RX(上拉4,7kΩ) |
| 辅助 | 引脚1(上拉4,7kΩ) |
| VCC | 5V |
| gnd | gnd |
您可以在此处订购PCB
指南的6部分中的指导和集会视频
您可以在此处订购PCB
指南的6部分中的指导和集会视频
LORA或远程无线数据遥测是一项由Semtech开创的技术,其频率低于NRF24L01(433 MHz,868 MHz,或916 MHz,或916 MHz,而NRF24L01的2.4 GHz),但距离为5000m至11000m。
| 姓名 | 描述 | 地址 |
|---|---|---|
| addh | 模块的高地址字节(默认00H) | 00h |
| addl | 模块的低地址字节(默认00H) | 01H |
| 加油 | 有关数据速率平价位和空气数据速率的信息 | 02H |
| 选项 | 传输类型,数据包大小,允许特殊消息 | 03H |
| 陈 | 通信通道(410m + Chan(1M),默认为17H(433MHz),仅适用于433MHz设备,请检查下面的设备,以检查设备的正确频率 | 04H |
| 选项 | 传输类型,数据包大小,允许特殊消息 | 05H |
| 传输_mode | 许多指定传输方式的参数 | 06H |
| 地下室 | 加密以避免拦截 | 07H |
UART Parity位: UART模式在交流方之间可能有所不同
| UART均等位 | 恒定值 |
|---|---|
| 8N1(默认) | MODE_00_8N1 |
| 8o1 | 模式_01_8O1 |
| 8e1 | MODE_10_8E1 |
| 8N1(等于00) | 模式_11_8N1 |
UART BAUD率:沟通各方之间的UART波特率可能有所不同(但不建议)。 UART BAUD率与无线传输参数无关,并且不会影响无线传输/接收功能。
| TTL UART BAUD率(BPS) | 恒定值 |
|---|---|
| 1200 | UART_BPS_1200 |
| 2400 | UART_BPS_2400 |
| 4800 | UART_BPS_4800 |
| 9600(默认) | UART_BPS_9600 |
| 19200年 | UART_BPS_19200 |
| 38400 | UART_BPS_38400 |
| 57600 | UART_BPS_57600 |
| 115200 | UART_BPS_115200 |
空气数据速率:空气数据速率越低,传输距离的时间越长,反干扰性能越长,并且传输时间越长;两个通信方必须恒定的空气数据速率。
| 空气数据率(bps) | 恒定值 |
|---|---|
| 2.4k | air_data_rate_000_24 |
| 2.4k | air_data_rate_001_24 |
| 2.4k(默认) | air_data_rate_010_24 |
| 4.8K | air_data_rate_011_48 |
| 9.6k | air_data_rate_100_96 |
| 19.2k | air_data_rate_101_192 |
| 38.4k | air_data_rate_110_384 |
| 62.5k | air_data_rate_111_625 |
这是数据包的最大长度。
当数据小于子包装长度时,接收端的串行输出是不间断的连续输出。当数据大于子包长度时,接收端串行端口将输出子包。
| 数据包大小 | 恒定值 |
|---|---|
| 200 bytes(默认) | SPS_200_00 |
| 128比特 | SPS_128_01 |
| 64比特 | SPS_064_10 |
| 32比特 | SPS_032_11 |
此命令可以启用/禁用RSSI的管理类型,并且必须管理远程配置。请注意消息中的RSSI参数。
启用时,可以以发送模式或WOR Transmitting模式发送C0,C1,C2,C2,C3命令以读取寄存器。寄存器0x00:当前环境噪声RSSI寄存器0x01:上次收到数据时。
| RSSI环境噪声启用 | 恒定值 |
|---|---|
| 使能够 | rssi_ambient_noise_enabled |
| 禁用(默认) | rssi_ambient_noise_disabled |
您可以通过应用这样的定义来更改这组常数:
#define E220_22 //默认值未设置
适用于E220,具有22DBM作为最大功率。
由于其低电源效率,不建议使用低电源。
| 传输功率(近似) | 恒定值 |
|---|---|
| 22DBM(默认) | Power_22 |
| 17dBm | Power_17 |
| 13DBM | Power_13 |
| 10dBm | Power_10 |
适用于E220,具有30dBm作为最大功率。
由于其低电源效率,不建议使用低电源。
#Define E220_30
| 传输功率(近似) | 恒定值 |
|---|---|
| 30DBM(默认) | Power_30 |
| 27dBm | Power_27 |
| 24dBm | Power_24 |
| 21dBm | Power_21 |
您也可以使用此定义配置通道频率:
//之一 #Define频率_433 #Define频率_170 #Define频率_470 #Define频率_868 #Define频率_915
启用后,该模块会接收无线数据,并且它将遵循通过串行端口TXD输出后的RSSI强度字节
| 启用RSSI | 恒定值 |
|---|---|
| 使能够 | rssi_enabled |
| 禁用(默认) | rssi_disabled |
传输模式:每个用户数据框的前三个字节可以用作固定传输模式下的高/低地址和通道。传输时该模块更改其地址和通道。完成过程后,它将恢复为原始设置。
| 固定传输启用位 | 恒定值 |
|---|---|
| 固定传输模式 | ft_fixed_transmission |
| 透明传输模式(默认) | ft_transparent_transmission |
启用后,将在传输之前监视无线数据,以避免在一定程度上进行干扰,但可能会导致数据延迟。
| LBT启用字节 | 恒定值 |
|---|---|
| 使能够 | lbt_enabled |
| 禁用(默认) | lbt_disabled |
如果WOR正在传输:在WOR接收器接收到无线数据并通过串行端口输出后,它将等待1000ms,然后再进入WOR。用户可以输入串行端口数据并在此期间通过无线返回。每个串行字节将刷新1000ms。用户必须在1000ms内传输第一个字节。
| 无线唤醒时间 | 恒定值 |
|---|---|
| 500ms | wake_up_500 |
| 1000ms | wake_up_1000 |
| 1500ms | wake_up_1500 |
| 2000毫秒(默认) | wake_up_2000 |
| 2500ms | wake_up_2500 |
| 3000ms | wake_up_3000 |
| 3500ms | wake_up_3500 |
| 4000ms | wake_up_4000 |
首先,我们必须引入一种简单但实用的方法来检查接收缓冲区中是否有东西。
int可用();
返回当前流中有多少个字节很容易。
普通/透明传输模式将消息发送到具有相同地址和频道的所有设备。
固定传输有更多方案
现在,您可以完成所有信息,但是我认为重要的是要显示一些真实的例子以更好地了解所有可能性。
Github库