Paramétrage du transmetteur LoRa REYAX RYLR890
publication: 16 janvier 2022 / mis à jour 16 janvier 2022
Appel à collaboration
Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.
Partagez-les ici sur ce site.
ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.
Vos montages peuvent aider d'autres développeurs.
Les montages des autres développeurs peuvent vous aider.
Pour proposer un article ou un montage, cliquez ici
Listing complet: Setting up the REYAX RYLR890 LoRa transmitter
Environnement de paramétrage requis
Pour paramétrer notre transmetteur LoRa REYAX RYLR890, il faut:
- utiliser strings management for ESP32forth
- utiliser une version ESP32Forth avec accès au port UART2, voir Installation du port série UART2
- câbler le transmetteur LoRa REYAX RYLR890 avec la carte ESP32
Avec le transmetteur LoRa REYAX RYLR890 câblé à notre carte ESP32, nous disposons de l'environnement nécessaire et suffisant pour paramétrer notre transmetteur. Ce paramétrage est généralement définitif. Pour les paramètres pouvant évoluer au cours de l'utilisation du transmetteur, vous trouverez les définitions FORTH de chaque paramètre à intégrer à votre projet définitif.
Définition des mots de paramétrage pour LoRa REYAX RYLR890
Avant de définir des commandes pour notre transmetteur LoRa REYAX RYLR896,
on définit le mot crlf
:
: crlf ( -- ) \ same action as cr, but adapted for LoRa $0d emit $0a emit ;
Le but de ce mot crlf
est de terminer la transmission sur le port UART2
depuis la carte ESP32 vers le transmetteur LoRa. La définition de ce mot utilise
emit
. Ne soyez pas surpris. On verra plus loin comment exploiter
l'exécution vectorisée de mots en langage FORTH pour faire l'action souhaitée à
emit
. Cette solution surprendra les débutants programmeurs en langage
FORTH. Elle montrera aussi à quel point FORTH est bien plus souple que beaucoup
d'autres langages de programmation.
Paramètres essentiels
Voici la liste des paramètres essentiels pour paramétrer votre module LoRa.
La séquence d'utilisation de la commande AT:
- Utilisez AT+ADDRESS pour régler ADRESSE. L'ADRESSE est considérée comme l'identification de l'émetteur ou du récepteur spécifié.
- Utilisez AT+NETWORKID pour définir l'ID du réseau Lora. Ceci est une fonction de groupe. Ce n'est qu'en définissant le même NETWORKID que les modules peuvent communiquer entre eux. Si l'ADRESSE du destinataire spécifié appartient à un groupe différent, elle n'est pas capables de communiquer entre eux. La valeur recommandée: 1 ~ 15
- Utilisez AT+BAND pour régler la fréquence centrale de la bande sans fil. L'émetteur et le récepteur doit utiliser la même fréquence pour communiquer entre eux.
- Utilisez AT+PARAMETER pour régler les paramètres sans fil RF. L'émetteur et
le récepteur doit définir les mêmes paramètres pour communiquer entre eux.
Les paramètres sont à définir comme suit:
- <Spreading Factor>: Plus le SF est grand, meilleure est la sensibilité. Mais le temps de transmission prendra plus de temps.
- <Bandwidth>: Plus la bande passante est petite, meilleure est la sensibilité. Mais le temps de transmission prendra plus de temps.
- <Coding Rate>: Le taux de codage sera le plus rapide si vous le définissez sur 1.
- <Programmed Preamble>: Code préambule. Si le code du préambule est plus gros, il
se traduira par moins de chances de perdre des données. Code de préambule généralement
peut être réglé au-dessus de 10 si sous l'autorisation de l'heure de transmission.
* Communication jusqu'à 3 km: réglage recommandé “AT+PARAMETER=10,7,1,7”
* Plus de 3 km: réglage recommandé “AT+PARAMETER=12,4,1,7”
- Use AT+SEND to send data to the specified ADDRESS. Please use “Lora Modem Calculator Tool” to calculate the transmission time. Due to the program used by the module, the payload part will increase more 8 bytes than the actual data length.
Il est nécessaire de transmettre crlf
à la fin de toutes les commandes AT.
Il faut attendre que le module réponde +OK pour que vous puissiez exécuter la prochaine commande AT.
ADDRESS Définit l'adresse du module
Chaque module de transmission LoRa doit avoir une adresse personnelle.
syntax | response |
---|---|
AT+ADDRESS=<address> | +OK |
AT+ADDRESS=? | +ADDRESS=22 |
\ Set the ADDRESS of LoRa transmitter: \ s"" value in interval [0..65535][?] (default 0) : ATaddress ( addr len -- ) ." AT+ADDRESS=" type crlf ;
<Address>=0~65535(default 0)
Exemple: Définir l'adresse du module sur 22. Les paramètres seront mémorisés dans LoRa.
s" 22" ATaddress
AT Test Disponibilité LoRa
syntax | response |
---|---|
AT | +OK |
\ Test LoRa disponibility : AT_ ( -- ) ." AT" type crlf ;
BAND Réglage de la fréquence RF
syntax | response |
---|---|
AT+BAND=<parameter> | +OK |
AT+BAND=? | +BAND=868500000 |
\ Set the BAND of LoRa transmitter: \ s"" value is RF frequency, unit Hz : ATband ( addr len -- ) ." AT+BAND=" type crlf ;
<parameter>is the RF Frequency, Unit is Hz: 915000000Hz(default: RYLY89x)
Example : Set the frequency as 868500000Hz:
s" 868500000" ATband
CPIN Définit le mot de passe AES128 du réseau
syntax | response |
---|---|
AT+CPIN=<password> | +OK |
AT+CPIN=? | +CPIN=FABC0002EEDCAA90FABC0002EEDCAA90 |
Password:
Mot de passe AES de 32 caractères de 00000000000000000000000000000001 à FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.
L'écahnge est acceté si les deux modules ont le même mot de passe. Après reset, le précédent mot de passe est effacé.
\ Set the AES32 password: \ s" <parameter>" value is an 32 character long AES password \ from 00000000000000000000000000000001 to FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF : ATcpin ( addr len -- ) ." AT+CPIN=" type crlf ;
Example: Set the password as below: FABC0002EEDCAA90FABC0002EEDCAA90
s" FABC0002EEDCAA90FABC0002EEDCAA90" ATcpin
CRFOP Sélectionne la puissance RF de sortie
syntax | response |
---|---|
AT+CRFOP=<power> | +OK |
AT+CRFOP=? | +CRFOP=10 |
Puissance:
Entre 0..15, 15dBm (par défaut)
\ Set the CRFOP RF output power: \ s"" value is RF output power between 0..15 : ATcrfop ( addr len -- ) ." AT+CRFOP=" type crlf ;
Example, set the output power as 10dBm:
s" 10" ATcrfop
FACTORY Règle tous les paramètres actuels sur les valeurs par défaut
Réglez tous les paramètres actuels sur les valeurs par défaut du fabricant.
syntax | response |
---|---|
AT+FACTORY | +FACTORY |
\ Reset the LoRa transmitter with FACTORY parameters : ATfactory ( -- ) ." AT+FACTORY" crlf ;
IPR R(gle le débit en bauds UART
syntax | response |
---|---|
AT+IPR=<parameter> | +OK |
AT+IPR=? | +IPR=38400 |
Paramètre de baud UART:
- 300
- 1200
- 4800
- 9600
- 19200
- 28800
- 38400
- 57600
- 115200 (default)
Les réglages seront mémorisés dans l'EEPROM.
MODE Sélectionne le mode de travail
syntax | response |
---|---|
AT+MODE=<parameter> | +OK |
AT+MODE=? | +MODE=1 |
Parameter:
- 0:Transmit and Receive mode (default).
- 1:Sleep mode.
\ Set work MODE: \ s"" value is [0,1] \ 0 (defalt) Transmit and Receive mode \ 1 Sleep mode : ATmode ( addr len -- ) ." AT+MODE" type crlf ;
NETWORKID Sélectionne l'ID réseau
syntax | response |
---|---|
AT+NETWORKID=<Network ID> | +OK |
AT+NETWORKID=? | +NETWORKID=6 |
\ Set NETWORKID: \ s"" value is [0..16] (0 bay default) : ATnetworkid ( addr len -- ) ." AT+NETWORKID" type crlf ;
Network ID: 0~16(0 par défaut)
Exemple: Sélectionne network ID à 6
Les réglages seront mémorisés dans l'EEPROM.
Le «0» est l'identifiant public de Lora. Il n'est pas recommandé d'utiliser 0 pour définir l'ID RÉSEAU.
s" 6" ATnetworkid
PARAMETER définition des paramètres RF
syntax | response |
---|---|
AT+PARAMETER=<Spreading Factor>, <Bandwidth>,<Coding Rate>, <Programmed Preamble> | +OK |
AT+PARAMETER=? | +PARAMETER=7,3,4,5 |
Parameters:
- Spreading Factor / facteur d'étalement
- 7~12, (default 12)
- Bandwidth / largeur de bande (0~9):
- 0 : 7.8KHz (not recommended, over spec.)
- 1 : 10.4KHz (not recommended, over spec.)
- 2 : 15.6KHz
- 3 : 20.8 KHz
- 4 : 31.25 KHz
- 5 : 41.7 KHz
- 6 : 62.5 KHz
- 7 : 125 KHz (default).
- 8 : 250 KHz
- 9 : 500 KHz
- Coding rate
- 1~4, (default 1)
- Programmed Preamble
- 4~7 (default 4)
Spreading Factor / facteur d'étalement
Spreading factor facteur d'étalement |
Bitrate / débit |
---|---|
7 | 5469 bps |
8 | 3125 bps |
9 | 1758 bps |
10 | 977 bps |
11 | 537 bps |
12 | 293 bps |
Taux de codage
La modulation LoRa ajoute également une correction d'erreur directe (FEC) dans chaque transmission de données. Cette implémentation se fait en encodant des données 4 bits avec des redondances en 5 bits, 6 bits, 7 bits, voire 8 bits. L'utilisation de cette redondance permettra au signal LoRa de durer interférences. La valeur du taux de codage doit être ajustée en fonction des conditions du canal utilisé pour la transmission des données. S'il y a trop d'interférences dans le canal, alors il est recommandé d'augmenter la valeur du taux de codage.
Cependant, l'augmentation de la valeur CR augmentera également la durée de la transmission.
Exemple: définissez les paramètres comme ci-dessous:
<Spreading Factor> 7,<Bandwidth> 20.8KHz,
<Coding Rate> 4,<Programmed Preamble>5,
s" 7,3,4,5" ATparameter
RESET logiciel
syntax | response |
---|---|
AT+RESET | +OK |
\ RESET the LoRa transmitter : ATreset ( -- ) ." AT+RESET" crlf ;
SEND envoye les données à l'adresse désignée
syntax | response |
---|---|
AT+SEND=<Address>,<Payload Length>,<Data> | +OK |
AT+SEND=? | +SEND=50,5,HELLO |
<Address>0~65535, lorsque l'<adresse> est 0, il enverra des données à tous adresse (de 0 à 65535.)
<Payload Length>Maximum 240bytes
<Data>ASCII Format
Code Forth pour ESP32Forth:
\ convert a number to a decimal string : .n ( n ---) base @ >r decimal <# #s #> type r> base ! ; \ SEND Send data to the appointment address : ATsend { addr len address -- } ." AT+SEND=" address .n [char] , emit len .n [char] , emit addr len type crlf ;
Exemple: envoie la chaîne HELLO à l'Adresse 50:
s" HELLO" 50 ATsend \ display: AT+SEND=50;5;HELLO
VER pour demander la version du firmware
\ VER to inquire the firmware version : ATver ( -- ) ." AT+VER" crlf ;
Codes de résultat d'erreur
- +ERR=1 il n'y a pas «enter» ou $0D $0A à la fin de la commande AT
- +ERR=2 la tête de la commande AT n'est pas une chaîne «AT»
- +ERR=3 il n'y a pas de symbole «=» dans la commande AT
- +ERR=4 commande inconnue
- +ERR=10 TX est sur le temps
- +ERR=11 RX est dépassé
- +ERR=12 erreur CRC
- +ERR=13 données TX de plus de 240 octets
- +ERR=15 Erreur inconnue
Legal: site web personnel sans commerce / personal site without seling