sx127x node driver
1.0.0
SEMTECH SX1276/77/78/79的Node.js驅動程序。
基於Node-SX127X,建立在 @Fivdi的Onoff和SPI-Device模塊的頂部。
dtparam=spi=on /boot/config.txt上| Semtech SX1276/77/78/79 | 通用Linux | 覆盆子pi |
|---|---|---|
| VCC | 3.3V | 3.3V |
| gnd | gnd | gnd |
| SCK | SCK | SCK(引腳11) |
| 味o | 味o | 味o(引腳10) |
| 莫西 | 莫西 | Mosi(引腳9) |
| NSS | 芯片啟用/選擇 | CS0(引腳8)或CS1(引腳7) |
| nReset | GPIO PIN | GPIO PIN |
| dio0 | GPIO PIN | GPIO PIN |
npm install sx127x-driver let SX127x = require ( 'sx127x-driver' ) ;
let options = {
// ...
} ;
let sx127x = new SX127x ( options ) ;支持的選項:
| 姓名 | 預設 | 描述 |
|---|---|---|
spiBus | 0 | 使用SPI巴士 |
spiDevice | 0 | SPI芯片選擇/啟用 |
resetPin | 24 | GPIO PIN重置PIN的數量 |
dio0Pin | 25 | GPIO PIN DIO0 PIN的數量 |
frequency | 915e6 | 無線電的頻率在Hz中,請參見SetFquency以獲得支持的值(請確保您的芯片支持您選擇的頻率) |
spreadingFactor | 7 | 無線電的傳播因素,有關支持值的SetSpreadingFactor(傳播因素是正交的) |
signalBandwidth | 125E3 | 無線電的信號帶寬,有關支持的值,請參見SetSignAlbandWidth |
codingRate | 4 / 5 | 無線電編碼率,有關支持的值,請參見SetCodingrate |
preambleLength | 8 | 無線電的序言長度,有關支持的值,請參見SetPreambletength |
syncWord | 0x12 | 廣播的同步單詞,有關支持的值,請參見SetSyncword |
txPower | 17 | 收音機的TX功率,有關支持的值,請參見SettXPower |
crc | false | 啟用或禁用CRC使用 |
tempCompensationFactor | false | 溫度測量值的補償因子(+ - 一些度) |
debug | false | 啟用 /禁用調試輸出 |
invertIqReg | false | 反轉iq登記在呼叫打開() |
打開並配置設備:
try {
await sx127x . open ( ) ;
} catch ( err ) {
console . log ( 'Failure to open device: ' + err )
}關閉設備:
try {
await sx127x . close ( ) ;
} catch ( err ) {
console . log ( 'Close failure: ' + err ) ;
process . exit ( ) ;
} try {
await sx127x . write ( new Buffer ( 'hello ' + count ++ ) ) ;
console . log ( "successfully sent" )
} catch ( err ) {
console . log ( 'Fail to send: ' + err ) ;
} try {
let packetLength = await sx127x . receiveSingle ( ) ;
if ( packetLength > 0 ) {
let incoming = "" ;
while ( await sx127x . available ( ) ) {
incoming += String . fromCharCode ( await sx127x . read ( ) ) ;
}
}
} catch ( err ) {
console . log ( 'Fail to receive: ' + err ) ;
} try {
await sx127x . open ( ) ;
await sx127x . setContinuousReceiveMode ( ) ;
} catch ( err ) {
console . log ( 'Fail to put into continuous receive mode: ' + err )
}
sx127x . on ( 'data' , function ( data , rssi , snr ) {
console . log ( 'data: ' + data . toString ( ) + ", rssi: " + rssi ) ;
} ) ;將收音機處於睡眠模式。
try {
await sx127x . sleep ( ) ;
} catch ( err ) {
console . log ( 'Fail to put into sleep mode: ' + err ) ;
}按模式將收音機站立。
try {
await sx127x . standBy ( ) ;
} catch ( err ) {
console . log ( 'Fail to put into stand by: ' + err ) ;
} 更改收音機的TX功率。
try {
await sx127x . setTxPower ( txPower ) ;
} catch ( err ) {
console . log ( err ) ;
}txPower -DB中的TX功率,默認為17支持的值在2到17之間。
更改收音機的頻率。
try {
await sx127x . setFrequency ( frequency ) ;
} catch ( err ) {
console . log ( err ) ;
}frequency - Hz中915E6頻率866E6 433E6 )改變無線電的擴散因子。
try {
await sx127x . setSpreadingFactor ( spreadingFactor ) ;
} catch ( err ) {
console . log ( err ) ;
}spreadingFactor - 擴散因子,默認為7支持的值在6到12之間。如果設置了6擴展因子,則必須使用隱式標頭模式來發送和接收數據包。
更改無線電的信號帶寬。
try {
await sx127x . setSignalBandwidth ( signalBandwidth ) ;
} catch ( err ) {
console . log ( err ) ;
}signalBandwidth - Hz中的信號帶寬,默認為125E3 。 15.6E3 10.4E3 20.8E3 7.8E3 41.7E3 62.5E3 31.25E3
更改收音機的編碼率。
try {
await sx127x . setCodingRate ( codingRate ) ;
} catch ( err ) {
console . log ( err ) ;
}codingRate - 編碼率,默認為4/5支持的值為4/5 4/6 4/7和4/8 。
更改收音機的序言長度。
try {
await sx127x . setPreambleLength ( preambleLength ) ;
} catch ( err ) {
console . log ( err ) ;
}preambleLength - 符號中的序言長度,默認為8支持的值在6至65535之間。
更改收音機的同步單詞。
try {
await sx127x . setSyncWord ( syncWord ) ;
} catch ( err ) {
console . log ( err ) ;
}syncWord字節值用作同步單詞,默認為0x34啟用或禁用CRC使用情況,默認情況下不使用CRC。
try {
await sx127x . setCrc ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
}crc true啟用CRC, false禁用基於寬帶RSSI測量,生成一個隨機字節。
try {
let random = await sx127x . readRandom ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
} 請參閱示例文件夾。
該圖書館已獲得MIT許可證的許可。