

Ici, un exemple de constructeur, vous devez passer l'interface UART et (si vous le souhaitez, mais il est recommandé) la broche AUX, M0 et M1.
Pour installer la bibliothèque, exécutez la commande suivante:
pip install ebyte-lora-e32-rpi from lora_e32 import LoRaE32
import serial
loraSerial = serial . Serial ( '/dev/serial0' ) #, baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
lora = LoRaE32 ( '433T20D' , loraSerial , aux_pin = 18 , m0_pin = 23 , m1_pin = 24 ) code = lora . begin ()
print ( ResponseStatusCode . get_description ( code )) from lora_e32 import LoRaE32 , print_configuration , Configuration
from lora_e32_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )Le résultat
----------------------------------------
HEAD : 0b11000000 192
AddH : 0
AddL : 2
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionTrans : 0b1 -> Fixed transmission (first three bytes can be used a
s high/low address and channel)
OptionPullup : 0b1 -> TXD, RXD, AUX are push-pulls/pull-ups (default)
OptionWakeup : 0b0 -> 250ms (default)
OptionFEC : 0b1 -> Turn on Forward Error Correction Switch (Default)
OptionPower : 0b0 -> 20dBm (Default)
----------------------------------------
configuration_to_set = Configuration ( '433T20D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . OPTION . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
code , confSetted = lora . set_configuration ( configuration_to_set )L'objet de configuration a beaucoup de paramètres.
class Configuration :
class Speed :
def __init__ ( self , model ):
self . model = model
self . airDataRate = AirDataRate . AIR_DATA_RATE_010_24
self . uartBaudRate = UARTBaudRate . BPS_9600
self . uartParity = UARTParity . MODE_00_8N1
class Option :
def __init__ ( self , model ):
self . model = model
self . transmissionPower = TransmissionPower ( self . model ). get_transmission_power (). get_default_value ()
self . fec = ForwardErrorCorrectionSwitch . FEC_1_ON
self . wirelessWakeupTime = WirelessWakeUpTime . WAKE_UP_250
self . ioDriveMode = IODriveMode . PUSH_PULLS_PULL_UPS
self . fixedTransmission = FixedTransmission . TRANSPARENT_TRANSMISSION
class Configuration :
def __init__ ( self , model ):
self . HEAD = 0
self . ADDH = 0
self . ADDL = 0
self . SPED = Speed ( model )
self . CHAN = 23
self . OPTION = Option ( model )Je crée une classe de constantes pour chaque paramètre, ici une liste: AirDatarate, Uartbaudrate, UartParity, Transmissionpower, ForwardErrorCorrectionSwitch, WirelesswakeUptime, iodriveMode, FixedTransmission
Ici un exemple d'envoi de données, vous pouvez passer une chaîne
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )Ici, le code du récepteur
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
time . sleep ( 2 )Résultat
Success!
pippo
Ici un exemple d'envoi de données, vous pouvez passer un dictionnaire
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })Ici, le code du récepteur
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
time . sleep ( 2 )Résultat
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
Je crée une bibliothèque pour gérer la série EBYTE E32 de l'appareil LORA, un appareil très puissant, simple et bon marché.
Lora E32-TTL-100
Vous pouvez trouver ici AliExpress (appareil 3 km) AliExpress (appareil 8 km)
Ils peuvent travailler sur une distance de 3000 m à 8000 m, et ils ont beaucoup de fonctionnalités et de paramètres.
Je crée donc cette bibliothèque pour simplifier l'utilisation.
Veuillez vous référer à mon article pour obtenir un schéma mis à jour
Vous pouvez trouver ma bibliothèque ici.
Pour télécharger.
Cliquez sur le bouton Téléchargement dans le coin supérieur droit, renommez le dossier non compressé LORA_E32.
Vérifiez que le dossier LORA_E32 contient LORA_E32.CPP et LORA_E32.H.
Placez le dossier de bibliothèque LORA_E32 votre / les bibliothèques / dossier.
Vous devrez peut-être créer le sous-dossier des bibliothèques si c'est votre première bibliothèque.
Redémarrez l'IDE.
E32 TTL 100
Vous pouvez acheter ici AliExpress
| PIN N ° | Épingle | Direction | Application PIN |
|---|---|---|---|
| 1 | M0 | Entrée (Pull-up faible) | Travailler avec M1 et décider les quatre modes de fonctionnement.La le travail n'est pas autorisé, peut être broyé. |
| 2 | M1 | Entrée (Pull-up faible) | Travailler avec M0 et décider les quatre modes de fonctionnement. Le flottement n'est pas autorisé, peut être broyé. |
| 3 | Rxd | Saisir | Entrées TTL UART, se connecte à la sortie TXD externe (MCU, PC). Peut être configuré comme entrée à drain ouvert ou à pull-up. |
| 4 | Txd | Sortir | Sorties TTL UART, se connecte à RXD externe (MCU, PC) InputPin. Peut être configuré comme sortie de drain ouvert ou push-pull |
| 5 | Aux | Sortir | Pour indiquer l'état de travail du module et réveille le MCU externe. Pendant la procédure d'initialisation de l'auto-vérification, la PIN sort un niveau bas. Peut être configuré en tant que sortie Orpush-pull de sortie (flottante est autorisée). |
| 6 | VCC | Alimentation 2,3 V ~ 5,5 V CC | |
| 7 | GND | Sol | Comme vous pouvez le voir, vous pouvez définir divers modes via des broches M0 et M1. |
| Mode | M1 | M0 | Explication |
|---|---|---|---|
| Normale | 0 | 0 | UART et le canal sans fil sont bons à partir |
| Secouer | 0 | 1 | Identique à la normale, mais un code de préambule est ajouté aux données transmises pour réveiller le récepteur. |
| Salant | 1 | 0 | L'UART est désactivé et le sans fil est en mode WOR (Wake on Radio), ce qui signifie que l'appareil s'allume lorsqu'il y a des données à recevoir. La transmission n'est pas autorisée. |
| Dormir | 1 | 1 | Utilisé dans le réglage des paramètres. Transmission et réception handicapée. |
Comme vous pouvez le voir, il existe des broches qui peuvent être utilisées de manière statique, mais si vous la connectez à la bibliothèque, vous gagnez en performances et vous pouvez contrôler tout le mode via le logiciel, mais nous allons mieux expliquer ensuite.
Comme je le dis déjà, il n'est pas important de connecter toute la broche à la sortie du microcontrôleur, vous pouvez mettre des broches M0 et M1 à une configuration à haut ou basse pour obtenir une configuration de dessider, et si vous ne connectez pas AUX, la bibliothèque définit un délai raisonnable pour être sûr que l'opération est terminée .
Lors de la transmission de données, des données peuvent être utilisées pour réveiller le MCU externe et retourner haut sur la finition de transfert de données.
LORA E32 AUX PIN SUR LE TRANSMISSION
Lors de la réception de Aux, devenu bas et de revenir haut lorsque le tampon est vide.
Lora E32 Aux Pin à la réception
Il est également utilisé pour l'auto-vérification pour restaurer le fonctionnement normal (en mode Power-On et Sleep / Program).
LORA E32 AUX PIN sur l'auto-vérification
Le schéma de connexion ESP8266 est plus simple car il fonctionne à la même tension de communications logiques (3,3 V).
LORA E32 TTL 100 WEMOS D1 entièrement connecté
Il est important d'ajouter une résistance de traction (4,7kehm) pour obtenir une bonne stabilité.
| M0 | D7 |
|---|---|
| M1 | D6 |
| Rx | Broche D2 (pullup 4,7KΩ) |
| TX | Broche D3 (pullup 4,7KΩ) |
| Aux | D5 (entrée) |
| 3.3 V | GND |
La tension de travail Arduino est 5V, nous devons donc ajouter un diviseur de tension sur RX PIN M0 et M1 du module LORA pour éviter les dommages, vous pouvez obtenir plus d'informations ici Divider de tension: calculatrice et application.
Vous pouvez utiliser une résistance de 2 kohm à GND et 1 kohm du signal que réunie sur RX.
LORA E32 TTL 100 Arduino entièrement connecté
| M0 | 7 (diviseur de tension) |
|---|---|
| M1 | 6 (diviseur de tension) |
| Rx | PIN D2 (Pullup 4,7KΩ et diviseur de tension) |
| TX | Broche D3 (pullup 4,7KΩ) |
| Aux | 5 (entrée) |
| VCC | 3.3 V |
| GND | GND |
| Addition | Octet d'adresse élevé du module (la valeur par défaut 00h) | 00H-FFH |
|---|---|---|
| Addl | Byte d'adresse faible du module (la par défaut 00h) | 00H-FFH |
| Vomir | Informations sur le bit de parité de données et le débit de données aérien | Chan |
| Canal de communication (410m + chan * 1m), par défaut 17H (433 MHz), valide uniquement pour le périphérique 433 MHz | 00h-1fh |
|---|
OPTION
Type de transmission, paramètres de traction, temps de réveil, FEC, puissance de transmission
Bit de parité UART: le mode _uart peut être différent entre les parties de communication
| 7 | 6 | Bit de parité UART | Valeur const | | --- | --- | --- | --- | --- | | 0 | 0 | 8n1 (par défaut) | mode_00_8n1 | | 0 | 1 | 8O1 | MODE_01_8O1 | | 1 | 0 | 8 E1 | MODE_10_8E1 | | 1 | 1 | 8n1 (égal à 00) | mode_11_8n1 |
Taux UART BAUD: le taux de bauds UART peut être différent entre les parties de communication, le taux de bauds UART n'a rien à voir avec les paramètres de transmission sans fil et n'affectera pas les fonctionnalités de transmission / réception sans fil.
| 5 | 43 | TTL UART BAUD TAUX (BPS) | Valeur constante |
|---|---|---|---|
| 0 | 0 | 0 | 1200 |
| 0 | 0 | 1 | 2400 |
| 0 | 1 | 0 | 4800 |
| 0 | 1 | 1 | 9600 (par défaut) |
| 1 | 0 | 0 | 19200 |
| 1 | 0 | 1 | 38400 |
| 1 | 1 | 0 | 57600 |
| 1 | 1 | 1 | 115200 |
Débit de données de l'air: plus le débit de données de l'air est faible, plus la distance de transmission, de meilleures performances anti-interférence et le temps de transmission plus long, le débit de données de l'air doit conserver la même chose pour les deux parties de communication.
| 2 | 1 | 0 | Taux de données de l'air (BPS) | Valeur constante |
|---|---|---|---|---|
| 0 | 0 | 0 | 0,3k | AIR_DATA_RATE_000_03 |
| 0 | 0 | 1 | 1,2k | AIR_DATA_RATE_001_12 |
| 0 | 1 | 0 | 2.4k (par défaut) | AIR_DATA_RATE_010_24 |
| 0 | 1 | 1 | 4.8k | AIR_DATA_RATE_011_48 |
| 1 | 0 | 0 | 9,6k | AIR_DATA_RATE_100_96 |
| 1 | 0 | 1 | 19.2k | Air_data_rate_101_192 |
| 1 | 1 | 0 | 19,2k (identique à 101) | AIR_DATA_RATE_110_192 |
| 1 | 1 | 1 | 19,2k (identique à 101) | AIR_DATA_RATE_111_192 |
Mode de transmission: En mode de transmission fixe, les trois premiers octets de la trame de données de chaque utilisateur peuvent être utilisés comme adresse et canal élevé / bas. Le module modifie son adresse et son canal lors de la transmission. Et il reviendra au paramètre d'origine après avoir terminé le processus.
| 7 | Bit d'activation de la transmission fixe (similaire à modbus) | Valeur constante |
|---|---|---|
| 0 | Mode de transmission transparente | Ft_transparent_transmission |
| 1 | Mode de transmission fixe | Ft_fixed_transmission |
Mode de lecteur IO: ce bit est utilisé à la résistance de traction interne du module. Il augmente également l'adaptabilité du niveau en cas de drain ouvert. Mais dans certains cas, il peut nécessiter un traction externe
résistance.
| 6 | Mode de lecteur IO (par défaut 1) | Valeur constante |
|---|---|---|
| 1 | Sorties Push-Pull TXD et AUX, entrées RXD | Io_d_mode_push_pulls_pull_ups |
| 0 | TXD 、 Sorties à collecteur ouvert AUX, entrées de collecteur ouvert RXD | IO_D_MODE_OPEN_COLLECTOR |
Temps de réveil sans fil: le module de transmission et de réception fonctionne dans le mode 0, dont le temps de retard n'est pas valide et peut être une valeur arbitraire, l'émetteur fonctionne dans le mode 1 peut transmettre le code de préambule du temps correspondant en continu, lorsque le récepteur fonctionne dans le mode 2, le temps signifie l'intervalle de moniteur (réveil sans fil). Seules les données de l'émetteur qui fonctionnent dans le mode 1 peuvent être
reçu.
| 5 | 4 | 3 | temps de réveil sans fil | Valeur constante |
|---|---|---|---|---|
| 0 | 0 | 0 | 250 ms (par défaut) | Wake_up_250 |
| 0 | 0 | 1 | 500 ms | Wake_up_500 |
| 0 | 1 | 0 | 750 ms | Wake_up_750 |
| 0 | 1 | 1 | 1000 ms | Wake_up_1000 |
| 1 | 0 | 0 | 1250 ms | Wake_up_1250 |
| 1 | 0 | 1 | 1500 ms | Wake_up_1500 |
| 1 | 1 | 0 | 1750 ms | Wake_up_1750 |
| 1 | 1 | 1 | 2000 ms | Wake_up_2000 |
FEC: Après avoir désactivé la FEC, le taux de transmission des données réel augmente tandis que la capacité anti-interférence diminue. De plus, la distance de transmission est relativement courte, les deux parties de communication doivent conserver les mêmes pages sur la FEC d'activation ou de désactivation.
| 2 | Interrupteur FEC | Valeur constante |
|---|---|---|
| 0 | Éteindre la FEC | Fec_0_off |
| 1 | Allumez la FEC (par défaut) | Fec_1_on |
Puissance de transmission
Vous pouvez modifier cet ensemble de constante en appliquant une définition comme tel:
Applicable pour E32-TTL-100, E32-TTL-100S1, E32-T100S2.
La puissance externe doit s'assurer que la capacité de la puissance de courant supérieure à 250 mA et assurer l'alimentation de l'alimentation se répercute à 100 mV.
Une transmission à faible puissance n'est pas recommandée en raison de sa faible alimentation
efficacité.
| 1 | 0 | Puissance de transmission (approximation) | Valeur constante |
|---|---|---|---|
| 0 | 0 | 20 dbm (par défaut) | Power_20 |
| 0 | 1 | 17 dbm | Power_17 |
| 1 | 0 | 14 dbm | Power_14 |
| 1 | 1 | 10 dbm | Power_10 |
Applicable pour E32-TTL-500。
La puissance externe doit s'assurer que la capacité de la sortie de courant supérieure à 700 mm et assurer l'alimentation de l'alimentation à moins de 100 mV.
Une faible transmission de puissance n'est pas recommandée en raison de sa faible efficacité d'alimentation électrique.
| 1 | 0 | Puissance de transmission (approximation) | Valeur constante |
|---|---|---|---|
| 0 | 0 | 27dbm (par défaut) | Power_27 |
| 0 | 1 | 24 dbm | Power_24 |
| 1 | 0 | 21 dbm | Power_21 |
| 1 | 1 | 18 dbm | Power_18 |
Applicable pour E32-TTL-1W, E32 (433T30S), E32 (868T30S), E32 (915T30S)
La puissance externe doit s'assurer que la capacité de la sortie de courant supérieure à 1a et assurer l'alimentation de l'alimentation à moins de 100 mV.
Une transmission à faible puissance n'est pas recommandée en raison de sa faible alimentation
efficacité.
| 1 | 0 | Puissance de transmission (approximation) | Valeur constante |
|---|---|---|---|
| 0 | 0 | 30 dBm (par défaut) | Power_30 |
| 0 | 1 | 27 dbm | Power_27 |
| 1 | 0 | 24 dbm | Power_24 |
| 1 | 1 | 21 dbm | Power_21 |
Vous pouvez configurer la fréquence des canaux OLSO avec cette définition:
Le mode de transmission normal / transparent est utilisé pour envoyer des messages à tous les appareils avec la même adresse et le même canal.
LORA E32 Transmission Scénarios, les lignes sont des canaux
À la même manière, je crée un ensemble de méthode à utiliser avec une transmission fixe
Vous devez ne modifier que la méthode d'envoi, car le périphérique de destination ne reçoit pas le préambule avec l'adresse et le canal.
La transmission fixe a plus de scénarios