🛠 Diagnostic AT et qualité de signal

Arduino MKR NB 1500 · avance · Schéma : IMG-mkr-nb-1500-avance-3-mkrnb-diagnostic-at.svg — Console série affichant les réponses AT+CSQ, AT+CEREG? et AT+QENG d'une MKR NB 1500, avec échelle de conversion RSSI en dBm à droite

Objetivos

Solucionar problemas de un enlace celular con los comandos AT del módulo SARA-R410M: estado de registro (AT+CEREG?), calidad de radio (AT+CSQ), célula servidora y tecnología (AT+QENG). La biblioteca MKRGSM expone sendModemCommand para enviar comandos AT sin reescribir un controlador UART. El módem está en una UART dedicada (SERCOM4: GSM_TX PA12, GSM_RX PA13, RTS/CTS PA14/PA15) cuyo control de flujo no está activado por el core, lo que provoca respuestas truncadas bajo un alto tráfico AT.

Hardware

Código completo

// Diagnostic AT periodique — MKR NB 1500
#include <MKRGSM.h>
#include "arduino_secrets.h"

const char PINNUMBER[] = SECRET_PINNUMBER;
GSM gsm;

void setup {
  Serial.begin(9600);
  while (!Serial);

  bool ok = false;
  while (!ok) {
    if (gsm.begin(PINNUMBER) == GSM_READY) ok = true;
    else delay(3000);
  }
}

void loop {
  Serial.println(F("--- Diagnostic ---"));
  Serial.println(F("Enregistrement :"));
  gsm.sendModemCommand("AT+CEREG?", &Serial);   // 0,1 = enregistre, 0,5 = en roaming
  Serial.println(F("Qualite signal :"));
  gsm.sendModemCommand("AT+CSQ", &Serial);      // +CSQ: rssi,ber
  Serial.println(F("Cellule/RAT :"));
  gsm.sendModemCommand("AT+QENG=\"servingcell\"", &Serial);
  delay(30000);
}

Verificación esperada

AT+CEREG? responde +CEREG: 0,1 (registrado) o 0,5 (roaming). AT+CSQ responde +CSQ: 20,99: el primer dígito es 0–31 (RSSI, dBm ≈ -113 + 2×CSQ, por lo tanto 20 ≈ -73 dBm, excelente; < 10 ≈ -93 dBm, límite), 99 = desconocido. AT+QENG indica la RAT (NB-IoT o LTE-M) y la banda — verifique que sean las esperadas.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales