Paramétrage LoRa REYAX RYLR890, 3ème partie
publication: 20 janvier 2022 / mis à jour 20 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: 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:
- 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
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
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