Communication entre deux transmetteurs LoRa REYAX RYLR890
publication: 21 janvier 2022 / mis à jour 21 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: Communication between two REYAX LoRa transmitters
Environnement de développement 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
- disposer de deux transmetteurs LoRa REYAX RYLR890 avec la carte ESP32
- connecter chaque carte ESP32 sur un port USB disponible sur votre PC
Ici, sous Linux, nous avons ouvert deux terminaux Minicom:
Commandes Linux pour ouvrir ces deux terminaux:
- depuis le clavier, lancer le terminal de commandes par CTRL-ALT-T
- dans la fenêtre de commande, taper
sudo minicom
lance le terminal minicom connecté à/dev/ttyUSB0
- dans l'invite, tapez le mot de passe adminsitrateur Linux. Le premier terminal donne accès à votre première carte ESP32
- à nouveau, depuis le clavier, lancer le terminal de commandes par CTRL-ALT-T
- dans cette nouvelle fenêtre de commande, taper
sudo minicom -D /dev/ttyUSB1
ce qui lance un autre terminal minicom connecté à/dev/ttyUSB1
- dans l'invite, tapez le mot de passe adminsitrateur Linux. Cet autre terminal donne accès à la seconde carte ESP32
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:
- la lourdeur des compilations et téléversements successifs
- la pauvreté des outils de diagnostics.
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