Uma classe Micropython para os módulos LORA da série Ebyte E22
Os módulos EBYTE E22 suportados são baseados nos chipsets Semtech SX1262/SX1286 e estão disponíveis para os 400 MHz (410.125 ... 493.125) e 900 MHz (850.125 ... 930.125) rangues de frequência e fornecem 22 DBM. TX Power.
Uma interface UART simples é usada para controlar o dispositivo.
Ebyte Datahets:
E22-900T22D
E22-400T22D
A classe Lorae22 é baseada na classe Lorae32 por Effevee: https://github.com/effevee/lorae32
Conecte a antena adequada antes de transmitir!
Antes de usar, verifique seus regulamentos locais para usar esse intervalo de frequência. Por exemplo, na maior parte da Europa, a potência TX máxima permitida está abaixo do valor padrão de 22 dBm! Também pode haver restrições adicionais, por exemplo, restrições no ciclo de trabalho de suas transmissões (que é a fração do tempo do ar até o tempo total abrangido durante um período de uso do dispositivo)!

Consulte o código para configuração de pinos.
Notas: O código de teste LORAE22 difere do código de teste E32 em termos de UART usado e Aux Pin! Além disso, o LORAE22 usa 'Modo Normal', enquanto o LORAE32 usa 'Modo de acordado' em SendMessage () .
| Modo de transmissão | TX (Addr - CH) | Rx (addr - ch) | Msg (addr - ch) | Código do transmissor | Código do receptor |
|---|---|---|---|---|---|
| transparente | 0x0001 - 0x02 | 0x0001 - 0x02 | 0x0001 - 0x02 | testsende22_transparent.py | testrecve22_transparent.py |
| P2P fixo | 0x0001 - 0x02 | 0x0003 - 0x04 | 0x0003 - 0x04 | testsende22_p2p.py | testrecve22_p2p.py |
| transmissão fixa | 0x0001 - 0x02 | 0x0003 - 0x04 | 0xffff - 0x04 | testsende22_broadcast.py | testrecve22_broadcast.py |
| monitor fixo | 0x0001 - 0x02 | 0xffff - 0x04 | 0x0003 - 0x04 | testsende22_monitor.py | testrecve22_monitor.py |
Cada nó envia uma mensagem em um intervalo fixo contendo um valor de controle de LED de acordo com o estado de um botão.
Depois, ele verifica as mensagens recebidas. Se uma mensagem com valor de controle de LED estiver disponível, o LED será alterado de acordo.
O modo de transmissão (Endereço/Config do canal) para o nó local e o nó do par pode ser definido conforme desejado nas matrizes Addr e Chan .
O código de node0.py e node1.py é idêntico, exceto pelas configurações das variáveis Me e Peer .
| Node0 | Node1 |
|---|---|
| node0.py | node1.py |
O transmissor Lora envia uma string contendo seu ID do chip e um número de sequência de mensagens em um intervalo fixo.
O receptor LORA imprime/logs <Tearstamp>, <Trititude>, <longitude>, <tititude>, <rssi> em um intervalo predefinido.
A posição do receptor e um registro de data e hora são decodificados das mensagens NMEA recebidas via UART de um receptor GPS. Para esse fim, os micropygps são usados.
Se disponível, as mensagens LORA recebidas são recebidas do módulo EBYTEE22 LORA Transceiver através de outro UART. Se as mensagens esperadas do transmissor LORA não puderam ser recebidas por um certo tempo, é assumido um valor RSSI de -255 dBm, indicando perda do link de rádio Lora.
A tupla <Tearstamp>, <Tratitude>, <ongitude>, <tititude>, <rssi> é impressa e opcionalmente gravada em um arquivo de log somente se uma posição válida estiver disponível.
Se o registro estiver ativado, um nome de arquivo no formato log_ <8_random_hex_digits _>. CSV será criado após a potência ou redefinição. Os arquivos de log são gravados no sistema de arquivos internos da Micropython. O registro deve ser interrompido explicitamente pressionando uma tecla, caso contrário, o arquivo não poderá ser fechado corretamente e será corrompido/vazio.
Dois LEDs indicam o estado da correção do GPS e do link LORA, respectivamente.
| Nó do transmissor | Nó do receptor |
|---|---|
| lora_tx.py | lora_rssi_logger.py |
Os arquivos de log podem ser convertidos do formato CSV em um formato adequado - como GPX ou KML - no host posteriormente. Consulte RSSI_CSV_TO_KML.PY - O arquivo de saída KML fornece o valor RSSI como dados estendidos a serem exibidos com o gráfico de elevação no GoogleEarth. (Uso: rssi_csv_to_kml.py log_deadbeef.csv >log_deadbeef.kml )
Nota: O gráfico serve apenas como um exemplo - o intervalo de registro deveria ter sido mais curto e a estratégia de registro foi modificada posteriormente.