LORA-RF Python est une bibliothèque pour les données de transmission et de réception de base à l'aide du module LORA avec série SEMTECH SX126X, série SX127X ou LLCC68. La bibliothèque fonctionne en interfaçant le port SPI et quelques broches GPIO sous le noyau Linux. Prise en charge de la configuration de la fréquence, du paramètre de modulation, de la puissance de transmission, du gain de réception et d'autres paramètres RF sur la modulation LORA et FSK prend également en charge la transmission et la réception de la manipulation en utilisant le signal d'interruption.
Cette lecture est écrite pour le guide de démarrage rapide. Visitez ce lien pour une documentation complète.
Théoriquement, tous les modules LORA utilisant la série SX126X (SX1261, SX1262, SX1268), SX127X (SX1272, SX1276, SX1277, SX1278, SX1279), ou LLCC68 seront compatibles en utilisant cette bibliothèque. Certains modules LORA qui ont déjà testé et confirmé sont compatibles sont:
Actuellement, seul Raspberry Pi Zero, Zero W, 3A, 3B, 3B +, 4A et 4B a pris en charge le contrôleur hôte. La prise en charge d'un autre ordinateur à carte unique sera ajoutée à l'avenir. La distribution Linux déjà testée à l'aide de cette bibliothèque est:
Afin de se connecter à un module LORA, le port SPI doit être activé. Pour Raspberry Pi OS, cela se fait par Set SPI Interface Active en utilisant RasPi-Config ou Edit /boot/config.txt en ajoutant la ligne suivante.
dtparam=spi=onUtilisation de la commande Terminal Run suivante.
pip3 install LoRaRFPour utiliser la dernière mise à jour de la bibliothèque, vous pouvez cloner puis créer un package Python manuellement. L'utilisation de cette méthode nécessite un module Setuptools et 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 Pour travailler avec la bibliothèque, vous devez d'abord importer le module Python SX126x ou SX127x en fonction du module LORA que vous utilisez. Puis initialisez le module en créant un objet.
# for SX126x series or LLCC68
from LoRaRF import SX126x
LoRa = SX126x ()
# for SX127x series
from LoRaRF import SX127x
LoRa = SX127x () Avant d'appeler des méthodes de configuration, en effectuant une opération de transmission ou de réception, vous devez appeler la méthode begin() .
LoRa . begin () Les broches d'alimentation, les broches SPI, RESET et les épingles BUSY doivent être connectées entre le contrôleur hôte et le module LORA. Si vous souhaitez utiliser le fonctionnement de l'interruption, vous pouvez connecter l'une des broches DIO1 , DIO2 ou DIO3 . Vous devez également connecter des broches TXEN et RXEN si votre module LORA a ces broches.
Le port SPI par défaut utilise l'ID BUS 0 et CS ID 0. Les broches GPIO par défaut utilisées pour se connecter à SX126X et SX127X avec la numérotation des broches Broadcom sont les suivantes.
| 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 |
| RÉINITIALISER | RÉINITIALISER | GPIO 22 |
| OCCUPÉ | GPIO 23 | |
| Dio1 | Dio1 | -1 (inutilisé) |
| Txen | Txen | -1 (inutilisé) |
| Rxen | Rxen | -1 (inutilisé) |
Pour configurer la méthode SPI Port ou SPI Frequency Call setSPI() Avant begin() Méthode.
# set to use SPI with bus id 0 and cs id 1 and speed 7.8 Mhz
LoRa . setSPI ( 0 , 0 , 7800000 )
LoRa . begin () Pour configurer les broches d'E / S (NSS, Reset, Busy, IRQ, TXEN, RXEN PIN) appelez setPins() avant begin() Méthode.
# set RESET->22, BUSY->23, DIO1->26, TXEN->5, RXEN->25
LoRa . setPins ( 22 , 23 , 26 , 5 , 25 )
LoRa . begin ()Avant la transmission ou la réception de l'opération, vous pouvez configurer la puissance de transmission et recevoir un gain ou une fréquence de correspondance, un paramètre de modulation, un paramètre de paquet et synchroniser le mot avec un autre appareil LORA que vous souhaitez communiquer.
# 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 ) L'opération de transmission commence par l'appel beginPacket() suivant par la méthode write() pour écrire le package à packer et s'est terminé par la méthode d'appel endPacket() . Par exemple, transmettre "Helora World!" Message et compteur d'incrément, vous pouvez utiliser le code suivant.