max_lora_signal_test_kit
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
max_lora_test_kit [2019/02/02 15:14] – créée bigMax | max_lora_signal_test_kit [2020/07/25 09:16] (Version actuelle) – bigMax | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
+ | |||
+ | {{ media_06: | ||
Réalisation d'un kit de test LoRa composé de 2 modules émetteur/ | Réalisation d'un kit de test LoRa composé de 2 modules émetteur/ | ||
- | Un premier module portable émet un message que l'on appel un " | + | {{ media_06: |
- | Le second module attend perché en hauteur dans un endroit approprié de récevoir un message pour émettre une réponse. | + | |
+ | Un premier module portable, "le tracker", | ||
+ | |||
+ | {{ media_06: | ||
+ | |||
+ | Le second module, "le répéteur", | ||
Les modules [[ e45-ttl-100 ]] ne permettent pas de mesurer la puissance du signal radio (RSSI ou SNR), néanmoins, ils disposent de différents débits (air rate) configurable. Pour rappel, avec LoRa, plus le débit est grand plus la portée du signal est faible. Le problème est que les différents débits sont strictement incompatbles. Nous allons donc essayer de quantifier la puissance du signal en fonction du débit que les deux modules peuvent atteindre pour communiquer. | Les modules [[ e45-ttl-100 ]] ne permettent pas de mesurer la puissance du signal radio (RSSI ou SNR), néanmoins, ils disposent de différents débits (air rate) configurable. Pour rappel, avec LoRa, plus le débit est grand plus la portée du signal est faible. Le problème est que les différents débits sont strictement incompatbles. Nous allons donc essayer de quantifier la puissance du signal en fonction du débit que les deux modules peuvent atteindre pour communiquer. | ||
+ | |||
+ | ===== Materiel ===== | ||
+ | * 2 ESP32 [[ esp32_devkit ]] | ||
+ | * 2 modules LoRa [[ e45-ttl-100 ]] | ||
+ | * 2 modules d' | ||
+ | * 1 écran TFT 240x240 px : le ST7789 | ||
+ | |||
+ | |||
+ | ===== Cablage ===== | ||
+ | |||
+ | Il faut noter que l'on utilise également le GPIO2 en sortie pour controller la LED de l' | ||
+ | |||
+ | ==== Module e45-ttl-100 ==== | ||
+ | On communique avec le module e45-ttl-100 via une liaison serie asynchrone (UART). Il faut alimenter le module, la puissance fournie par le micro controlleur est insuffisante. Il y a en outre 2 bit pour selectionner le mode du module et 1 sortie pour | ||
+ | |||
+ | Sur le module e45-ttl-100 antene vers le haut, de gauche à droite : | ||
+ | - M0 | ||
+ | - M1 | ||
+ | - RX | ||
+ | - TX | ||
+ | - AUX => GPIO5 | ||
+ | - VCC => +5V | ||
+ | - GND => GND | ||
+ | |||
+ | |||
+ | ==== Ecran TFT 240px x 240px ST7789 ==== | ||
+ | On communique avec l' | ||
+ | |||
+ | Sur l' | ||
+ | - Blank => pas utilisé ni connecté | ||
+ | - DC | ||
+ | - Reset => GPIO4 | ||
+ | - SDA => GPIO23 (SPI MOSI) | ||
+ | - SCL => GPIO18 (SPI Serial Clock) | ||
+ | - VCC => +3.3V | ||
+ | - GND => GND | ||
===== Algorithme de négociation du débit radio (air rate) ===== | ===== Algorithme de négociation du débit radio (air rate) ===== | ||
Deux débits différents sont incompatibles pour les transmission radio. Il n'est pas possible avec les modules [[ e45-ttl-100 ]] d' | Deux débits différents sont incompatibles pour les transmission radio. Il n'est pas possible avec les modules [[ e45-ttl-100 ]] d' | ||
- | Le principe est le suivant | + | Le principe est le suivant |
- | - Liste numérotéeInitialisation | + | - Initialisation |
- | - Emission d'un ping contenant l' | + | - Emission d' |
- | - Attente d' | + | - Attente d' |
- | - Si récéption d'un accusé de réception valide, on incrémente le numéro de séquence | + | - Si récéption d'un accusé de réception valide, on incrémente le numéro de séquence |
+ | - Si on a déjà reçu N accusés de récéptions valide on indique dans le prochain message que l'on souhaite augmenter le débit de transmission | ||
+ | - Si on a réçu 2 messages accusant réception d'une augmentation de débit, alors on augmente le débit | ||
+ | - Si pas d' | ||
+ | - Si pas de réception de message lisible depuis au moins un temps " | ||
+ | - Si pas de reception de messages lisible depuis au moins un temps " | ||
+ | |||
+ | Le principe est le suivant pour le module répéteur : | ||
+ | - Configuration du plus bas débit de transmission | ||
+ | - Attente de la réception d'un message lisible | ||
+ | - Si réception d'un message valide initialisant une nouvelle session, alors on initialise une session coté repeteur et on incrémente le numéro de séquence. | ||
+ | - Si réception d'un message valide correspondant à une session en cours alors on incrémente le numéro de séquence. | ||
+ | - Emission d'un acquitement avec le meme identifiant de session et le numéro de séquence. | ||
+ | - Si réception de 2 demandes d' | ||
+ | - Après avoir émis un message on attent la réception d'un nouveau message (retour au point 2) | ||
+ | - Si pas de réception de message lisible depuis au moins un temps " | ||
+ | - Si pas de reception de messages lisible depuis au moins un temps " | ||
+ | |||
+ | |||
+ | ===== Code source ===== | ||
+ | J'ai utilisé un ESP32 programmé avec l'IDE Arduino. | ||
+ | |||
+ | Le code source est actuellement sur mon githib ici : [[ https:// | ||
+ | |||
+ | Je n'ai pas trouvé de driver pour le module [[ e45-ttl-100 ]] j'ai donc implémenté laborieusement un driver avec quelques fonctions. Les 2 modules tracker et répeteur sont codés dans le meme sketch. Il faut commenter ou décommenter la ligne "# | ||
+ | |||
+ | {{tag> | ||
max_lora_signal_test_kit.1549120462.txt.gz · Dernière modification : 2019/02/02 15:14 de bigMax