Node.js Modul zur Schnittstelle mit RFM9X Lora Wireless Module. Für die Verwendung mit Adafruit -Radio -Bonnets vorgesehen.
Der Code wurde nur auf Raspberry Pi getestet, könnte aber technisch auch in anderen von Onoff und Spi-Geräte unterstützten Boards arbeiten.
In example/pingpong.js finden Sie ein einfaches Beispiel für das Empfangen und Senden von Daten.
Die Module exportiert eine einzelne Klasse RFM9x .
RFM9xKlasse, die das LORA -Modul darstellt. Der Konstruktor benötigt keine Argumente.
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - Ausgabe SPI -Debug -Informationen debug Setzen Sie diese Eigenschaft auf true , um alle SPI -Kommunikation in die Konsole auszudrucken.
HINWEIS: Da console.log() Anrufe in den meisten Umständen synchron sind und dies ermöglichen, kann dies das Timing beeinflussen! Zum Beispiel kann dies dazu führen, dass das Wechsel vom Senden in den Empfangsmodus so langsam genug ist, um Antworten von anderen Knoten zu verpassen.
init(options) - Einstellungen für Modul- und LORA -Einstellungen initialisierenstartReceive() - Setzen Sie das LORA -Modul in den Empfangsmodus und aktivieren Sie das receivestopReceive() - Legen Sie das Lora -Modul in den Standby -Modus ein und empfangen Sie Pakete aufsend(payload) - Senden Sie ein Paket über LORAgetVersion() - Holen Sie sich die Chip -Versionsnummer aus dem Modul init(options)options - Optionsobjekt (siehe unten). Alle Eigenschaften sind optional, Standardwerte werden beim Ausließen verwendet.Initialisieren Sie Modul- und Lora -Einstellungen. Muss aufgerufen werden, bevor die Funkfunktionen verwendet werden.
Gibt ein Versprechen zurück, das ohne Wert auflöst.
Die folgenden Optionen werden unterstützt:
frequencyMhz - Basisfrequenz in MHz, Standard: 915preambleLength - Lora Präambellänge in Bytes, Standard: 8bandwidthHz - Lora Bandbreite in Hz, Standard: 500000codingRate - LORA -Codierungsrate, gültige Werte betragen 5 (4/5) bis 8 (4/8), Standard: 5spreadingFactor - LORA -Spreading -Faktor, gültige Werte sind 6 bis 12 , Standard: 7enableCrcChecking - Ob die CRC -Überprüfung der eingehenden Pakete aktiviert werden soll, Standard: falsetxPowerDb - Senderleistung in DB, gültige Werte betragen 5 bis 23 (derzeit wird nur ein hoher Power -Modus unterstützt), Standard: 23enableAgc - ob automatische Verstärkungssteuerung aktiviert werden soll, Standardeinstellung: falseresetPin - Anzahl des GPIO -Pin, an den die RFM9X -Reset -Linie angeschlossen ist, Standard: 25dio0Pin - Anzahl des GPIO -Pin, an den die RFM9X -DIO0 -Zeile angeschlossen ist, Standardeinstellung: 22dio1Pin - derzeit nicht verwendet. Anzahl der GPIO -Pin, an die die RFM9X DIO1 -Zeile angeschlossen ist, Standardeinstellung: 23dio2Pin - Derzeit nicht verwendet. Anzahl des GPIO -Pin, an den die RFM9X -DIO2 -Zeile angeschlossen ist, Standardeinstellung: 24spiSpeedHz - Geschwindigkeit der SPI -Kommunikation in Hz, Standard: 100000txTimeoutMs - Maximale Zeit in Millisekunden, um auf eine Paketübertragung zu warten, Standardeinstellung: 2000 startReceive() Setzen Sie das LORA -Modul in den Empfangsmodus und aktivieren Sie das receive .
Gibt ein Versprechen zurück, das ohne Wert auflöst.
stopReceive()Setzen Sie das LORA -Modul in den Standby -Modus und hören Sie auf, Pakete zu empfangen.
Gibt ein Versprechen zurück, das ohne Wert auflöst.
send(payload)payload - ein Buffer von bis zu 255 BytesSenden Sie ein Paket über Lora.
Gibt ein Versprechen zurück, das nach Abschluss des Getriebes ohne Wert auflöst.
Hinweis: Nach dem Übertragen eines Pakets wechselt das Modul automatisch in den Standby -Modus. Wenn Sie nach einer Übertragung weiterhin Pakete empfangen möchten, müssen Sie startReceive() nach Abschluss des Getriebes anrufen.
getVersion()Holen Sie sich die Chip -Versionsnummer aus dem Modul.
Gibt ein Versprechen zurück, das mit der Versionsnummer (One-Byte Integer) auflöst.
receive(packet) - ausgestrahlt, wenn ein Lora -Paket eingegangen istreceiveError() - ausgestrahlt, wenn ein ungültiges Lora -Paket empfangen wurde receive(packet)Ereignis, das ausstrahlt, wenn ein Lora -Paket empfangen wird.
packet ist ein Objekt, das die folgenden Eigenschaften enthält:
payload - ein Buffer , der den Paketinhalt enthältrssiDb - rssi des Pakets in DBsnrDb - SNR des Pakets in DB receiveError()Ereignis, das ausstrahlt, wenn ein LORA -Paket empfangen wird, wurde jedoch aufgrund von Empfangsfehlern verworfen (z. B. CRC -Scheck fehlgeschlagen).