max_lorawan_tracker
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
max_lorawan_tracker [2019/02/08 07:41] – [Ressources] bigMax | max_lorawan_tracker [2020/02/04 16:19] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. serge | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
* Utiliser un module GPS pour la première fois | * Utiliser un module GPS pour la première fois | ||
* Utiliser un [[ RFM95 ]] pour la premiere fois | * Utiliser un [[ RFM95 ]] pour la premiere fois | ||
- | * Dépasser le duty cycle LoRaWAN pour permettre au tracker d' | + | * Installer une infrastructure capable |
- | * Dépasser les 10 messages quotidiens autorisés par TTN | + | |
===== Cablage ===== | ===== Cablage ===== | ||
Ligne 14: | Ligne 13: | ||
J'ai envie de continuer à bricoler avec les ESP32, donc malgré que la Chistera Pi soit un shield Raspberry Pi, je vais la piloter avec un ESP32. | J'ai envie de continuer à bricoler avec les ESP32, donc malgré que la Chistera Pi soit un shield Raspberry Pi, je vais la piloter avec un ESP32. | ||
==== Le RFM95 de la Chistera Pi ==== | ==== Le RFM95 de la Chistera Pi ==== | ||
- | {{ :max: | + | {{ media_06: |
cf [[ rfm95# | cf [[ rfm95# | ||
Ligne 26: | Ligne 25: | ||
* 3.3V => Chistera Pi Pin 17 (Rasp Pi 3V3) | * 3.3V => Chistera Pi Pin 17 (Rasp Pi 3V3) | ||
* DIO0 => Chistera Pi Pin 07 (Rasp Pi GPIO4) => ESP32 GPIO21 | * DIO0 => Chistera Pi Pin 07 (Rasp Pi GPIO4) => ESP32 GPIO21 | ||
- | * DIO1 => Chistera Pi Pin 16 (Rasp Pi GPIO23) => ESP32 GPIO3 | + | * DIO1 => Chistera Pi Pin 16 (Rasp Pi GPIO23) => ESP32 GPI26 |
- | * DIO2 => Chistera Pi pin 18 (Rasp Pi GPIO24) => ESP32 GPIO1 | + | * DIO2 => Chistera Pi pin 18 (Rasp Pi GPIO24) => ESP32 GPI27 |
Nous avons besoin d' | Nous avons besoin d' | ||
Ligne 36: | Ligne 35: | ||
==== Ecran TFT 240x240 px ST7789 ==== | ==== Ecran TFT 240x240 px ST7789 ==== | ||
- | {{ :max: | + | {{ media_06: |
- | * SDA (SPI MOSI) => ESP32 GPIO19 | + | * SDA (SPI MOSI) => ESP32 GPIO19 |
- | * SCL (SPI SCLK) => ESP32 GPIO18 | + | * SCL (SPI SCLK) => ESP32 GPIO18 |
* DC (SPI SS) => ESP32 GPIO15 | * DC (SPI SS) => ESP32 GPIO15 | ||
* Reset => ESP32 GPIO22 (voir si elle est utilisable) | * Reset => ESP32 GPIO22 (voir si elle est utilisable) | ||
+ | * BLK => not connected | ||
* GND | * GND | ||
* 3.3V | * 3.3V | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Je n'ai pas réussi à driver correctement les 2 modules (lora et écran) sur le meme port SPI, donc j'ai déplacé l' | ||
+ | </ | ||
==== Groove GPS ==== | ==== Groove GPS ==== | ||
- | {{ :max: | + | {{ media_06: |
Le module Groove GPS communique avec un port serie asynchrone. | Le module Groove GPS communique avec un port serie asynchrone. | ||
Ligne 58: | Ligne 62: | ||
===== Programmation ===== | ===== Programmation ===== | ||
==== Arduino-LMIC ==== | ==== Arduino-LMIC ==== | ||
- | cf [[ https:// | + | * cf [[ https:// |
+ | * cf [[ https:// | ||
+ | * cf LMiC v1.5 doc: {{ media_06: | ||
+ | Configuration du cablage : | ||
<code c> | <code c> | ||
- | lmic_pinmap lmic_pins = { | + | const lmic_pinmap lmic_pins = { |
.nss = 5, | .nss = 5, | ||
.rxtx = LMIC_UNUSED_PIN, | .rxtx = LMIC_UNUSED_PIN, | ||
.rst = 4, | .rst = 4, | ||
- | .dio = {21, 3, 1}, | + | .dio = {21, 26, 27}, |
+ | // optional: set polarity of rxtx pin. | ||
+ | .rxtx_rx_active = 0, | ||
+ | // optional: set RSSI cal for listen-before-talk | ||
+ | // this value is in dB, and is added to RSSI | ||
+ | // measured prior to decision. | ||
+ | // Must include noise guardband! Ignored in US, | ||
+ | // EU, IN, other markets where LBT is not required. | ||
+ | .rssi_cal = 0, | ||
+ | // optional: override LMIC_SPI_FREQ if non-zero | ||
+ | .spi_freq = 0, | ||
}; | }; | ||
</ | </ | ||
+ | |||
+ | Attention, il faut appeler SPI.begin() en fournissant le cablage du SPI pour le module RFM95. Le moment opportun est lors du setup() du code arduino. | ||
+ | <code c> | ||
+ | // Configure SPI | ||
+ | SPI.begin(18, | ||
+ | </ | ||
+ | |||
+ | ==== Pseudo code ==== | ||
+ | - Boot | ||
+ | - Affichage du dernier évenement MAC (LoRaWAN) : néant et du statut GPS : " | ||
+ | - Boucle infini | ||
+ | - Acquisition des coordonnées GPS / Attente de coordonnées valides | ||
+ | - Scheduling d'un envoie d'une payload CayenneLPP contenant les coordonnées GPS au maximum une fois par minute | ||
+ | - Affichage des coordonnées GPS + affichage du dernier evenement MAC (LoRaWAN) retourné par LMIC | ||
+ | |||
+ | ==== Problèmes ==== | ||
+ | Pour le moment je n'ai pas réussi à convenablement interfacer l' | ||
+ | \\ | ||
+ | De plus, j' | ||
+ | \\ | ||
+ | Même avec cette nouvelle librairie, je n' | ||
+ | * Désactiver les interruptions de LMIC (il me semble que c'est indispensable pour éviter les conflits sur le port SPI) | ||
+ | * Forcer la fin des transactions SPI avant de changer de slave | ||
+ | Il est possible que ce ne soit pas mon utilisation qui pose problème, mais les drivers eux même qui ne permettent pas de passer un port SPI pour coordonner son utilisation. | ||
+ | |||
+ | ===== Configuration TTN ===== | ||
+ | * Création d'une application dans TTN : pas de problème | ||
+ | * Création d'un device dans TTN : pas de problème | ||
+ | * Pour ABP et OTAA, il faut faire attention à copier les clés dans le bon sens (soit little ou big endian) dans le sketch Arduino. | ||
+ | * Le tracker utilisera ABP ou OTAA ? De préférence OTAA, mais il est probablement problématique de faire plusieurs join. Il faudrait etre capable de conserver l'Id de session entre les reboot de l' | ||
+ | |||
+ | |||
+ | ===== Notes ===== | ||
+ | * Duty Cycle 1% | ||
+ | * Coordonnées GPS avec CyaenneLPP : 11 octets | ||
+ | * TTN Fair Acces Policy limite à 30 sec / jour / device le uplink. et 10 messages downlink / jour / device cf [[ https:// | ||
+ | * En comptant transmettre 11 octets de données GPS par message, on calcul un temps d' | ||
===== Ressources ===== | ===== Ressources ===== | ||
* Utilisation de arduino-lmic sur un esp32 : [[ https:// | * Utilisation de arduino-lmic sur un esp32 : [[ https:// | ||
* Plus de code : [[ https:// | * Plus de code : [[ https:// | ||
- | * TTN thread: [[ https:// | + | * TTN threads: [[ https:// |
- | * | + | * ABP vs OTAA : [[ https:// |
{{tag> | {{tag> |
max_lorawan_tracker.1549611707.txt.gz · Dernière modification : 2019/02/08 07:41 de bigMax