Módulo Node.js para interactuar con los módulos inalámbricos RFM9X Lora. Destinado a usar con los gorros de radio Adafruit.
El código solo se ha probado en Raspberry Pi, pero técnicamente también podría trabajar en otros tableros compatibles con Onoff y SPI-Device.
Consulte example/pingpong.js para obtener un ejemplo simple de recibir y enviar datos.
Los módulos exportan una sola clase RFM9x .
RFM9xClase que representa el módulo Lora. El constructor no requiere argumentos.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - Output SPI Información de depuración debug Establezca esta propiedad en true para imprimir toda la comunicación SPI en la consola.
Nota: Porque las llamadas console.log() son síncronas en la mayoría de las circunstancias, ¡habilitando esto puede afectar el momento! Por ejemplo, podría causar cambiar de enviar al modo de recepción como lo suficientemente lento como para perder las respuestas de otros nodos.
init(options) - Inicializar el módulo y la configuración de LorastartReceive() : coloque el módulo Lora en modo de recepción y habilite el evento receivestopReceive() - Pon el módulo Lora en modo de espera y deje de recibir paquetessend(payload) - Enviar un paquete a través de LoragetVersion() - Obtenga el número de versión de chip del módulo init(options)options - Opciones Objeto (ver más abajo). Todas las propiedades son opcionales, los valores predeterminados se utilizarán cuando se omitan.Inicializar la configuración del módulo y lora. Debe llamarse antes de usar cualquiera de las funciones de radio.
Devuelve una promesa que se resuelve sin valor.
Se admiten las siguientes opciones:
frequencyMhz - frecuencia base en MHz, predeterminado: 915preambleLength - longitud del preámbulo lora en bytes, predeterminado: 8bandwidthHz - ancho de banda de Lora en HZ, predeterminado: 500000codingRate - Lora, los valores válidos son 5 (4/5) a 8 (4/8), predeterminado: 5spreadingFactor - Factor de dispersión de lora, los valores válidos son de 6 a 12 , predeterminado: 7enableCrcChecking : si habilita la verificación de CRC en los paquetes entrantes, predeterminado: falsetxPowerDb - Potencia del transmisor En DB, los valores válidos son de 5 a 23 (actualmente solo se admite el modo de alta potencia), predeterminado: 23enableAgc : si habilita el control automático de ganancias, predeterminado: falseresetPin - Número del pin GPIO al que está conectado la línea de reinicio RFM9X, predeterminado: 25dio0Pin - Número del pin GPIO al que está conectado la línea RFM9X DIO0, predeterminada: 22dio1Pin : no se usa actualmente. Número del pin GPIO al que está conectado la línea RFM9X DIO1, predeterminada: 23dio2Pin : no se usa actualmente. Número del pin GPIO al que está conectado la línea RFM9X DIO2, predeterminada: 24spiSpeedHz - Velocidad de la comunicación SPI en HZ, predeterminado: 100000txTimeoutMs - tiempo máximo en milisegundos para esperar a que finalice una transmisión de paquetes, predeterminado: 2000 startReceive() Coloque el módulo Lora en modo de recepción y habilite el evento receive .
Devuelve una promesa que se resuelve sin valor.
stopReceive()Coloque el módulo Lora en modo de espera y deje de recibir paquetes.
Devuelve una promesa que se resuelve sin valor.
send(payload)payload : un Buffer de hasta 255 bytesEnvía un paquete a través de Lora.
Devuelve una promesa que se resuelve sin valor después de que se termine la transmisión.
Nota: Después de transmitir un paquete, el módulo cambia automáticamente al modo de espera. Si desea continuar recibiendo paquetes después de una transmisión, deberá llamar startReceive() después de que se completara la transmisión.
getVersion()Obtenga el número de versión de chip del módulo.
Devuelve una promesa que se resuelve con el número de versión (entero de un byte).
receive(packet) - emitido cuando se ha recibido un paquete LorareceiveError() - emitido cuando se ha recibido un paquete de Lora inválido receive(packet)Evento que se emite cuando se recibe un paquete Lora.
packet es un objeto que contiene las siguientes propiedades:
payload : un Buffer que contiene el contenido del paqueterssiDb - RSSI del paquete en DBsnrDb - SNR del paquete en DB receiveError()Evento que se emite cuando se recibe un paquete Lora pero se descartó debido a recibir errores (por ejemplo, falló en cheque CRC).