test-coverage.ino

Arduino MKR NB 1500 · Archivo : test-coverage.ino · Lenguaje : Arduino · Uso : Cartographier la couverture LTE-M en se déplaçant

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.
}

← Volver a la ficha