Autres articles / Other articles

Paramétrage LoRa REYAX RYLR890, 3ème partie

publication: 20 janvier 2022 / mis à jour 20 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: Initialisation of LoRa transmitters REYAX RYLR890


Pour paramétrer un transmetteur LoRa REYAX RYLR890, vous pouvez faire comme décrit dans cet article:
Test du transmetteur LoRa REYAX RYLR890
. Mais ceci nécessite l'achat d'un convertisseur USB-TTY CP2102 ou équivalent.

Pour notre part, nous allons voir comment procéder à ce paramétrage en utilisant exclusivement notre carte ESP32 et ESP32Forth.

Environnement de paramétrage requis

Pour initialiser nos transmetteurs LoRa REYAX RYLR890, il faut:

En prévision des futurs articles sur la maitrise des transmetteurs LoRa, on a monté trois plaques d'essai identiques, soit trois ESP32 et trois transmetteurs LoRa.

Ici, sur la photo, deux des trois plaques d'essai montées. Il faut étiqueter chaque plaque, ici BOSS et SLAV1. La dernière plaque s'appelle SLAV2. Nous verrons plus loin que cet étiquetage est important.

Réécriture d'un listing complet

Les paramètres minimaux pour communiquer entre cartes ESP32+LoRa sont: fréquence et adresse:

\ *** defining LoRa Setup words ***************************** 
 
create $crlf 
    $0d c,  $0a c, 
 
: crlf ( -- )       \ same action as cr, but adapted for LoRa 
    $crlf 2 type 
  ; 
 
\ Set the ADDRESS of LoRa transmitter: 
\  s" " value in interval [0..65535][?] (default 0) 
: ATaddress ( addr len -- ) 
    ." AT+ADDRESS=" 
    type  crlf ; 
 
\ Set the BAND of LoRa transmitter: 
\  s" " value is RF frequency, unit Hz 
: ATband ( addr len -- ) 
    s" AT+BAND=" type 
    type  crlf ; 

Les transmetteurs LoRa sortis de leur emballage d'origine, donc communiquant théoriquement à 115200 bauds avec la carte ESP32:

\ 115200 speed communication for LoRa REYAX 
115200 value #SERIAL2_RATE 
 
\ definition of OUTput and INput buffers 
128 string LoRaRX   \ buffer LoRa transmitter -> ESP32 
 
Serial \ Select Serial vocabulary 
 
\ initialise Serial2 
: Serial2.init ( -- ) 
    #SERIAL2_RATE Serial2.begin 
  ; 

On récupère aussi le mot LoRaInput qui lit les messages restitués par le transmetteur LoRa sur le port UART2. Le mot rx. a été rajouté pour faciliter les manipulations:

\ input from LoRa transmitter 
: LoRaInput ( -- n ) 
    Serial2.available if 
        LoRaRX maxlen$ nip 
        Serial2.readBytes 
        LoRaRX drop cell - ! 
    else 
        0 LoRaRX drop cell - ! 
    then 
  ; 
 
: rx. 
    LoRaINPUT 
    loRaRX type 
  ; 

Ici, les mots typeToLoRa et typeToTerm permettent de transférer l'affichage de texte du terminal vers le port UART2:

\ *** defining defered words ******************************** 
 
serial \ Select Serial vocabulary 
 
: serial2-type ( a n -- ) 
    Serial2.write drop ; 
 
: typeToLoRa ( -- ) 
    0 echo !    \ disable display echo from terminal 
    ['] serial2-type is type 
  ; 
 
: typeToTerm ( -- ) 
    ['] default-type is type 
    -1 echo !   \ enable display echo from terminal 
  ; 

Nous disposons là des mots FORTH nécessaires et suffisants pour paramétrer nos trois transmetteurs LoRa REYAX RYLR890.

Paramétrage des transmetteurs LoRa

Sur la photo du haut, vous avez vu des étiquettes BOSS et SLAV1. Ce sont de simples post-it adhésifs collés sur les plaques d'essai. Nous allons créer trois constantes associées à ces étiquettes:

55 constant LoRaBOSS 
39 constant LoRaSLAV1 
40 constant LoRaSLAV2 

Pour communiquer entre eux, nos transmetteurs LoRa doivent être paramétrés pour utiliser la même fréquence. La fréquence choisie est de 868,5 Mhz, soit 868500000 Hz:

: emptyRX ( -- ) 
    LoRaINPUT 
  ; 
 
: SETband ( -- ) 
    emptyRX 
    typeToLoRa 
    s" 868500000" ATband 
    typeToTerm 
  ; 

Lançons le paramétrage de notre premier transmetteur loRa:

serial2.init 
SETband 
rx.  \ display +OK 

Si tout va bien, l'exécution de rx. affiche +OK.

C'est le message restitué par le transmetteur LoRa. Il est possible d'avoir un message d'erreur, comme +ERR=1. Réitérez la commande de paramétrage.

La fréquence est indiquée sur 9 chiffres, sans séparateur ou espace. L'unité est le Hz.

Pour la FRANCE, la bande de fréquence libre va de 863 Mhz à 868,6 Mhz.

Source: ARCEP Le "portail bandes libres"

Le module LoRa REYAX RYLR896 peut exploiter les fréquences de 862 Mhz à 1020 Mhz.

ATTENTION: l'antenne doit être accordée à la fréquence utilisée! L'antenne équipant le module LoRa REYAX est accordée pour les fréquences autour de 868 Mhz. L'utilisation d'une antenne mal accordée diminuera considérablement l'efficacité du module LoRa en émission.

Les modules LoRa émettent en bande étroite. Choisissez une fréquence quelconque parmi les fréquences autorisées dans votre pays.

Détermination de l'adresse des transmetteurs LoRa

Pour être opérationnels, tous les transmetteurs d'un réseau doivent être sur la même fréquence. Quand on veut transmettre un message à un transmetteur en particulier, on doit indiquer l'adresse du transmetteur destinataire. Par exemple, si BOSS veut envoyer à message à SLAV1, on transmettra le message vers le transmetteur qui a l'adresse 39.

ATTENTION on ne peut pas avoir deux transmetteurs avec une même adresse sur une même fréquence!

Ici définition du mot permettant de paramétrer l'adresse 55 pour le transmetteur BOSS:

: SETaddress ( n -- ) 
    emptyRX 
    typeToLoRa 
    str ATband 
    typeToTerm 
  ; 
 
LoRaBOSS SETaddress 
rx.  \ display +OK 

Pourquoi le transmetteur BOSS se voit attribuer l'adresse 55?

Le BOSS, c'est quatre lettres. Ordre de chaque lettre dans l'alphabet: B=2, O=15, S=19...

On additionne 2 + 15 + 19 + 19 = 55

Je suis le BOSS

En fait, on peut prendre une valeur quelconque pour chaque transmetteur, dans l'intervalle [1..65535]. L'adresse 0 est réservée aux transmissions vers tous les transmetteurs LoRa à l'écoute sur la même fréquence.

Maintenant que notre transmetteur BOSS est paramétré, on peut le déconnecter du PC et brancher celui étiquetté SLAV1. On compile le script source et on lance le paramétrage de SLAV1:

serial2.init 
SETband 
rx.  \ display +OK 
 
LoRaSLAV1 SETaddress 
rx.  \ display +OK 

On vous laisse regarder le listing pour le paramétrage du transmetteur SLAV2.


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