Aller plus loin avec la LoPy4

Envoyé par le 4 Oct 2021

Voici quelques exercices pas à pas pour aller plus loin dans l’utilisation de la LoPy4 et la compréhension de la couche PHY du standard LoRa.

Si vous démarrez avec la LoPy4, consultez l’article Démarrer avec Lopy4 Pycom

Nous allons utiliser 2 LoPy4. l’une en émetteur, l’autre en récepteur.

Le code utilisé est celui du Ping Pong : Le code est disponible ici [1].

Si vous activez plusieurs transmissions en même temps, choisissez qui sera le noeud émetteur et le noeud récepteur et particularisez la transmission.

Exemple pour la transmission (binôme) A:

Côté émetteur

s.send('PingA')

Côté récepteur

s.recv(64) == b'PingA'

Les méthodes utilisées sont celles présenteés sur cette page [2]

À chaque modification du code, vous devez rebooter le device (ctrl+alt+f sur VSC ou ctrl+F sur Atom), puis relancer un run.

Utilisez la commande print pour voir l’effet de la modification des paramètres. Exemple :

print('Coding rate {}'.format(lora.coding_rate()))

1) Récupérer les paramètres LoRa d’une transmission

À partir de la méthode lora.stats(), récupérer les paramètres suivants :

Du côté de l’émetteur : spreading factor, puissance émise, fréquence utilisée, time on air

Du côté du récepteur : spreading factor, RSSI, SNR

Faire attention aux unités

À partir d’autres méthodes (à chercher sur  [2])

bande de transmission, coding rate, power mode, taille de préambule

2) Faire varier le RSSI

En modifiant l’environnement de transmission

Exemple 1 : antenne couchée ou debout

Exemple 2 : éloigner les 2 noeuds, placer les noeuds derrière des objets, etc

Laissez passer plusieurs trames, observez sur plusieurs trames avant de changer l’environnement

Quel impact sur le RSSI  côté récepteur ? Expliquez.

En arrêtant l’émission du Pong

Quel impact sur le RSSI côté émetteur  ? sur le sfrx ? sur le SNR ? Expliquez.

Vérifier les RSSI typiques

À l’aide des vidéos [3], vérifier que les RSSI observés sont typiques d’une transmission LoRa.

Toujours à l’aide des vidéos [3], comparez les RSSI observés avec les RSSI limite (receviez sensitivity). Attention au spreading factor utilisé.

3) Faire varier le time on air

Taille du message

Modifiez la taille du message envoyé pour faire varier le time on air. Expliquez.

À l’aide du calculateur https://loratools.nl/#/airtime [4]

comparez le time on air observé et le time on air calculé.

Observez le duty cycle pour la bande ISM Europe. Comment varie-t-il en fonction de la taille du message ? Pourquoi ?

Coding rate

Modifiez le coding rate à l’émetteur. Quel impact sur le time on air ?

Quel est l’intérêt d’un coding rate plus faible (1/2 par exemple) ?

4) Faire varier le spreading factor

Modifiez le spreading factor à l’émetteur : à partir du constructeur à l’initialisation, ou à partir de la méthode lora.sf()

Observez le récepteur. Pourquoi le message n’est-il pas reçu ?

Modifiez aussi le spreading factor du côté du récepteur.

Observez le time on air. Pourquoi double-t-il ?

Essayez de tirer des conclusions à partir de RSSI et SNR (pas facile du fait des variations de l’environnement de transmission  …)

 

[1] https://docs.pycom.io/tutorials/networks/lora/module-module/

[2] https://docs.pycom.io/firmwareapi/pycom/network/lora/

[3] https://www.mobilefish.com/developer/lorawan/lorawan_quickguide_tutorial.html

[4] https://loratools.nl/#/airtime

 

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *