Module Node.js pour interfacer avec les modules sans fil RFM9X LORA. Destiné à être utilisé avec Adafruit Radio Bonnets.
Le code n'a été testé que sur Raspberry Pi, mais pourrait techniquement fonctionner sur d'autres conseils soutenus par OOFF et SPI-Device.
Voir example/pingpong.js pour un exemple simple de réception et d'envoi de données.
Les modules exportent une seule classe RFM9x .
RFM9xClasse représentant le module LORA. Le constructeur ne nécessite aucun argument.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - Informations sur le débogage SPI de sortie debug Définissez cette propriété sur true pour obtenir toute la communication SPI imprimée sur la console.
Remarque: Parce que console.log() Les appels sont synchrones dans la plupart des cas, permettant à cela peut avoir un impact sur le timing! Par exemple, cela peut entraîner le passage de l'envoi vers le mode de réception pour être suffisamment lent pour manquer les réponses des autres nœuds.
init(options) - Initialiser le module et les paramètres LORAstartReceive() - Mettez le module LORA en mode de réception et activez l'événement receivestopReceive() - Mettez le module LORA en mode veille et arrêtez de recevoir des paquetssend(payload) - Envoyer un paquet via LoragetVersion() - Obtenez le numéro de version de la puce à partir du module init(options)options - Objet Options (voir ci-dessous). Toutes les propriétés sont facultatives, les valeurs par défaut seront utilisées lorsqu'elles seront omises.Initialisez les paramètres du module et LORA. Doit être appelé avant d'utiliser l'une des fonctions radio.
Renvoie une promesse qui résout sans valeur.
Les options suivantes sont prises en charge:
frequencyMhz - fréquence de base en MHz, par défaut: 915preambleLength - Lora Longue de préambule en octets, par défaut: 8bandwidthHz - Lora Bandwidth in Hz, par défaut: 500000codingRate - Taux de codage LORA, les valeurs valides sont 5 (4/5) à 8 (4/8), par défaut: 5spreadingFactor - Facteur de propagation LORA, les valeurs valides sont de 6 à 12 , par défaut: 7enableCrcChecking - s'il faut activer la vérification du CRC sur les paquets entrants, par défaut: falsetxPowerDb - Power de l'émetteur en dB, les valeurs valides sont de 5 à 23 (actuellement seul le mode de puissance est pris en charge), par défaut: 23enableAgc - s'il faut permettre le contrôle automatique du gain, par défaut: falseresetPin - Numéro de la broche GPIO à laquelle la ligne de réinitialisation RFM9X est connectée, par défaut: 25dio0Pin - Nombre de la broche GPIO à laquelle la ligne RFM9X Dio0 est connectée, par défaut: 22dio1Pin - pas actuellement utilisé. Numéro de la broche GPIO à laquelle la ligne RFM9X Dio1 est connectée, par défaut: 23dio2Pin - non utilisé actuellement. Numéro de la broche GPIO à laquelle la ligne RFM9X Dio2 est connectée, par défaut: 24spiSpeedHz - Vitesse de la communication SPI en Hz, par défaut: 100000txTimeoutMs - Temps maximum en millisecondes pour attendre qu'une transmission de paquets se termine, par défaut: 2000 startReceive() Mettez le module LORA en mode de réception et activez l'événement receive .
Renvoie une promesse qui résout sans valeur.
stopReceive()Mettez le module LORA en mode veille et arrêtez de recevoir des paquets.
Renvoie une promesse qui résout sans valeur.
send(payload)payload - un Buffer allant jusqu'à 255 octetsEnvoyez un paquet via Lora.
Renvoie une promesse qui se résout sans valeur une fois la transmission terminée.
Remarque: Après avoir transmis un paquet, le module passe automatiquement en mode veille. Si vous souhaitez continuer à recevoir des paquets après une transmission, vous devrez appeler startReceive() une fois la transmission terminée.
getVersion()Obtenez le numéro de version de la puce à partir du module.
Renvoie une promesse qui se résout avec le numéro de version (entier à un octet).
receive(packet) - émis lorsqu'un paquet Lora a été reçureceiveError() - émis lorsqu'un paquet Lora non valide a été reçu receive(packet)Événement émis lorsqu'un paquet LORA est reçu.
packet est un objet contenant les propriétés suivantes:
payload - un Buffer contenant le contenu des paquetsrssiDb - RSSI du paquet en DBsnrDb - SNR du paquet en dB receiveError()L'événement qui est émis lorsqu'un paquet LORA est reçu mais qui a été rejeté en raison des erreurs (par exemple, le chèque CRC a échoué).