gsm-connexion.ino
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() {}