Autres articles / Other articles

Communication entre deux transmetteurs LoRa REYAX RYLR890

publication: 21 janvier 2022 / mis à jour 21 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: Communication between two REYAX LoRa transmitters


Environnement de développement requis

Pour initialiser nos transmetteurs LoRa REYAX RYLR890, il faut:

Ici, sous Linux, nous avons ouvert deux terminaux Minicom:

Commandes Linux pour ouvrir ces deux terminaux:

Transmission depuis BOSS vers SLAV2

Le listing de notre code FORTH n'est que très peu différent de celui du précédent article. On a simplement retiré les mots ATaddress et ATband. Ces mots ne sont plus nécessaires pour paramétrer nos transmetteurs LoRa BOSS, SLAV1 et SLAV2.

Un transmetteur LoRa, une fois paramétré, conserve ce paramétrage, même hors tension. La mise sous tension d'une carte ESP32 et son transmetteur LoRa ne change pas le paramétrage du transmetteur LoRa.

Les mots ATaddress et ATband sont remplacés par ATsend:

\ 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 
  ; 

Plus loin, on encapsule ce mot dans toSLAV2:

: toSLAV2 ( addr len -- ) 
    emptyRX 
    typeToLoRa 
    LoRaSLAV2 ATsend 
    typeToTerm 
  ; 

Souvent, on me demande pourquoi programmer en FORTH alors qu'il y a déjà le langage C qui est très efficace pour créer des applications pour ARDUINO, ESP32 et tout un tas d'autres micro-contrôleurs.

En ce qui concerne le langage C, j'aurai deux principaux reproches:

Il manque aux programmes compilés en C la souplesse qu'apporte le langage FORTH grâce à son interpréteur embarqué dans ESP32Forth. Ce n'est pas une caractéristique propre à ESP32Forth, mais bien un avantage qui existe dans toutes les versions du langage FORTH.

On compile le même programme (voir listing - en début d'article) sur chacune des cartes ESP32 (BOSS et SLAV2). C'est très facile. Il suffit de copier depuis le listing et de coller dans le terminal. Chaque carte ESP32 va compiler son listing en une dizaine de secondes. ESP32Forth est un vrai compilateur et le code source en langage FORTH est réellement compilé! Sur ce point, on est déjà bien plus performant que le même code en langage C...

Ici, les deux fenêtres de notre terminal minicom. La fenêtre de gauche permet de contrôler BOSS.

La fenêtre de droite contrôle SLAV2:

On va tester la transmission de BOSS vers SLAV2. Pour ceci, on pose le pointeur de souris dans la fenêtre de gauche et on tape directement:

serial2.init 
s" this is a transmission test" toSLAV2 
rx.  \ display: +OK 

Est-on certain que SLAV2 a reçu le message?

Rien de plus facile.

On pose le curseur de souris dans la fenêtre de droite et on tape simplement:

serial2.init 
rx.  \ display: +RCV=55,27,this is a transmission test,-36,40 

Le résultat de cette transmission par SLAV2 est stocké dans la variable alphanumérique LoRaRX.

Nous verrons dans le prochain article comment analyser le contenu de cette réception.

Mais déjà, on a le plaisir de vous annoncer que l'interfaçage entre les messages reçus par le transmetteur LoRa et l'application embarquée dans ESP32Forth fait appel à une technique qui va vous bluffer!

Car on va tout simplement monter AUCUN INTERFACE!

En fait, vous pourrez piloter n'importe quelle application, à distance, sans avoir à changer un seul caractère de cette application...

Et ça, le langage C est tout simplement incapable de le réaliser.


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