node rfm9x
v1.0.1
Node.js模塊與RFM9X LORA無線模塊接口。旨在與Adafruit Radio引擎蓋一起使用。
該代碼僅在Raspberry Pi上進行了測試,但從技術上講,該代碼也可以在ONOFF和SPI設備支持的其他董事會上工作。
有關接收和發送數據的簡單示例,請參見example/pingpong.js 。
這些模塊導出一個類RFM9x 。
RFM9x代表Lora模塊的類。構造函數不需要爭論。
const rfm9x = require ( 'rfm9x' ) ;
const module = new rfm9x ( ) ;
await module . init ( { ... } ) ;debug - 輸出SPI調試信息debug將此屬性設置為true ,以將所有SPI通信打印到控制台。
注意:因為在大多數情況下, console.log()呼叫是同步的,因此可以影響時間!例如,這可能導致從發送到接收模式的切換足夠慢,可以錯過其他節點的響應。
init(options) - 初始化模塊和洛拉設置startReceive() - 將Lora模塊置於接收模式並啟用receive事件stopReceive() - 將洛拉模塊放在待機模式下,然後停止接收數據包send(payload) - 通過lora發送數據包getVersion() - 從模塊獲取芯片版本號init(options)options - 選項對象(請參見下文)。所有屬性都是可選的,當省略時將使用默認值。初始化模塊和LORA設置。在使用任何無線電功能之前,需要調用。
返回沒有價值的諾言。
支持以下選項:
frequencyMhz MHz中的基本頻率,默認值: 915preambleLength -lora preambenth在字節中的長度,默認值: 8bandwidthHz HZ中的洛拉帶寬,默認值: 500000codingRate -lora編碼率,有效值為5 (4/5)至8 (4/8),默認值: 5spreadingFactor factor -lora擴展因子,有效值為6至12 ,默認值: 7enableCrcChecking是否啟用CRC檢查傳入數據包,默認值: falsetxPowerDb db中的發射器功率,有效值為5至23 (目前僅支持高功率模式),默認值: 23enableAgc是否啟用自動增益控制,默認值: falseresetPin RFM9X RESET線連接到的GPIO PIN的數量,默認值: 25dio0Pin rfm9x dio0系列連接到的GPIO PIN的數量,默認值: 22dio1Pin目前未使用。 RFM9X DIO1系列連接到的GPIO PIN的數量,默認值: 23dio2Pin目前未使用。 RFM9X DIO2系列連接到的GPIO PIN的數量,默認值: 24spiSpeedHz HZ中SPI通信的速度,默認值: 100000txTimeoutMs最大時間以毫秒為等待數據包傳輸完成,默認值: 2000 startReceive()將LORA模塊置於接收模式,並啟用receive事件。
返回沒有價值的諾言。
stopReceive()將Lora模塊放在待機模式下,並停止接收數據包。
返回沒有價值的諾言。
send(payload)payload - 最多255個字節的Buffer通過洛拉發送包裝。
返回一個諾言,該諾言在傳輸完成後沒有價值而沒有價值。
注意:傳輸數據包後,模塊會自動切換到備用模式。如果要在傳輸後繼續接收數據包,則需要在完成變速箱後致電startReceive() 。
getVersion()從模塊獲取芯片版本號。
返回一個通過版本編號(單字體整數)解決的承諾。
receive(packet) - 收到Lora數據包時發射receiveError()到無效的Lora包裝時發射receive(packet)收到洛拉數據包時發出的事件。
packet是包含以下屬性的對象:
payload - 包含數據包內容的BufferrssiDb -DB中的數據包RSSIsnrDb數據包中的SNR receiveError()當收到Lora數據包但由於收到錯誤而被丟棄的事件(例如CRC檢查失敗)。