🛠 Se connecter à un réseau GPRS (APN, signal, enregistrement)
Objectifs
Mettre en réseau la MKR GSM 1400 : initialiser le module u-blox SARA-U201 (attention : pas un TOBY, la rumeur communautaire est fausse), débloquer la SIM, s'enregistrer sur le réseau, mesurer le signal et ouvrir une connexion à commutation de paquets GPRS avec l'APN de l'opérateur. C'est le prérequis de tous les tutoriels SMS, HTTP et MQTT.
Matériel
- Carte Arduino MKR GSM 1400
- Antenne externe GSM sur connecteur U.FL (obligatoire : ne jamais allumer sans antenne)
- Carte micro-SIM activée, sans code PIN, avec un forfait data >
- Batterie LiPo ≥ 1500 mAh branchée en permanence (exigence officielle : les pics d'émission dépassent ce que l'USB fournit)
- Bibliothèque MKRGSM (Library Manager) ; core Arduino SAMD Boards
Code complet
#include <MKRGSM.h>
#include "arduino_secrets.h" // onglet Secret de l'IDE
const char PINNUMBER[] = SECRET_PINNUMBER; // "" si aucun code PIN
const char GPRS_APN[] = SECRET_GPRS_APN; // ex. "orange.fr", "sl2sfr", "free"
GSM gsmAccess;
GPRS gprs;
GSMScanner scanner;
void setup {
Serial.begin(9600);
while (!Serial) {}
// 1) Radio + deblocage SIM + enregistrement réseau
while (gsmAccess.begin(PINNUMBER) != GSM_READY) {
Serial.println("Enregistrement réseau en cours...");
delay(2000);
}
Serial.println("GSM_READY : enregistre sur le réseau");
// 2) Operateur et puissance du signal
char op[50];
if (scanner.getOperator(op) == GSM_ERROR) strcpy(op, "inconnu");
Serial.print("Operateur : "); Serial.println(op);
long rssi = scanner.signalStrength;
Serial.print("RSSI (dBm) : "); Serial.println(rssi);
// 3) Attache GPRS (contexte de données PDP)
while (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) != GPRS_READY) {
Serial.println("Attach GPRS échoue, retry...");
delay(3000);
}
Serial.println("GPRS_READY : connexion données etablie");
}
void loop { delay(1000); }
Vérification attendue
La console affiche « GSM_READY » (l'enregistrement peut demander plusieurs dizaines de secondes à froid), puis l'opérateur et un RSSI négatif réaliste (par exemple -65 à -107 dBm ; 99 ou -1000 = pas de carte SIM ou pas d'antenne), enfin « GPRS_READY ». L'antenne doit être déployée et orientée, jamais posée sur du métal (recommandation Arduino).
Erreurs fréquentes
- SIM avec code PIN non désactivé :
beginéchoue en boucle ; désactiver le PIN dans un téléphone ou passer le bonSECRET_PINNUMBER. - Mauvais APN : l'attach GPRS échoue alors que le réseau est trouvé ; vérifier l'APN, login et mot de passe auprès de l'opérateur (certains exigent un type d'APN « IoT »).
- Allumer sans antenne : risque de dégradation du module et aucun signal.
- Alimentation insuffisante : la carte se réinitialise dès l'émission (pics de courant de la classe 4, ordre du pic a 2 A) ; brancher la LiPo ≥ 1500 mAh.
- Oublier que le 3G se coupe chez beaucoup d'opérateurs : le SARA-U201 replie sur la 2G/GPRS, elle-même en cours d'extinction dans certains pays — tester la couverture 2G locale.
- Réseau : les connexions entrantes sont souvent bloquées par l'opérateur (CGNAT), inutile d'essayer un
GSMServeraccessible depuis Internet.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
gsm-connexion.inoArduinoenvoi-sms.inoArduinohttp-get.inoArduinohttp-post-capteur.inoArduinoheure-gsm.inoArduinoappels.inoArduino