Autres articles / Other articles

Test du transmetteur LoRa REYAX RYLR890

publication: 15 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


Environnement de test requis

Pour tester notre transmetteur LoRa REYAX RYLR890, il faut:

Préparer la communication avec le transmetteur LoRa REYAX RYLR890

Tous les programmeurs amenés à gérer le port UART2 définissent une zone mémoire qui va servir de tampon. Pour notre part, nous allons créer directement une variable alphanumérique:

128 string LoRaTX   \ buffer ESP32 -> LoRa transmitter 

Dans cet article, nous allons seulement procéder à des tests d'envoi de commandes vers le transmetteur LoRa REYAX RYLR890 et voir comment récupérer ce que ce même transmetteur renvoie. Il nous faut donc une autre variable alphanumérique pour la réception:

128 string LoRaRX   \ buffer LoRa transmitter -> ESP32 

Commençons par initialiser la transmission série vers le transmetteur LoRa. Ici, la vitesse est de 115200 bauds. C'est la vitesse de transmission par défaut du transmetteur LoRa:

Serial \ Select Serial vocabulary 
 
\ initialise Serial2 
: Serial2.init ( -- ) 
    #SERIAL2_RATE Serial2.begin 
  ; 

Pour notre commande de test vers le transmetteur LoRa, on sélectionne la fréquence de travail du transmetteur, ici 868.5 Mhz:

\ Setup LoRa Frequency 
: .band8685 ( -- ) 
    s" AT+BAND=868500000" LoRaTX $! 
    $0d LoRaTX c+$! 
    $0a LoRaTX c+$!     \ add CR LF code at end of command 
    LoRaTX Serial2.write drop 
  ; 

Enfin, on définit un mot permettant de récupérer la réponse du transmetteur LoRa:

\ input from LoRa transmitter 
: LoRaInput ( -- n ) 
    Serial2.available dup if 
        LoRaRX maxlen$ nip 
        Serial2.readBytes 
        LoRaRX drop cell - ! 
    then 
  ; 

Le mot LoRaInput teste si une transmission par liaison série a été reçue depuis le port série UART2:

Exemple de transmission et réception:

Serial2.init 
.band8685 
LoRaInput 

Voici ce que donne un dump mémoire de LoRaRX:

LoRaRX dump
--addr---  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  ------chars-----
3FFF-87A0  05 00 00 00 2B 4F 4B 0D 0A 31 0D 0A 2B 4F 4B 0D  ....+OK..1..+OK.

Si on exécute LoRaRX, on récupère l'adresse et surtout la longueur de tous les caractères reçus, incluant les caractères CR+LF ($0d $0a). Pour ne gérer que les caractères strictement compris dans l'intervalle [0..0A..Za..z], il faut diminuer la taille de la chaine de deux unités:

: LoRaType ( -- ) 
    LoRaRX dup 0 > if 
        2 - type 
    else 
        2drop 
    then 
  ; 
LoRaType  \ display: +OK        

Ici, l'exécution de LoRaType affiche +OK qui est la réponse à notre commande de test AT+BAND=868500000.

Dans l'article suivant, nous allons voir comment gérer toutes les commandes de paramétrage de notre transmetteur LoRa REYAX RYLR890.

Listing complet: Communication with LoRa transmitter thru UART2

 


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