LORA-RF Pythonは、SemTech SX126Xシリーズ、SX127Xシリーズ、またはLLCC68を備えたLORAモジュールを使用して、基本的な送信および受信データを受信するためのライブラリです。ライブラリは、SPIポートとLinuxカーネルの下にあるGPIOピンをインターフェースすることで機能します。周波数の構成、変調パラメーター、送信電力、受信ゲイン、およびその他のRFパラメーターの両方でのその他のRFパラメーターも、割り込み信号を使用して送信と受信の処理と受信をサポートします。
このREADMEは、クイックスタートガイド用に書かれています。完全なドキュメントについては、このリンクをご覧ください。
理論的には、SX126Xシリーズ(SX1261、SX1262、SX1268)、SX127Xシリーズ(SX1272、SX1276、SX1277、SX1278、SX1279)、またはLLCC68を使用してLLCK68を使用して、すべてのすべてのLORAモジュールを使用して、この図書館を使用します。既にテストおよび確認された互換性を確認したLORAモジュールは次のとおりです。
現在、Raspberry Pi Zero、Zero W、3a、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とWheelモジュールが必要です。
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は、ホストコントローラーとLORAモジュール間で接続する必要があります。割り込み操作を使用する場合は、 DIO1 、 DIO2 、またはDIO3 PINのいずれかを接続できます。また、Loraモジュールにそれらのピンがある場合は、 TXENおよびRXENピンを接続する必要があります。
デフォルトのSPIポートは、Bus ID 0およびCS ID 0を使用しています。SX126XとSX127Xに接続するために使用されるデフォルトのGPIOピンは、Broadcom PIN番号を使用して次のとおりです。
| Semtech SX126X | Semtech SX127X | Raspberry Pi |
|---|---|---|
| VCC | VCC | 3.3V |
| GND | GND | GND |
| SCK | SCK | GPIO 11 |
| 味噌 | 味噌 | 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、リセット、ビジー、IRQ、TXEN、RXEN PIN)を設定するにはbegin()メソッドの前にsetPins()を呼び出します。
# set RESET->22, BUSY->23, DIO1->26, TXEN->5, RXEN->25
LoRa . setPins ( 22 , 23 , 26 , 5 , 25 )
LoRa . begin ()操作を送信または受信する前に、送信電力を構成し、ゲインまたはマッチング周波数、変調パラメーター、パケットパラメーター、および通信したい他のLORAデバイスと同期することができます。
# 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()メソッドを書き込み、 endPacket()メソッドを呼び出すことで、writeパッケージを書き込み、終了します。たとえば、「Helora World!」を送信するためにメッセージとインクリメントカウンター次のコードを使用できます。