Ces codes ont été collectés dans un autre référentiel afin d'améliorer son utilisation, de sorte que le seul script qui est géré en librairie loraría.py sera amélioré au fil du temps. Référence: https://github.com/lemariva/upylora
Dans le référentiel, vous pouvez trouver:
Codes: contient tous les scripts utilisés pour utiliser la puce SX1276
Conf_lora.py
contrôleur.py
Contrôleur_esp32.py
Esp32lora.bin
Sx127x.py
Lora.py
Dont nous nous concentrons est celui de lora.py qui a la classe avec ses méthodes, facilitant l'utilisation de la puce. Dans ce cas, il a été spécifié que la fréquence utilisée est de 915 MHz, configurée dans le fichier sx127x.py , au cas où une fréquence différente serait souhaitée, il est nécessaire qu'il soit modifié dans le script, puis le retour doit former le .bin ou simplement entrer les scripts nécessaires dans l'ESP.
Exemples: Il contient des exemples sur la façon dont la classe doit être utilisée, pour envoyer et recevoir des données, en plus du téléchargement de données sur un service Web tel que Ubidots.
Ce fichier a principalement été créé pour être spécifié instantanément en tant que LORA, qui aura toutes les méthodes nécessaires pour envoyer et recevoir du code. Les broches qui sont utilisées pour la communication avec la puce LORA sont les mêmes spécifiées dans la documentation Heltec et TTGO qui font des plaques de développement avec le microcontrôleur ESP32 en ajoutant une puce SX127X avec antenne. Ensuite, vous trouverez comment utiliser la librairie avec vos méthodes:
Le script contient LORA qui est une classe pour initialiser l'utilisation de la puce SX127X. Il peut être initialisé comme suit:
from lora import LoRa
lora = LoRa ()
#si se desea un filtrado de los mensajes
lora = LoRa ( header = 'header' )En plus de la réception des données périodiques qui sont gérées avec la méthode wait_msg (), une période peut être spécifiée, de sorte qu'après l'arrivée d'un message, spécifiez combien de temps vous souhaitez passer jusqu'à ce que vous en recevez un nouveau, comme suit:
#sin header
lora = LoRa ( period = 2 )
#con header
lora = LoRa ( header = 'header' , period = 2 )Il s'agit de la méthode spécifiée pour envoyer des données, de sorte que le premier paramètre est de spécifier que les données doivent être envoyées et la seconde au cas où vous souhaitez envoyer avec un en-tête spécifique.
#sin header especifico
lora . send ( 'hola' )
#con header especifico
lora . send ( 'hola' , spheader = 'headersp' )Les variables d'un en-tête spécifique ont été ajoutées au cas où il serait nécessaire d'envoyer un message avec un en-tête différent ou spécifique.
Comme un objet de MQTT pour un abonnement, nous utilisons le même concept pour les rappels, de sorte qu'une fois l'objet de Lora établi, il est spécifié que la fonction est vouée être exécutée lorsqu'un message arrive:
#cb corresponde al nombre de la funcion usada como callback
#que debe tener como parametro una variable que sera el mensaje
lora . set_callback ( cb ) lora . wait_msg ()Une fois notre rappel déjà spécifié, Wait_MSG est responsable des messages entrants et que notre rappel est exécuté en arrière-plan. Dans le cas où lors de l'instantifage de la classe LORA, une valeur pour la variable de période est spécifiée, une fois qu'un message est reçu, le temps spécifié sera de passer (en quelques secondes) afin qu'un autre message soit accepté.
lora . receive_msg ()Semblable à wait_msg () est responsable de la réception d'un message à un moment précis, une seule fois et un rappel est exécuté lorsque le message arrive.
Upylora par Steven Silva est sous licence Creative Commons Recognition-Compartyrigal 4.0 International.
Créé à partir des travaux sur https://github.com/lemariva/upylora.