

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-e22-rpi from lora_e22 import LoRaE22
import serial
loraSerial = serial . Serial ( '/dev/serial0' ) #, baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
lora = LoRaE22 ( '400T22D' , loraSerial , aux_pin = 18 , m0_pin = 23 , m1_pin = 24 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e22 import LoRaE22 , print_configuration
from lora_e22_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )Le résultat
# ----------------------------------------
# HEAD : 0xc1 0x0 0x9
#
# AddH : 0x0
# AddL : 0x0
#
# Chan : 23 -> 433
#
# SpeedParityBit : 0b0 -> 8N1 (Default)
# SpeedUARTDatte : 0b11 -> 9600bps (default)
# SpeedAirDataRate : 0b10 -> 2.4kbps (default)
#
# OptionSubPacketSett: 0b0 -> 240bytes (default)
# OptionTranPower : 0b0 -> 22dBm (Default)
# OptionRSSIAmbientNo: 0b0 -> Disabled (default)
#
# TransModeWORPeriod : 0b11 -> 2000ms (default)
# TransModeTransContr: 0b0 -> WOR Receiver (default)
# TransModeEnableLBT : 0b0 -> Disabled (default)
# TransModeEnableRSSI: 0b0 -> Disabled (default)
# TransModeEnabRepeat: 0b0 -> Disabled (default)
# TransModeFixedTrans: 0b0 -> Transparent transmission (default)
# ----------------------------------------
Vous ne pouvez définir que le paramètre desidées, l'autre sera défini sur la valeur par défaut.
configuration_to_set = Configuration ( '400T22D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . ADDH = 0x01
configuration_to_set . CHAN = 23
configuration_to_set . NETID = 0
configuration_to_set . SPED . airDataRate = AirDataRate . AIR_DATA_RATE_100_96
configuration_to_set . SPED . uartParity = UARTParity . MODE_00_8N1
configuration_to_set . SPED . uartBaudRate = UARTBaudRate . BPS_9600
configuration_to_set . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . OPTION . transmissionPower = TransmissionPower ( '400T22D' ).
get_transmission_power (). POWER_10
# or
# configuration_to_set.OPTION.transmissionPower = TransmissionPower22.POWER_10
configuration_to_set . OPTION . RSSIAmbientNoise = RssiAmbientNoiseEnable . RSSI_AMBIENT_NOISE_ENABLED
configuration_to_set . TRANSMISSION_MODE . WORTransceiverControl = WorTransceiverControl . WOR_TRANSMITTER
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
configuration_to_set . TRANSMISSION_MODE . enableRepeater = RepeaterModeEnableByte . REPEATER_DISABLED
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . CRYPT . CRYPT_H = 1
configuration_to_set . CRYPT . CRYPT_L = 1
# Set the new configuration on the LoRa module and print the updated configuration to the console
code , confSetted = lora . set_configuration ( configuration_to_set )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 )Si vous souhaitez recevoir RSSI, vous devez également l'activer dans la configuration
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDet définissez l'indicateur sur true dans la méthode reçoit
code , value , rssi = lora . receive_message ( True )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 )Si vous souhaitez recevoir RSSI, vous devez également l'activer dans la configuration
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDet définir le drapeau sur true dans la méthode reçoit_dict
code , value , rssi = lora . receive_dict ( True )Résultat
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
E22
| 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 | Par indicare lo stato di funzionamento del modulo e riattivare L'Esterno. Durante la procédura di inizilizzazione di autocontrollo, il broche emette una bassa Tensione. Può Essere Configurato Come Uscita Open-Drain o Output Push-Pull (è Consentito Non Metterlo a terra, ma se hai ProblemI, ad eSempio ti Si Freeze il Disitivo è préférée Mettere una Restistenza di Pull-up da 4.7ko Meglio Collegarlo al Dispositivo). |
| 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 ouverts, la transmission transparente est activée (prend en charge la configuration sur l'air via la commande spéciale) |
| Mode wor | 0 | 1 | Peut être défini comme l'émetteur WOR et le récepteur WOR |
| Mode de configuration | 1 | 0 | Les utilisateurs peuvent accéder au registre via le port série pour contrôler l'état de travail du module |
| Mode de sommeil profond | 1 | 1 | Mode de sommeil |
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.
| 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 CHEK ci-dessous pour vérifier la fréquence correcte de votre appareil | 00h-1fh |
| OPTION | Type de transmission, taille de paquet, autoriser un message spécial | |
| Transmission_mode | Beaucoup de paramètres qui spécifient la modalité de transmission |
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
| 4 | 3 | Bit de parité UART | Valeur constante |
| 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.
| 7 | 6 | 5 | TTL UART BAUD TAUX (BPS) | Valeur constante |
| 0 | 0 | 0 | 1200 | UART_BPS_1200 |
| 0 | 0 | 1 | 2400 | UART_BPS_2400 |
| 0 | 1 | 0 | 4800 | UART_BPS_4800 |
| 0 | 1 | 1 | 9600 (par défaut) | UART_BPS_9600 |
| 1 | 0 | 0 | 19200 | UART_BPS_19200 |
| 1 | 0 | 1 | 38400 | UART_BPS_38400 |
| 1 | 1 | 0 | 57600 | UART_BPS_57600 |
| 1 | 1 | 1 | 115200 | UART_BPS_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 | 38,4k | AIR_DATA_RATE_110_384 |
| 1 | 1 | 1 | 62,5k | Air_data_Rate_111_625 |
#### Paramètre de sous-paquet
Ceci est le lanssage maximal du paquet.
Lorsque les données sont plus petites que la longueur de sous-paquet, la sortie série de l'extrémité de réception est une sortie continue ininterrompue. Lorsque les données sont plus grandes que la longueur de sous-paquet, le port de série de réception de fin publiera le sous-paquet.
| 7 | 6 | Paquet | Valeur constante |
| 0 | 0 | 240 bytes (par défaut) | SPS_240_00 |
| 0 | 1 | 128 bytes | SPS_128_01 |
| 1 | 0 | 64 bytes | SPS_064_10 |
| 1 | 1 | 32 bytes | SPS_032_11 |
#### RSSI AMBRIE AMPORT
Cette commande peut activer / désactiver le type de gestion de RSSI, il est important de gérer la configuration distante, faire attention n'est pas le paramètre RSSI dans le message.
Lorsqu'il est activé, la commande C0 C1 C2 C3 peut être envoyée dans le mode de transmission ou le mode de transmission WOR pour lire le registre. Registre 0x00: Rester RSSI Ambient Noise RSSI Current 0x01: RSSI lorsque les données ont été reçues la dernière fois.
| 5 | RSSI AMPORT AMPORT | Valeur constante |
| 0 | Activer | RSSI_AMBIENT_NOISE_ENABLEAD |
| 1 | Désactiver (par défaut) | RSSI_AMBIENT_NOISE_DISABLEAD |
#### Activer RSSI
Lorsqu'il est activé, le module reçoit des données sans fil et elle suivra un octet de résistance RSSI après la sortie via le port série TXD
Type de transmission ####
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.
#### Activer la fonction de répéteur
#### Monitor Données avant la transmission
Lorsqu'ils sont activés, les données sans fil seront surveillées avant leur transmission, ce qui peut éviter les interférences dans une certaine mesure, mais peut entraîner un retard de données.
#### WOR
Émetteur WOR: les fonctions de réception et de transmission du module sont activées et un code de réveil est ajouté lors de la transmission de données. La réception est activée.
Récepteur WOR: Le module n'est pas en mesure de transmettre des données et fonctionne en mode de surveillance WOR. La période de surveillance est la suivante (WOR CYCLE), ce qui peut économiser beaucoup de puissance.
#### Wor Cycle
Si WOR est transmis: après que le récepteur WOR a reçu les données sans fil et les sortira via le port série, il attendra 1000 ms avant de pénétrer à nouveau dans le WOR. Les utilisateurs peuvent saisir les données du port série et les renvoyer via le sans fil pendant cette période. Chaque octet de série sera actualisé pendant 1000 ms. Les utilisateurs doivent transmettre le premier octet dans les 1000 ms.
Nous devons d'abord introduire une méthode simple mais utilement pour vérifier si quelque chose se trouve dans le tampon de réception
int available ();Il est simplement renvoyé combien d'octets vous avez dans le flux actuel.
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 E22 Transmission Scénarios, les lignes sont des canaux
La transmission fixe a plus de scénarios
LORA E22 Transmission Scénarios, les lignes sont des canaux
Maintenant, vous avez toutes les informations pour faire votre travail, mais je pense qu'il est important de montrer des exemples réalistes pour mieux déstouer toute possibilité.
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Paramètres et utilisation de base
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Bibliothèque
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Configuration
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: transmission fixe et RSSI
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Économie d'énergie et envoi de données structurées
Appareil Ebyte Lora E22 pour Arduino, ESP32 ou ESP8266: mode répéteur et paramètres à distance
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Microcontrôleur WOR et Arduino Shield
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Microcontrôleur WOR et WEMOS D1 Shield
EBYTE LORA E22 Dispositif pour Arduino, ESP32 ou ESP8266: Microcontrôleur WOR et ESP32 Dev V1 Shield