Autres articles / Other articles

Paramétrage du transmetteur LoRa REYAX RYLR890

publication: 16 janvier 2022 / mis à jour 16 janvier 2022

Read this page in english

 

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:

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:

  1. 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é.
  2. 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
  3. 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.
  4. 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:
    1. <Spreading Factor>: Plus le SF est grand, meilleure est la sensibilité. Mais le temps de transmission prendra plus de temps.
    2. <Bandwidth>: Plus la bande passante est petite, meilleure est la sensibilité. Mais le temps de transmission prendra plus de temps.
    3. <Coding Rate>: Le taux de codage sera le plus rapide si vous le définissez sur 1.
    4. <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”
  5. 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.

syntaxresponse
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

syntaxresponse
AT +OK
\ Test LoRa disponibility 
: AT_ ( -- ) 
    ." AT" 
    type  crlf 
  ; 

BAND Réglage de la fréquence RF

syntaxresponse
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

syntaxresponse
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

syntaxresponse
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.

syntaxresponse
AT+FACTORY +FACTORY
\ Reset the LoRa transmitter with FACTORY parameters 
: ATfactory ( -- ) 
    ." AT+FACTORY" 
    crlf 
  ; 

IPR R(gle le débit en bauds UART

syntaxresponse
AT+IPR=<parameter> +OK
AT+IPR=? +IPR=38400

Paramètre de baud UART:

Les réglages seront mémorisés dans l'EEPROM.

MODE Sélectionne le mode de travail

syntaxresponse
AT+MODE=<parameter> +OK
AT+MODE=? +MODE=1

Parameter:

\ 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

syntaxresponse
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

syntaxresponse
AT+PARAMETER=<Spreading Factor>, <Bandwidth>,<Coding Rate>, <Programmed Preamble> +OK
AT+PARAMETER=? +PARAMETER=7,3,4,5

Parameters:

Spreading Factor / facteur d'étalement

Spreading factor
facteur d'étalement
Bitrate / débit
75469 bps
83125 bps
91758 bps
10977 bps
11537 bps
12293 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

syntaxresponse
AT+RESET +OK
\ RESET the LoRa transmitter
: ATreset ( -- )
    ." AT+RESET"
    crlf
  ;

SEND envoye les données à l'adresse désignée

syntaxresponse
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


Legal: site web personnel sans commerce / personal site without seling