test-coverage.ino
Antes de desplegar estaciones NB-IoT, mide la cobertura: este sketch registra cada cinco segundos estado de red, RSSI y operador en CSV. Un pendrive o portátil a bordo bastan para crear el mapa de calor de la ruta.
Hardware
Una Arduino MKR NB 1500 (microcontrolador SAMD21, módem u-blox LTE-M/NB-IoT, antena externa, alimentación LiPo en J6 o USB). MKR NB 1500 alimentado por powerbank, SIM de datos, antena; GPS serie opcional para georreferenciar.
Cableado
Nada que cablear en la versión base; para el GPS, cruza TX/RX en Serial1 a 3,3 V.
Funcionamiento
signalQuality() devuelve el nivel informado por el SARA-R4; el separador punto y coma se importa directamente en hoja de cálculo o pandas. El ritmo de 5 s muestrea un trayecto en coche.
Ejecución
Instala el paquete Arduino SAMD Boards y la librería MKRNB, selecciona la placa y carga. Prevé una SIM IoT (LTE-M o NB1) activada y buena recepción: la conexión a la red puede tardar varios minutos.
Variantes
Añade el contador de retransmisiones o el tiempo de unión como KPI, o sustituye el GPS por el sello de tiempo del teléfono del conductor.
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.
}