[TUTORIEL] LoRaWAN et Arduino

Forum de support et échanges autour des Shields RFM22 et RFM Master

[TUTORIEL] LoRaWAN et Arduino

Message non lude NicolasGonzalez » Ven 21 Oct 2016 15:12

LoRaWAN et Arduino

Nos boards RFMaster, Breakout RF95 et Datalogger sont compatibles avec l'environnement Arduino.
Cette librairie permet de les utiliser convenablement :
https://github.com/matthijskooijman/arduino-lmic

La plupart des opérateurs utilisent le mode OTAA, je vous recommande donc d'utiliser le code d'exemple ttn-otaa.ino.

Dans ce code d'exemple il y a plusieurs choses que vous devez modifier :

Les identifiants et la clé de chiffrement :
APPEUI, DEVEUI et APPKEY doivent vous être fournis par votre opérateur.
C'est ce qui permet de rendre votre objet unique sur le réseau et de chiffrer les communications.

Code: Tout sélectionner
static const u1_t PROGMEM APPEUI[8]={ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static const u1_t PROGMEM DEVEUI[8]={ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
static const u1_t PROGMEM APPKEY[16] = { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C };


breakout.jpg
breakout.jpg (108.66 Kio) Vu 121 fois


Broches qui sont nécessaires :
  • +3v3: alim 3,3V
  • gnd: masse
  • mosi: SPI master > slave
  • miso: SPI master < slave
  • sck: SPI clock
  • nss : le chip select spi
  • rst : le reset du rfm95 optionnel mais c'est mieux de le mettre
  • dio0 : Pin interruption pour l'envoi et la réception de messages
  • dio1 : Pin interruption nécessaire pour le LoRaWAN

Le pinout est également à modifier suivant votre carte :

RFMaster
Code: Tout sélectionner
lmic_pinmap pins = {
    .nss = 10,
    .rxtx = LMIC_PIN_UNUSED,
    .rst = 26,
    .dio = {3, 4, LMIC_PIN_UNUSED},
};


Datalogger
Code: Tout sélectionner
lmic_pinmap pins = {
    .nss = 15,
    .rxtx = LMIC_PIN_UNUSED,
    .rst = 26,
    .dio = {17, 27, LMIC_PIN_UNUSED},
};


/!\ Pour les utilisateurs de datalogger il est important de rajouter ceci au début de config():

Code: Tout sélectionner
   pinMode(17, INPUT_PULLUP);
   pinMode(27, INPUT_PULLUP);

   pinMode(15,OUTPUT);
   digitalWrite(15, HIGH);

   pinMode(10, OUTPUT);
   digitalWrite(10, HIGH);

   pinMode(12, OUTPUT);
   digitalWrite(12, HIGH);


Plusieurs composants sont sur le bus SPI dont le RFM95, la flash et l'accéléromètre.
Il est obligatoire de désélectionner la flash et l'accéléromètre et c'est ce que font ces quelques lignes.

Arduino Zero ou Datalogger
Si vous utilisez un arduino zero ou un datalogger je vous recommande de changer le Serial en SerialUSB car c'est celle qui est accessible directement par l'USB donc pas besoin de câble série.
Cette modification doit être faite dans arduino-lmic/src/lmic/config.h :
Code: Tout sélectionner
// Any runtime assertion failures are printed to this serial port (or
// any other Print object). If this is unset, any failures just silently
// halt execution.
#define LMIC_FAILURE_TO Serial
NicolasGonzalez
 
Messages: 3
Inscription: Lun 10 Oct 2016 15:11

Retourner vers Shield RFM22 et RFM Master

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron