gsm-connexion.ino

Arduino MKR GSM 1400 · Archivo : gsm-connexion.ino · Lenguaje : Arduino · Uso : Se connecter au réseau cellulaire 2G et afficher le statut

Primer paso imprescindible con el MKR GSM 1400: inicializar el módem u-blox, comprobar que la SIM se reconoce y esperar el registro en una red 2G. El programa muestra el operador y la calidad de señal en el monitor serie a 9600 baudios.

Hardware

Una Arduino MKR GSM 1400 (microcontrolador SAMD21, módem celular 2G/GPRS, antena externa, alimentada por batería LiPo en el conector J6 o por USB). Una SIM de datos 2G activa (formato micro), una antena 2G enroscada en el conector SMA y un cable micro-USB.

Cableado

Sin cableado externo: inserta la SIM con los contactos hacia abajo en el borde opuesto al USB, enrosca la antena y conecta USB.

Funcionamiento

gsm.begin() alimenta el módem y desbloquea la SIM con el PIN. waitNetworkReady(30) consulta el registro cada segundo hasta 30 s. getOperator() y getSignalQuality() confirman el enlace de radio.

Ejecución

En el IDE de Arduino, instala el paquete Arduino SAMD Boards, selecciona la placa MKR GSM 1400 y carga. Los ejemplos de red suponen una SIM de datos activa insertada, la antena enroscada y cobertura 2G todavía disponible en tu zona.

Variantes

Desactiva el PIN de la SIM (desde un teléfono) y pasa PIN_SIM vacío para arrancar antes; prueba también getIMSI().

gsm-connexion.ino

// Connexion au réseau avec le MKR GSM 1400 (bibliothèque MKRGSM).
#include <MKRGSM.h>

const char PIN_SIM[] = "0000"; // "0000" ou "" si code PIN désactivé
const char APN[] = "sl2g";      // APN 2G de votre opérateur

GSM gsm;
GSMClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial);
  Serial.println(F("Init modem GSM..."));
  if (gsm.begin(PIN_SIM) != GSM_READY) {
    Serial.println(F("Modem indisponible, verif. SIM/antenne"));
    while (true);
  }
  Serial.println(F("Modem pret, attachement reseau..."));
  if (gsm.waitNetworkReady(30) == ON_NET) {
    Serial.print(F("Enregistre sur : "));
    Serial.println(g.getOperator());
    Serial.print(F("Signal : "));
    Serial.println(g.getSignalQuality());
  } else {
    Serial.println(F("Echec attachement, relance..."));
    gsm.restart();
  }
}

void loop() {}

← Volver a la ficha