test-coverage.ino
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.
}