gsm-connexion.ino
Premier pas indispensable avec le MKR GSM 1400 : initialiser le modem u-blox, vérifier que la carte SIM est reconnue, puis attendre l'enregistrement sur un réseau 2G. Le programme affiche le nom de l'opérateur et la qualité du signal sur le moniteur série à 9600 bauds.
Matériel requis
Une Arduino MKR GSM 1400 (microcontrôleur SAMD21, modem cellulaire 2G/GPRS, antenne externe, alimentation par batterie LiPo sur le connecteur J6 ou par USB). Une carte SIM data 2G active (format micro), une antenne 2G vissée sur le connecteur SMA, et un câble micro-USB.
Câblage
Aucun câblage externe : insérez la SIM contact vers le bas côté bord opposé à l'USB, vissez l'antenne, branchez l'USB.
Fonctionnement
gsm.begin() alimente le modem et déverrouille la SIM avec le code PIN. waitNetworkReady(30) interroge toutes les secondes l'état d'enregistrement, jusqu'au timeout de 30 s. getOperator() et getSignalQuality() confirment la connexion radio.
Exécution
Dans l'IDE Arduino, installez le package Arduino SAMD Boards, sélectionnez la carte MKR GSM 1400, puis téléversez. Les exemples réseau supposent une carte SIM data active insérée, broche antenne vissée, et un réseau 2G encore couvert dans votre région.
Variantes
Désactivez le code PIN de la SIM (via un téléphone) et passez PIN_SIM vide pour un démarrage plus rapide ; testez aussi getIMSI() pour identifier la carte.
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() {}