sx127x node driver
1.0.0
SEMTECH SX1276/77/78/79 기반 LORA 라디오 용 Node.js 드라이버.
Node-SX127X를 기반으로 @fivdi의 onoff 및 SPI-Device 모듈 위에 구축되었습니다.
dtparam=spi=on /boot/config.txt| SEMTECH SX1276/77/78/79 | 일반 리눅스 | 라즈베리 파이 |
|---|---|---|
| VCC | 3.3v | 3.3v |
| Gnd | Gnd | Gnd |
| SCK | SCK | SCK (핀 11) |
| 된장 | 된장 | 된장 (핀 10) |
| 모시 | 모시 | 모시 (핀 9) |
| NSS | 칩 활성화/선택 | CS0 (핀 8) 또는 CS1 (핀 7) |
| nreset | GPIO 핀 | GPIO 핀 |
| DIO0 | GPIO 핀 | GPIO 핀 |
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 핀 재설정 핀 수 |
dio0Pin | 25 | GPIO 핀 DIO0 핀 번호 |
frequency | 915e6 | HZ의 라디오 주파수, 지원되는 값은 SetFrequency를 참조하십시오 (칩이 선택한 주파수를 지원하는지 확인하십시오) |
spreadingFactor | 7 | 라디오의 확산 계수, 지원되는 값은 SetSpreadingFactor를 참조하십시오 (확산 계수는 직교적이므로 한 칩에서 다른 칩으로 통신 할 때 일치해야합니다) |
signalBandwidth | 125E3 | HZ에서 라디오의 신호 대역폭, 지원되는 값은 SetSignalBandWidth 참조 |
codingRate | 4 / 5 | 라디오의 코딩 속도, 지원되는 값은 SetCodingRate를 참조하십시오 |
preambleLength | 8 | 라디오의 서문 길이는 지원되는 값에 대해서는 SetPreamBlelenger를 참조하십시오 |
syncWord | 0x12 | 라디오 동기화, 지원되는 값은 setsyncword를 참조하십시오 |
txPower | 17 | 라디오의 TX Power, 지원되는 값은 SettxPower를 참조하십시오 |
crc | false | CRC 사용을 활성화 또는 비활성화합니다 |
tempCompensationFactor | false | 섭씨 도의 온도 측정에 대한 보상 계수 (+- 일부도) |
debug | false | 디버그 출력을 활성화 / 비활성화합니다 |
invertIqReg | false | Open () 호출시 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의 주파수 ( 433E6 , 866E6 , 915E6 )라디오의 확산 계수를 변경하십시오.
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 . 지원되는 값은 7.8E3 , 10.4E3 , 15.6E3 , 20.8E3 , 31.25E3 , 41.7E3 , 62.5E3 , 125E3 , 250E3 및 500E3 입니다.
라디오의 코딩 속도를 변경하십시오.
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 동기화 단어로 사용할 바이트 값, 기본값 0x34CRC 사용을 활성화 또는 비활성화, 기본적으로 CRC를 사용하지 않습니다.
try {
await sx127x . setCrc ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
}crc true , false 사용하여 비활성화 할 수 있습니다 광대역 RSSI 측정을 기반으로 랜덤 바이트를 생성하십시오.
try {
let random = await sx127x . readRandom ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
} 예제 폴더를 참조하십시오.
이 라이브러리는 MIT 라이센스에 따라 라이센스가 부여됩니다.