test-coverage.ino

Arduino MKR NB 1500 · Fichier : test-coverage.ino · Langage : Arduino · Usage : Cartographier la couverture LTE-M en se déplaçant

Avant de déployer des stations NB-IoT, mesurez la couverture : ce croquis journalise toutes les cinq secondes statut réseau, RSSI et opérateur au format CSV. Une carte USB ou un notebook à bord suffit pour produire la carte de chaleur du trajet.

Matériel requis

Une Arduino MKR NB 1500 (microcontrôleur SAMD21, modem u-blox LTE-M/NB-IoT, antenne externe, alimentation LiPo sur J6 ou USB). MKR NB 1500 alimenté par powerbank, SIM data, antenne ; option GPS série pour géoréférencer.

Câblage

Rien à câbler pour la version de base ; pour le GPS, TX/RX croisés sur Serial1 à 3,3 V.

Fonctionnement

signalQuality() renvoie le niveau rapporté par le SARA-R4 ; le séparateur point-virgule s'importe directement dans un tableur ou pandas. Le rythme de 5 s échantillonne un trajet en voiture.

Exécution

Installez le package Arduino SAMD Boards et la bibliothèque MKRNB, sélectionnez la carte, téléversez. Prévoyez une carte SIM IoT (LTE-M ou NB1) activée et une bonne réception : l'attachement au réseau peut demander plusieurs minutes.

Variantes

Ajoutez le compteur de retransmissions ou le temps d'attachement comme KPI, ou remplacez le GPS par l'horodatage du téléphone du conducteur.

test-coverage.ino

// Loggeur de couverture : RSSI horodate a chaque point GPS (ou a la main).
// Sortie serie en CSV, reprise par un notebook pour la carte.
#include <MKRNB.h>

const char PIN_SIM[] = "0000";

NB nb;

unsigned long dernier = 0;
const long PERIODE = 5000; // 1 point / 5 s en deplacement

void setup() {
  Serial.begin(9600);
  while (!Serial);
  if (nb.begin(PIN_SIM) != NB_READY) while (true);
  while (nb.getStatus() != NETWORK_JOINED) delay(2000);
  Serial.println(F("temps_s;statut;rssi;operateur"));
}

void loop() {
  if (millis() - dernier < PERIODE) return;
  dernier = millis();
  Serial.print(millis() / 1000);
  Serial.print(';');
  Serial.print(nb.getStatus());
  Serial.print(';');
  Serial.print(nb.signalQuality());
  Serial.print(';');
  Serial.println(nb.getOperator());
  // En deplacement : brancher un GPS serie et ajouter lat;lon ici.
}

← Retour à la fiche