Lora-RF Python adalah perpustakaan untuk memindahkan dan menerima data dasar menggunakan modul LORA dengan seri semtech SX126X, seri SX127X, atau LLCC68. Perpustakaan bekerja dengan menghubungkan port SPI dan beberapa pin GPIO di bawah kernel Linux. Dukungan Mengkonfigurasi Frekuensi, Parameter Modulasi, Power Transmit, menerima Gain dan parameter RF lainnya pada modulasi LORA dan FSK juga mendukung penanganan penanganan dan menerima menggunakan sinyal interupsi.
Readme ini ditulis untuk Panduan Mulai Cepat. Kunjungi tautan ini untuk dokumentasi lengkap.
Secara teoritis semua modul LORA menggunakan seri SX126X (SX1261, SX1262, SX1268), SX127X Series (SX1272, SX1276, SX1277, SX1278, SX1279), atau LLCC68 akan mengompatibel. Beberapa modul Lora yang sudah diuji dan dikonfirmasi kompatibel adalah:
Saat ini hanya Raspberry Pi Zero, Zero W, 3A, 3B, 3B+, 4A, dan 4B didukung sebagai pengontrol host. Dukungan untuk komputer papan tunggal lainnya akan ditambahkan di masa mendatang. Distro Linux yang sudah diuji menggunakan pustaka ini adalah:
Untuk terhubung ke modul LORA, port SPI harus diaktifkan. Untuk raspberry pi os, ini dilakukan dengan mengatur antarmuka SPI mengaktifkan menggunakan raspi-config atau edit /boot/config.txt dengan menambahkan baris berikut.
dtparam=spi=onMenggunakan terminal menjalankan perintah berikut.
pip3 install LoRaRFUntuk menggunakan pembaruan perpustakaan terbaru, Anda dapat mengkloning kemudian membangun paket Python secara manual. Menggunakan metode ini memerlukan setuptools dan modul roda.
git clone https://github.com/chandrawi/LoRaRF-Python.git
cd LoRaRF-Python
python3 setup.py bdist_wheel
pip3 install dist/LoRaRF-1.4.0-py3-none-any.whlpython -m venv lora
source lora/bin/activate
pip install LoRaRF Untuk bekerja dengan perpustakaan, pertama -tama Anda harus mengimpor modul python SX126x atau SX127x tergantung pada modul LORA yang Anda gunakan. Kemudian inisialisasi modul dengan membuat objek.
# for SX126x series or LLCC68
from LoRaRF import SX126x
LoRa = SX126x ()
# for SX127x series
from LoRaRF import SX127x
LoRa = SX127x () Sebelum memanggil metode konfigurasi apa pun, melakukan operasi pengiriman atau menerima, Anda harus memanggil metode begin() .
LoRa . begin () Pin listrik, pin SPI, RESET , dan pin BUSY harus dihubungkan antara pengontrol host dan modul LORA. Jika Anda ingin menggunakan operasi interupsi, Anda dapat menghubungkan salah satu pin DIO1 , DIO2 , atau DIO3 . Anda juga harus menghubungkan pin TXEN dan RXEN jika modul LORA Anda memiliki pin itu.
Port SPI default menggunakan ID Bus 0 dan CS ID 0. Pin GPIO default yang digunakan untuk menghubungkan ke SX126X dan SX127X dengan penomoran pin Broadcom adalah sebagai berikut.
| Semtech SX126X | Semtech SX127X | Raspberry Pi |
|---|---|---|
| Vcc | Vcc | 3.3v |
| Gnd | Gnd | Gnd |
| Sck | Sck | GPIO 11 |
| Miso | Miso | GPIO 9 |
| Mosi | Mosi | GPIO 10 |
| NSS | NSS | GPIO 8 |
| MENGATUR ULANG | MENGATUR ULANG | GPIO 22 |
| SIBUK | GPIO 23 | |
| Dio1 | Dio1 | -1 (tidak digunakan) |
| Txen | Txen | -1 (tidak digunakan) |
| Rxen | Rxen | -1 (tidak digunakan) |
Untuk mengonfigurasi metode port SPI atau frekuensi SPI setSPI() sebelum metode begin() .
# set to use SPI with bus id 0 and cs id 1 and speed 7.8 Mhz
LoRa . setSPI ( 0 , 0 , 7800000 )
LoRa . begin () Untuk mengonfigurasi pin I/O (NSS, Reset, Sibuk, IRQ, TXEN, PIN RXEN) Metode panggilan setPins() sebelum begin() .
# set RESET->22, BUSY->23, DIO1->26, TXEN->5, RXEN->25
LoRa . setPins ( 22 , 23 , 26 , 5 , 25 )
LoRa . begin ()Sebelum mengirimkan atau menerima operasi, Anda dapat mengkonfigurasi daya transmisi dan menerima gain atau frekuensi pencocokan, parameter modulasi, parameter paket, dan menyinkronkan kata dengan perangkat LORA lain yang ingin Anda komunikasikan.
# set transmit power to +22 dBm for SX1262
LoRa . setTxPower ( 22 , LoRa . TX_POWER_SX1262 ) # set receive gain to power saving
LoRa . setRxGain ( LoRa . RX_GAIN_POWER_SAVING ) # Set frequency to 915 Mhz
LoRa . setFrequency ( 915000000 ) # set spreading factor 8, bandwidth 125 kHz, coding rate 4/5, and low data rate optimization off
LoRa . setLoRaModulation ( 8 , 125000 , 5 , False ) # set explicit header mode, preamble length 12, payload length 15, CRC on and no invert IQ operation
LoRa . setLoRaPacket ( LoRa . HEADER_EXPLICIT , 12 , 15 , true , False ) # Set syncronize word for public network (0x3444)
LoRa . setSyncWord ( 0x3444 ) Metode Operasi Transmit Mulai Dengan Memanggil Metode beginPacket() Mengikuti oleh write() Metode untuk Menulis Paket yang akan ditulis dan diakhiri dengan metode panggilan endPacket() . Misalnya, untuk mengirimkan "Dunia Helora!" Pesan dan penghitung kenaikan Anda dapat menggunakan kode berikut.