

Aqui, um exemplo de construtor, você deve passar na interface UART e (se quiser, mas é recomendado) o pino aux, M0 e M1.
Para instalar a biblioteca, execute o seguinte comando:
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 )O resultado
----------------------------------------
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 )O objeto de configuração possui muitos parâmetros.
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 )Eu crio uma classe de constantes para cada parâmetro, aqui uma lista: AirDatarato, Uartbaudrate, Uartparity, TransmissionPower, ForwardErrorCorrectionSwitch, Wirelesswakeuptime, iodrivemode, FixerTransmission
Aqui um exemplo de dados de envio, você pode passar uma string
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )Aqui o código do receptor
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )Resultado
Success!
pippo
Aqui um exemplo de envio de dados, você pode passar um dicionário
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })Aqui o código do receptor
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 )Resultado
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
Arduino Uno Shield
Você pode pedir o PCB aqui
Vídeo de instrução e montagem em 6 parte do guia
Wemos D1 Shield
Você pode pedir o PCB aqui
ESP32 SHIELD
Você pode pedir o PCB aqui
Vídeo de instrução e montagem em 6 parte do guia
Crio uma biblioteca para gerenciar a série Ebyte E32 de dispositivo Lora, muito poderoso, dispositivo simples e barato.
Lora E32-TTL-100
Você pode encontrar aqui o aliexpress (dispositivo de 3 km) aliexpress (dispositivo de 8 km)
Eles podem trabalhar a uma distância de 3000m a 8000m e têm muitos recursos e parâmetro.
Então, crio esta biblioteca para simplificar o uso.
Consulte o meu artigo para obter o esquema atualizado
Você pode encontrar minha biblioteca aqui.
Para baixar.
Clique no botão de downloads no canto superior direito, renomeie a pasta não compactada lora_e32.
Verifique se a pasta LORA_E32 contém Lora_E32.CPP e LORA_E32.H.
Coloque a pasta Lora_E32 da biblioteca da sua pasta / Bibliotecas /.
Pode ser necessário criar a subpasta das bibliotecas se for sua primeira biblioteca.
Reinicie o IDE.
E32 TTL 100
Você pode comprar aqui aliexpress
| PIN No. | Item de pino | Direção do pino | Aplicação PIN |
|---|---|---|---|
| 1 | M0 | Entrada (Pull-up fraca) | Trabalhe com M1 e decida que os quatro modos de operação. O flutuação não é permitido, pode ser moído. |
| 2 | M1 | Entrada (Pull-up fraca) | Trabalhe com M0 e decida que os quatro modos de operação. O flutuação não é permitido, pode ser moído. |
| 3 | Rxd | Entrada | As entradas TTL UART, conectam -se a outputpin externo (MCU, PC). Pode ser configurado como entrada de drenagem aberta ou pull-up. |
| 4 | Txd | Saída | Saídas TTL UART, conecta -se ao RXD externo (MCU, PC) InputPin. Pode ser configurado como saída de drenagem aberta ou push-pull |
| 5 | Aux | Saída | Para indicar o status de funcionamento do módulo e acorda o MCU externo. Durante o procedimento de inicialização de auto-verificação, o pino produz baixo nível. Pode ser configurado como saída de saída de drenagem aberta ORPUSH-PULL (é permitido flutuante). |
| 6 | VCC | Fonte de alimentação 2.3V ~ 5,5V DC | |
| 7 | Gnd | Chão | Como você pode ver, pode definir vários modos via pinos M0 e M1. |
| Modo | M1 | M0 | Explicação |
|---|---|---|---|
| Normal | 0 | 0 | Canal uart e sem fio está pronto para ir |
| Wke-up | 0 | 1 | O mesmo que o normal, mas um código de preâmbulo é adicionado aos dados transmitidos para acordar o receptor. |
| Economia de energia | 1 | 0 | O UART é desativado e sem fio está no modo WOR (Wake on Radio), o que significa que o dispositivo será ativado quando houver dados a serem recebidos. A transmissão não é permitida. |
| Dormir | 1 | 1 | Usado nos parâmetros de configuração. Transmitindo e recebendo desativado. |
Como você pode ver, existem alguns pinos que podem ser usados de maneira estática, mas se você o conectar à biblioteca que você ganha no desempenho e poderá controlar todos os modos via software, mas vamos explicar melhor a seguir.
Como eu já digo que não é importante conectar todo o pino à saída do microcontrolador, você pode colocar os pinos M0 e M1 em alta ou baixa para obter configuração desidenciada e, se você não conectar aux ox, a biblioteca definir um atraso razoável para garantir que a operação esteja concluída .
Ao transmitir dados, pode ser usado para acordar o MCU externo e retornar alto no acabamento da transferência de dados.
Lora E32 Aux Pin na transmissão
Ao receber o aux de ficar baixo e retornar alto quando o buffer estiver vazio.
Lora E32 Aux Pin na recepção
Também é usado para verificação própria para restaurar a operação normal (no modo de energia e sono/programa).
Lora E32 Aux Pin na auto-verificação
O esquema de conexão ESP8266 é mais simples porque funciona na mesma tensão de comunicações lógicas (3.3V).
Lora e32 TTL 100 WEMOS D1 totalmente conectado
É importante adicionar resistor pull-up (4,7kohm) para obter uma boa estabilidade.
| M0 | D7 |
|---|---|
| M1 | D6 |
| Rx | Pino D2 (pullup 4,7kΩ) |
| Tx | Pino D3 (pullup 4,7kΩ) |
| Aux | D5 (entrada) |
| 3.3V | Gnd |
A tensão de trabalho do Arduino é 5V, por isso precisamos adicionar um divisor de tensão no pino RX M0 e M1 do módulo Lora para evitar danos, você pode obter mais informações aqui divisor de tensão: calculadora e aplicação.
Você pode usar um resistor de 2kohm para GND e 1kOhm do sinal do que montados no RX.
Lora e32 TTL 100 Arduino totalmente conectado
| M0 | 7 (divisor de tensão) |
|---|---|
| M1 | 6 (divisor de tensão) |
| Rx | PIN D2 (Pullup 4,7kΩ e divisor de tensão) |
| Tx | Pino D3 (pullup 4,7kΩ) |
| Aux | 5 (entrada) |
| VCC | 3.3V |
| Gnd | Gnd |
| Addh | Byte de endereço alto do módulo (o padrão 00H) | 00H-FFH |
|---|---|---|
| Addl | Byte de endereço baixo do módulo (o padrão 00H) | 00H-FFH |
| Acelerou | Informações sobre a taxa de paridade da taxa de dados e taxa de dados aéreos | Chan |
| Canal de comunicação (410m + chan*1m), padrão 17h (433MHz), válido apenas para o dispositivo 433MHz | 00H-1FH |
|---|
OPÇÃO
Tipo de transmissão, configurações de pull-up, tempo de despertar, FEC, energia de transmissão
Bit de paridade UART: o modo _uart pode ser diferente entre as partes da comunicação
| 7 | 6 | Bit de paridade UART | Valor const | | --- | --- | --- | --- | --- | | 0 | 0 | 8n1 (padrão) | mode_00_8n1 | | 0 | 1 | 8O1 | mode_01_8o1 | | 1 | 0 | 8 e1 | mode_10_8e1 | | 1 | 1 | 8N1 (igual a 00) | mode_11_8n1 |
Taxa de transmissão UART: a taxa de transmissão UART pode ser diferente entre as partes da comunicação, a taxa de transmissão UART não tem nada a ver com parâmetros de transmissão sem fio e não afetará os recursos de transmissão / recebimento sem fio.
| 5 | 43 | TTL UART BAUD Taxa (BPS) | Valor constante |
|---|---|---|---|
| 0 | 0 | 0 | 1200 |
| 0 | 0 | 1 | 2400 |
| 0 | 1 | 0 | 4800 |
| 0 | 1 | 1 | 9600 (padrão) |
| 1 | 0 | 0 | 19200 |
| 1 | 0 | 1 | 38400 |
| 1 | 1 | 0 | 57600 |
| 1 | 1 | 1 | 115200 |
Taxa de dados do ar: quanto menor a taxa de dados do ar, maior a distância de transmissão, melhor desempenho anti-interferência e tempo de transmissão mais longo, a taxa de dados do ar deve manter o mesmo para ambas as partes da comunicação.
| 2 | 1 | 0 | Taxa de dados aéreos (BPS) | Valor constante |
|---|---|---|---|---|
| 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 (padrão) | 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 (o mesmo para 101) | AIR_DATA_RATE_110_192 |
| 1 | 1 | 1 | 19.2k (o mesmo para 101) | AIR_DATA_RATE_111_192 |
Modo de transmissão: no modo de transmissão fixo, os três primeiros bytes do quadro de dados de cada usuário podem ser usados como endereço e canal alto/baixo. O módulo altera seu endereço e canal ao transmitir. E ele reverterá para a configuração original após concluir o processo.
| 7 | Transmissão fixa que habilita o bit (semelhante ao Modbus) | Valor constante |
|---|---|---|
| 0 | Modo de transmissão transparente | Ft_transparent_transmission |
| 1 | Modo de transmissão fixo | Ft_fixed_transmission |
Modo de acionamento de IO: este bit é usado no módulo resistor interno de tração. Também aumenta a adaptabilidade do nível em caso de dreno aberto. Mas em alguns casos, pode precisar de pull-up externo
resistor.
| 6 | Modo de unidade de IO (padrão 1) | Valor constante |
|---|---|---|
| 1 | Saídas de push-pull txd e aux, entradas de pull-up rxd | Io_d_mode_push_pulls_pull_ups |
| 0 | Saídas de coletores abertos TXD 、 AUX, entradas de coletores abertos rxd | Io_d_mode_open_collector |
Tempo de despertar sem fio: o módulo de transmissão e recebimento trabalha no modo 0, cujo tempo de atraso é inválido e pode ser um valor arbitrário, o transmissor funciona no modo 1 pode transmitir o código do preâmbulo do tempo correspondente continuamente, quando o receptor funciona no modo 2, o tempo significa o tempo do monitor (despertar sem fio). Somente os dados do transmissor que funcionam no modo 1 podem ser
recebido.
| 5 | 4 | 3 | Tempo de despertar sem fio | Valor constante |
|---|---|---|---|---|
| 0 | 0 | 0 | 250ms (padrão) | 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 | 1750ms | Wake_up_1750 |
| 1 | 1 | 1 | 2000ms | Wake_up_2000 |
FEC: Após desligar o FEC, a taxa de transmissão de dados real aumenta enquanto a capacidade de anti-interferência diminui. Além disso, a distância da transmissão é relativamente curta, ambas as partes de comunicação devem manter as mesmas páginas sobre o ativação ou o FEC de ativação.
| 2 | Switch FEC | Valor constante |
|---|---|---|
| 0 | Desligue o FEC | FEC_0_OFF |
| 1 | Ligue o FEC (padrão) | FEC_1_ON |
Poder de transmissão
Você pode alterar esse conjunto de constantes, aplique uma definição como assim:
Aplicável para E32-TTL-100, E32-TTL-100S1, E32-T100S2.
A potência externa deve garantir a capacidade da saída de corrente mais de 250mA e garantir a ondulação da fonte de alimentação em 100 mV.
A transmissão de baixa potência não é recomendada devido à sua baixa fonte de alimentação
eficiência.
| 1 | 0 | Poder de transmissão (aproximação) | Valor constante |
|---|---|---|---|
| 0 | 0 | 20dbm (padrão) | Power_20 |
| 0 | 1 | 17DBM | Power_17 |
| 1 | 0 | 14DBM | Power_14 |
| 1 | 1 | 10dBM | Power_10 |
Aplicável para E32-TTL-500。
A energia externa deve garantir a capacidade da saída de corrente mais de 700mA e garantir a ondulação da fonte de alimentação em 100 mV.
A transmissão de baixa energia não é recomendada devido à sua baixa eficiência da fonte de alimentação.
| 1 | 0 | Poder de transmissão (aproximação) | Valor constante |
|---|---|---|---|
| 0 | 0 | 27DBM (padrão) | Power_27 |
| 0 | 1 | 24dBm | Power_24 |
| 1 | 0 | 21DBM | Power_21 |
| 1 | 1 | 18dbm | Power_18 |
Aplicável para E32-TTL-1W, E32 (433T30S), E32 (868T30s), E32 (915T30s)
A potência externa deve garantir a capacidade da saída de corrente mais de 1a e garantir a ondulação da fonte de alimentação em 100 mV.
A transmissão de baixa potência não é recomendada devido à sua baixa fonte de alimentação
eficiência.
| 1 | 0 | Poder de transmissão (aproximação) | Valor constante |
|---|---|---|---|
| 0 | 0 | 30dbm (padrão) | Power_30 |
| 0 | 1 | 27DBM | Power_27 |
| 1 | 0 | 24dBm | Power_24 |
| 1 | 1 | 21DBM | Power_21 |
Você pode configurar a frequência do canal OLSO com isso Definir:
O modo de transmissão normal/transparente é usado para enviar mensagens para todo o dispositivo com o mesmo endereço e canal.
Lora E32 Cenários de transmissão, linhas são canais
Da mesma maneira, crio um conjunto de método para usar com transmissão fixa
Você precisa alterar apenas o método de envio, porque o dispositivo de destino não recebe o preâmbulo com endereço e canal.
A transmissão fixa tem mais cenários