Ceci est une ancienne révision du document !
Table des matières
Réalisation d'un tracker LoRaWAN
Objectifs
Réaliser un dispositif portable émettant des messages LoRa à notre gateway TTN. Ces messages contiendront les coordonées GPS de l'émetteur. En nous promenant avec le tracker nous pourrons cartographier la qualité du signal LoRa.
Challenges
- Utiliser un module GPS pour la première fois
- Utiliser un Le modem LoRa RFM95 pour la premiere fois
- Installer une infrastructure capable de dépasser le TTN Fair Access Policy.
Cablage
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
- MOSI ⇒ Chistera Pi Pin 19 (Rasp Pi GPIO10) ⇒ ESP32 GPIO19
- MISO ⇒ Chistera Pi Pin 21 (Rasp Pi GPIO9) ⇒ ESP32 GPIO23
- SCLK ⇒ Chistera Pi Pin 23 (Rasp Pi GPIO11) ⇒ ESP32 GPIO18
- SS ⇒ Chistera Pi Pin 24 (Rasp Pi GPIO8) ⇒ ESP32 GPIO5
- RST ⇒ Chistera Pi Pin 11 (Rasp Pi GPIO17) ⇒ ESP32 GPIO4
- GND ⇒ Chistera Pi Pin 25 (Rasp Pi GND)
- 3.3V ⇒ Chistera Pi Pin 17 (Rasp Pi 3V3)
- DIO0 ⇒ Chistera Pi Pin 07 (Rasp Pi GPIO4) ⇒ ESP32 GPIO21
- DIO1 ⇒ Chistera Pi Pin 16 (Rasp Pi GPIO23) ⇒ ESP32 GPIO3
- DIO2 ⇒ Chistera Pi pin 18 (Rasp Pi GPIO24) ⇒ ESP32 GPIO1
Nous avons besoin d'alimenter le shield grace au pins GND et 3.3V.
Nous avons besoin du port SPI qui est composé des 4 pins MOSI MISO SCLK et SS, pour communiquer avec le circuit.
La bibliothèque Arduino LMIC que nous utiliserons pour piloter le circuit utilise également les ports DIO0 DIO1 et DIO2 (Digital Input Output). Elle utilise également le pin RST pour s'assurer que le circuit est toujours dans un état consistent.
Ecran TFT 240x240 px ST7789
- SDA (SPI MOSI) ⇒ ESP32 GPIO19
- SCL (SPI SCLK) ⇒ ESP32 GPIO18
- DC (SPI SS) ⇒ ESP32 GPIO15
- Reset ⇒ ESP32 GPIO22 (voir si elle est utilisable)
- GND
- 3.3V
Groove GPS
Le module Groove GPS communique avec un port serie asynchrone. cf : http://wiki.seeedstudio.com/Grove-GPS/
- Groove RX ⇒ ESP32 GPIO17 (TX2)
- Groove TX ⇒ ESP32 GPIO16 (RX2)
- GND
- 3.3V
Programmation
Arduino-LMIC
cf https://github.com/matthijskooijman/arduino-lmic
cf LMiC v1.5 doc: lmic-v1.5.pdf
lmic_pinmap lmic_pins = { .nss = 5, .rxtx = LMIC_UNUSED_PIN, .rst = 4, .dio = {21, 3, 1}, };
Configuration TTN
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://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300
- En comptant transmettre 11 octets de données GPS par message, on calcul un temps d'émission de 87ms pour SF7 jusque 1975ms pour SF12. La TTN Fair Access Policy autorise donc 347 messages/jour/device en SF7 jusqu'à 15 messages/jour/device en SF12.
Ressources
- Utilisation de arduino-lmic sur un esp32 : https://nathanmcminn.com/2018/09/12/tutorial-heltec-esp32-board-the-things-network/