LORA-RF Python ist eine Bibliothek für grundlegende Übertragungs- und Empfangsdaten unter Verwendung des LORA-Moduls mit SemTech SX126X-Serie, SX127X-Serie oder LLCC68. Die Bibliothek arbeitet durch Schnittstellen von SPI -Port und einigen GPIO -Stiften unter Linux -Kernel. Unterstützen Sie die Konfiguration von Frequenz-, Modulationsparametern, Übertragungsleistung, Empfangsverstärkung und andere RF -Parameter sowohl für die LORA- als auch für die FSK -Modulation unterstützen auch den Umgang mit dem Übertrag und Empfangen mit Interrupt -Signal.
Diese Readme ist für den Schnellstarthandbuch geschrieben. Besuchen Sie diesen Link für vollständige Dokumentation.
Theoritisch alle Lora -Module unter Verwendung der SX126X -Serie (SX1261, SX1262, SX1268), SX127X -Serie (SX1272, SX1276, SX1277, SX1278, SX1279) oder LLCC68 mit dieser Bibliothek. Einige LORA -Modul, die bereits getestet und bestätigt wurden, sind:
Derzeit werden nur Raspberry Pi Zero, Null W, 3A, 3B, 3B+, 4A und 4B als Host -Controller unterstützt. Die Unterstützung eines anderen Einzelbrettcomputers wird in Zukunft hinzugefügt. Die bereits mit dieser Bibliothek getestete Linux -Distribution ist:
Um eine Verbindung zu einem LORA -Modul herzustellen, muss der SPI -Port aktiviert sein. Für das Raspberry Pi-Betriebssystem erfolgt dies durch Set SPI-Schnittstelle mithilfe von Raspi-config oder edit /boot/config.txt durch Hinzufügen der folgenden Zeile.
dtparam=spi=onVerwenden von terminaler Ausführung folgendem Befehl.
pip3 install LoRaRFUm das neueste Update der Bibliothek zu verwenden, können Sie klonen und dann das Python -Paket manuell erstellen. Mit dieser Methode erfordern Setuptools und Radmodul.
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 Um mit der Bibliothek zu arbeiten, müssen Sie zunächst SX126x oder SX127x -Python -Modul je nach LORA -Modul importieren. Initialisieren Sie dann das Modul, indem Sie ein Objekt erstellen.
# for SX126x series or LLCC68
from LoRaRF import SX126x
LoRa = SX126x ()
# for SX127x series
from LoRaRF import SX127x
LoRa = SX127x () Vor dem Aufrufen von Konfigurationsmethoden, dem Übertragung oder Empfangen müssen Sie die Methode begin() aufrufen.
LoRa . begin () Stecknadeln, SPI -Stifte, RESET und BUSY Stifte müssen zwischen Host -Controller und LORA -Modul verbunden sein. Wenn Sie den Interrupt -Betrieb verwenden möchten, können Sie einen von DIO1 , DIO2 oder DIO3 PIN anschließen. Sie sollten auch TXEN und RXEN -Stifte anschließen, wenn Ihr LORA -Modul diese Stifte hat.
Der Standard -SPI -Anschluss verwendet die Bus -ID 0 und CS ID 0.
| Semtech SX126X | Semtech SX127X | Raspberry Pi |
|---|---|---|
| VCC | VCC | 3.3 V |
| GND | GND | GND |
| Sck | Sck | GPIO 11 |
| Miso | Miso | GPIO 9 |
| Mosi | Mosi | GPIO 10 |
| NSS | NSS | GPIO 8 |
| ZURÜCKSETZEN | ZURÜCKSETZEN | GPIO 22 |
| BESCHÄFTIGT | GPIO 23 | |
| DIO1 | DIO1 | -1 (nicht genutzt) |
| Txen | Txen | -1 (nicht genutzt) |
| Rxen | Rxen | -1 (nicht genutzt) |
So konfigurieren Sie die SPI -Port- oder SPI -Frequenz -Aufruf setSPI() -Methode vor 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 () So konfigurieren Sie E/A -Stifte (NSS, Reset, Beschäftigte, IRQ, TXEN, RXEN PIN) CALL setPins() Vor begin() -Methode.
# set RESET->22, BUSY->23, DIO1->26, TXEN->5, RXEN->25
LoRa . setPins ( 22 , 23 , 26 , 5 , 25 )
LoRa . begin ()Vor dem Übertragung oder Empfangsvorgang können Sie die Übertragungsleistung konfigurieren und Verstärkungsfrequenz, Modulationsparameter, Paketparameter und Word mit einem anderen LORA -Gerät synchronisieren, das Sie kommunizieren möchten.
# 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 ) Sendenbetrieb beginnen mit dem Aufruf von beginPacket() Methode nach write() -Methode zum Schreiben von Paket, das mit dem Aufruf von endPacket() -Methoden zu schreiben und beendet wird. Zum Beispiel "Helora World!" Nachricht und ein Inkrement -Zähler Sie können den folgenden Code verwenden.