Driver Node.js untuk Semtech SX1276/77/78/79 Radio Lora Berbasis.
Berdasarkan Node-SX127X, dibangun di atas modul Onoff dan SPI-Device @FIVDI.
dtparam=spi=on in /boot/config.txt| Semtech SX1276/77/78/79 | Linux generik | Raspberry Pi |
|---|---|---|
| Vcc | 3.3v | 3.3v |
| Gnd | Gnd | Gnd |
| Sck | Sck | Sck (pin 11) |
| Miso | Miso | Miso (pin 10) |
| Mosi | Mosi | Mosi (pin 9) |
| NSS | Chip mengaktifkan/memilih | CS0 (pin 8) atau CS1 (pin 7) |
| Nreset | Pin gpio | Pin gpio |
| Dio0 | Pin gpio | Pin gpio |
npm install sx127x-driver let SX127x = require ( 'sx127x-driver' ) ;
let options = {
// ...
} ;
let sx127x = new SX127x ( options ) ;Opsi yang Didukung:
| Nama | Bawaan | Keterangan |
|---|---|---|
spiBus | 0 | Bus spi untuk digunakan |
spiDevice | 0 | SPI Chip Pilih/Mengaktifkan untuk digunakan |
resetPin | 24 | Jumlah pin pin gpio pin reset |
dio0Pin | 25 | Jumlah pin GPIO dari pin Dio0 |
frequency | 915e6 | Frekuensi radio di HZ, lihat SetFrekuensi untuk nilai yang didukung (pastikan chip Anda mendukung frekuensi yang Anda pilih) |
spreadingFactor | 7 | Faktor penyebaran radio, lihat SetSpreadingFactor untuk nilai yang didukung (faktor penyebaran adalah ortogonal, jadi pastikan mereka cocok ketika mencoba berkomunikasi dari satu chip ke chip lainnya) |
signalBandwidth | 125E3 | Bandwidth sinyal radio di HZ, lihat setsignalbandwidth untuk nilai yang didukung |
codingRate | 4 / 5 | Tingkat pengkodean radio, lihat setCodingRate untuk nilai yang didukung |
preambleLength | 8 | Panjang pembukaan radio, lihat setPreamBlelength untuk nilai yang didukung |
syncWord | 0x12 | Sinkronisasi kata radio, lihat setSyncword untuk nilai yang didukung |
txPower | 17 | TX Power of Radio, lihat SettXPower untuk nilai yang didukung |
crc | false | Aktifkan atau nonaktifkan penggunaan CRC |
tempCompensationFactor | false | Faktor kompensasi untuk pengukuran suhu dalam derajat Celcius (+- beberapa derajat) |
debug | false | Aktifkan / Nonaktifkan Output Debug |
invertIqReg | false | membalikkan IQ Register on Call to Open () |
Buka dan konfigurasikan perangkat:
try {
await sx127x . open ( ) ;
} catch ( err ) {
console . log ( 'Failure to open device: ' + err )
}Tutup perangkat:
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 ) ;
} ) ;Letakkan radio dalam mode tidur.
try {
await sx127x . sleep ( ) ;
} catch ( err ) {
console . log ( 'Fail to put into sleep mode: ' + err ) ;
}Letakkan radio dalam mode dudukan dengan.
try {
await sx127x . standBy ( ) ;
} catch ( err ) {
console . log ( 'Fail to put into stand by: ' + err ) ;
} Ubah kekuatan TX dari radio.
try {
await sx127x . setTxPower ( txPower ) ;
} catch ( err ) {
console . log ( err ) ;
}txPower - TX Power di DB, default ke 17 Nilai yang didukung adalah antara 2 dan 17 .
Ubah frekuensi radio.
try {
await sx127x . setFrequency ( frequency ) ;
} catch ( err ) {
console . log ( err ) ;
}frequency - Frekuensi dalam Hz ( 433E6 , 866E6 , 915E6 )Ubah faktor penyebaran radio.
try {
await sx127x . setSpreadingFactor ( spreadingFactor ) ;
} catch ( err ) {
console . log ( err ) ;
}spreadingFactor - Faktor penyebaran, default ke 7 Nilai yang didukung adalah antara 6 dan 12 . Jika faktor penyebaran 6 diatur, mode header implisit harus digunakan untuk mengirimkan dan menerima paket.
Ubah bandwidth sinyal radio.
try {
await sx127x . setSignalBandwidth ( signalBandwidth ) ;
} catch ( err ) {
console . log ( err ) ;
}signalBandwidth - Bandwidth Signal di HZ, default ke 125E3 . Nilai yang didukung adalah 7.8E3 , 10.4E3 , 15.6E3 , 20.8E3 , 31.25E3 , 41.7E3 , 62.5E3 , 125E3 , 250E3 dan 500E3 .
Ubah laju pengkodean radio.
try {
await sx127x . setCodingRate ( codingRate ) ;
} catch ( err ) {
console . log ( err ) ;
}codingRate - Tingkat pengkodean, default ke 4/5 Nilai yang didukung adalah 4/5 , 4/6 , 4/7 dan 4/8 .
Ubah panjang pembukaan radio.
try {
await sx127x . setPreambleLength ( preambleLength ) ;
} catch ( err ) {
console . log ( err ) ;
}preambleLength - Panjang Pembukaan dalam Simbol, Default ke 8 Nilai yang didukung adalah antara 6 dan 65535 .
Ubah kata sinkronisasi radio.
try {
await sx127x . setSyncWord ( syncWord ) ;
} catch ( err ) {
console . log ( err ) ;
}syncWord - Nilai byte untuk digunakan sebagai kata sinkronisasi, default ke 0x34Aktifkan atau nonaktifkan penggunaan CRC, secara default CRC tidak digunakan.
try {
await sx127x . setCrc ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
}crc - true untuk mengaktifkan CRC, false untuk menonaktifkan Hasilkan byte acak, berdasarkan pengukuran RSSI wideband.
try {
let random = await sx127x . readRandom ( crc ) ;
} catch ( err ) {
console . log ( err ) ;
} Lihat Folder Contoh.
Perpustakaan ini dilisensikan di bawah lisensi MIT.