

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-e22-rpi from lora_e22 import LoRaE22
import serial
loraSerial = serial . Serial ( '/dev/serial0' ) #, baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
lora = LoRaE22 ( '400T22D' , loraSerial , aux_pin = 18 , m0_pin = 23 , m1_pin = 24 ) 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 )O resultado
# ----------------------------------------
# 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)
# ----------------------------------------
Você pode definir apenas o parâmetro desidenciado, o outro será definido como o valor padrão.
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 )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 )
time . sleep ( 2 )Se você deseja receber RSSI, você deve habilitá -lo na configuração
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDe defina o sinalizador como true no método Receber_message
code , value , rssi = lora . receive_message ( True )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' ])
time . sleep ( 2 )Se você deseja receber RSSI, você deve habilitá -lo na configuração
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDe defina o sinalizador como true no método Receber_dict
code , value , rssi = lora . receive_dict ( True )Resultado
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
E22
| 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 | Por indicare lo stato di funzionamento del modulo e riattarare l'cu esterno. DURANTE LA PROCEDURA di inizializazazione di AutoControllo, Il Pin Emette Una Bassa TensionE. Può Essere Configurato venha USCITA Open Drain o Output Push-Pull (è Consentito non metterlo a Terra, Ma se hai Problemi, ad esempio Ti Si congelamento Il Dispositivo è preferibile mettere una Restistenza Di Pull-up da 4.7ko megrio collegarlo Al Dispongarlo. |
| 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 | O canal UART e sem fio estão abertos, a transmissão transparente está ligada (suporta a configuração do ar via comando especial) |
| Modo Wor | 0 | 1 | Pode ser definido como o transmissor Wor e o receptor Wor |
| Modo de configuração | 1 | 0 | Os usuários podem acessar o registro através da porta serial para controlar o estado de trabalho do módulo |
| Modo de suspensão profunda | 1 | 1 | Modo de suspensão |
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.
| 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 Chek abaixo para verificar a frequência correta do seu dispositivo | 00H-1FH |
| OPÇÃO | Tipo de transmissão, tamanho do pacote, permita uma mensagem especial | |
| Transmission_mode | Muito parâmetro que especifica a modalidade de transmissão |
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 de comunicação
| 4 | 3 | Bit de paridade uart | Valor constante |
| 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.
| 7 | 6 | 5 | TTL UART BAUD Taxa (BPS) | Valor constante |
| 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 (padrão) | 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 |
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 | 38.4K | AIR_DATA_RATE_110_384 |
| 1 | 1 | 1 | 62,5k | AIR_DATA_RATE_111_625 |
#### Configuração do sub -pacote
Este é o comprimento máximo do pacote.
Quando os dados são menores que o comprimento do sub -pacote, a saída serial da extremidade receptora é uma saída contínua ininterrupta. Quando os dados são maiores que o comprimento do sub -pacote, a porta serial final de recepção produzirá o sub -pacote.
| 7 | 6 | Tamanho do pacote | Valor constante |
| 0 | 0 | 240 bytes (padrão) | Sps_240_00 |
| 0 | 1 | 128 Bytes | Sps_128_01 |
| 1 | 0 | 64 Bytes | Sps_064_10 |
| 1 | 1 | 32Bytes | Sps_032_11 |
#### rssi ruído ambiente habilitado
Este comando pode ativar/desativar o tipo de gerenciamento de RSSI, é importante gerenciar a configuração remota, prestar atenção não é o parâmetro RSSI na mensagem.
Quando ativado, o comando C0 C1 C2 C3 pode ser enviado no modo de transmissão ou no modo de transmissão WOR para ler o registro. REGISTRA 0X00: REGISTRO ABIENTE ABIENTE RSSI REGISTRO 0X01: RSSI Quando os dados foram recebidos da última vez.
| 5 | RSSI Ruído ambiente habilitado | Valor constante |
| 0 | Habilitar | Rssi_ambient_noise_enabled |
| 1 | Desativar (padrão) | Rssi_ambient_noise_disabled |
#### Ativar rssi
Quando ativado, o módulo recebe dados sem fio e seguirá um byte de força RSSI após a produção através da porta serial TXD
Tipo de transmissão ####
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.
#### Ativar função repetidora
#### monitore os dados antes da transmissão
Quando ativado, os dados sem fio serão monitorados antes de serem transmitidos, o que pode evitar interferências até certo ponto, mas pode causar atraso nos dados.
#### wor
Transmissor WOR: O módulo recebe e transmissões de funções são ativadas e um código de despertar é adicionado ao transmitir dados. Receber está ligado.
Receptor WOR: O módulo não consegue transmitir dados e funciona no modo de monitoramento Wor. O período de monitoramento é o seguinte (ciclo Wor), que pode economizar muita energia.
#### Wor Cycle
Se o WOR estiver transmitindo: depois que o receptor Wor receber os dados sem fio e o produzirá através da porta serial, ele aguardará 1000ms antes de entrar no We. Os usuários podem inserir os dados da porta serial e retorná -los via sem fio durante esse período. Cada byte em série será atualizado por 1000ms. Os usuários devem transmitir o primeiro byte dentro de 1000ms.
Primeiro, devemos introduzir um método simples, mas útil, para verificar se algo está no buffer de recebimento
int available ();É simplesmente retornar quantos bytes você tem no fluxo atual.
O modo de transmissão normal/transparente é usado para enviar mensagens para todo o dispositivo com o mesmo endereço e canal.
Lora E22 Cenários de transmissão, linhas são canais
A transmissão fixa tem mais cenários
Lora E22 Cenários de transmissão, linhas são canais
Agora você tem todas as informações para fazer seu trabalho, mas acho importante mostrar alguns exemplos realistas para destacar melhor toda a possibilidade.
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Configurações e uso básico
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Biblioteca
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Configuração
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: transmissão fixa e RSSI
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: economia de energia e envio de dados estruturados
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Modo repetidor e configurações remotas
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Microcontrolador Wor e Arduino Shield
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Microcontrolador Wor e Wemos D1 Shield
Dispositivo Ebyte Lora E22 para Arduino, ESP32 ou ESP8266: Microcontrolador Wor e Esp32 Dev V1 Shield