Lora-RF Python是使用Semtech SX126X系列,SX127X系列或LLCC68的Lora模塊的基本傳輸和接收數據的庫。該圖書館通過將SPI端口和Linux內核下的一些GPIO引腳連接起來。支持配置頻率,調製參數,傳輸功率,接收增益和其他RF參數在LORA和FSK調製上也支持使用中斷信號處理和接收。
此讀數是為快速入門指南編寫的。訪問此鏈接以獲取完整的文檔。
從理論上講,使用SX126X系列(SX1261,SX1262,SX1268),SX127X系列(SX1272,SX1272,SX1276,SX1277,SX1277,SX1277,SX1278,SX1278,SX1279),或LLCC68將使用此庫將使用此庫。一些已經測試和確認兼容的LORA模塊是:
目前,僅支持作為主機控制器支持的Raspberry Pi零,零W,3A,3B,3B,3B+,4A和4B。將來將添加對其他單板計算機的支持。已經使用此庫測試的Linux發行版是:
為了連接到LORA模塊,必須啟用SPI端口。對於Raspberry Pi OS,這是通過使用Raspi-Config或Edit /boot/config.txt啟用的SET SPI接口來完成的,通過添加以下行。
dtparam=spi=on使用終端運行以下命令。
pip3 install LoRaRF要使用庫的最新更新,您可以克隆,然後手動構建Python軟件包。使用這種方法需要setuptools和車輪模塊。
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要與圖書館合作,首先必鬚根據使用的Lora模塊導入SX126x或SX127x Python模塊。然後通過創建對像初始化模塊。
# for SX126x series or LLCC68
from LoRaRF import SX126x
LoRa = SX126x ()
# for SX127x series
from LoRaRF import SX127x
LoRa = SX127x ()在調用任何配置方法之前,進行傳輸或接收操作,必須調用begin()方法。
LoRa . begin ()必須在主機控制器和洛拉模塊之間連接動力引腳,SPI引腳, RESET和BUSY引腳。如果要使用中斷操作,則可以連接DIO1 , DIO2或DIO3引腳之一。如果您的Lora模塊有這些引腳,則還應連接TXEN和RXEN引腳。
默認的SPI端口使用總線ID 0和CS ID 0。用於連接到SX126X和帶有Broadcom Pin編號的SX126X和SX127X的默認GPIO引腳如下。
| Semtech SX126X | Semtech SX127X | 覆盆子pi |
|---|---|---|
| VCC | VCC | 3.3V |
| gnd | gnd | gnd |
| SCK | SCK | GPIO 11 |
| 味o | 味o | GPIO 9 |
| 莫西 | 莫西 | GPIO 10 |
| NSS | NSS | GPIO 8 |
| 重置 | 重置 | GPIO 22 |
| 忙碌的 | GPIO 23 | |
| dio1 | dio1 | -1(未使用) |
| txen | txen | -1(未使用) |
| rxen | rxen | -1(未使用) |
在begin()方法之前,要配置SPI端口或SPI頻率調用setSPI()方法。
# set to use SPI with bus id 0 and cs id 1 and speed 7.8 Mhz
LoRa . setSPI ( 0 , 0 , 7800000 )
LoRa . begin ()要配置I/O引腳(NSS,RESET,忙,IRQ,TXEN,RXEN PIN)呼叫setPins()之前begin()方法。
# set RESET->22, BUSY->23, DIO1->26, TXEN->5, RXEN->25
LoRa . setPins ( 22 , 23 , 26 , 5 , 25 )
LoRa . begin ()在發送或接收操作之前,您可以配置傳輸電源並接收增益或匹配頻率,調製參數,數據包參數,並與您想要通信的其他Lora設備同步Word。
# 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 )傳輸操作從呼叫beginPacket()方法以write()方法來寫入包,以將其tansmtmmitemant()方法用Cally endPacket()方法結束。例如,傳輸“ Helora World!”消息和增量計數器您可以使用以下代碼。