Módulo Node.js para interface com módulos sem fio RFM9X LORA. Destinado ao uso com capôs de rádio Adafruit.
O código só foi testado no Raspberry Pi, mas tecnicamente também poderia funcionar em outras placas suportadas pela ONOFF e SPI-DEVICE.
Consulte example/pingpong.js para um exemplo simples de receber e enviar dados.
Os módulos exportam uma única classe RFM9x .
RFM9xClasse representando o módulo Lora. O construtor não requer argumentos.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - Informações de depuração SPI de saída debug Defina esta propriedade como true para tirar toda a comunicação SPI no console.
Nota: Como as chamadas console.log() são síncronas na maioria das circunstâncias, permitindo que isso possa afetar o tempo! Por exemplo, isso pode fazer com que a mudança do envio para o modo de recebimento seja lenta o suficiente para perder as respostas de outros nós.
init(options) - Inicialize as configurações do módulo e LorastartReceive() - Coloque o módulo Lora no modo de recebimento e habilite o evento receivestopReceive() - Coloque o módulo Lora no modo de espera e pare de receber pacotessend(payload) - Envie um pacote via LoragetVersion() - Obtenha o número da versão do chip do módulo init(options)options - Objeto de opções (veja abaixo). Todas as propriedades são opcionais, os valores padrão serão usados quando omitidos.Inicialize as configurações do módulo e Lora. Precisa ser chamado antes de usar qualquer uma das funções de rádio.
Retorna uma promessa que resolve sem valor.
As seguintes opções são suportadas:
frequencyMhz - Frequência de base em MHz, Padrão: 915preambleLength - comprimento do preâmbulo da Lora em bytes, padrão: 8bandwidthHz - Lora de banda Lara em Hz, Padrão: 500000codingRate - Taxa de codificação Lora, valores válidos são 5 (4/5) a 8 (4/8), Padrão: 5spreadingFactor - Lora Fator Spreading, valores válidos são de 6 a 12 , padrão: 7enableCrcChecking - Se deve permitir a verificação de CRC em pacotes de entrada, padrão: falsetxPowerDb - Poder do transmissor em dB, valores válidos são de 5 a 23 (atualmente apenas o modo de alta potência é suportado), padrão: 23enableAgc - Se deve habilitar o controle de ganho automático, padrão: falseresetPin - Número do pino GPIO ao qual a linha de redefinição RFM9X está conectada, padrão: 25dio0Pin - Número do pino GPIO ao qual a linha RFM9X DIO0 está conectada, padrão: 22dio1Pin - atualmente não usado. Número do pino GPIO ao qual a linha RFM9X DIO1 está conectada, padrão: 23dio2Pin - atualmente não usado. Número do pino GPIO ao qual a linha RFM9X DIO2 está conectada, padrão: 24spiSpeedHz - Velocidade da comunicação SPI em Hz, Padrão: 100000txTimeoutMs - Tempo máximo em milissegundos para aguardar uma transmissão de pacotes para terminar, padrão: 2000 startReceive() Coloque o módulo Lora no modo de recebimento e ative o evento receive .
Retorna uma promessa que resolve sem valor.
stopReceive()Coloque o módulo Lora no modo de espera e pare de receber pacotes.
Retorna uma promessa que resolve sem valor.
send(payload)payload - um Buffer de até 255 bytesEnvie um pacote via Lora.
Retorna uma promessa que resolve sem valor após o término da transmissão.
Nota: Depois de transmitir um pacote, o módulo muda para o modo de espera automaticamente. Se você quiser continuar recebendo pacotes após uma transmissão, precisará ligar para startReceive() após a transmissão concluída.
getVersion()Obtenha o número da versão chip do módulo.
Retorna uma promessa que resolve com o número da versão (número inteiro de um byte).
receive(packet) - emitido quando um pacote Lora foi recebidoreceiveError() - Emitido quando um pacote Lora inválido foi recebido receive(packet)Evento que é emitido quando um pacote Lora é recebido.
packet é um objeto que contém as seguintes propriedades:
payload - um Buffer que contém o conteúdo do pacoterssiDb - rssi do pacote em dBsnrDb - SNR do pacote em dB receiveError()O evento que é emitido quando um pacote Lora é recebido, mas foi descartado devido a erros de receber (por exemplo, falha na verificação do CRC).