🛠 Envoyer et recevoir des SMS

Arduino MKR GSM 1400 · intermediaire · Schéma : IMG-mkr-gsm-1400-intermediaire-2-mkrgsm-sms.svg — MKR GSM 1400 échangeant des SMS avec un téléphone mobile, ondes radio entre l'antenne et le téléphone, message « ALERTE » affiché sur les deux écrans.

Objetivos

Utilizar la clase GSM_SMS de la biblioteca MKRGSM para enviar un SMS de alerta a un número internacional y escuchar los SMS entrantes para controlar la tarjeta de forma remota (texto « LED ON » / « LED OFF »). El SMS sigue siendo el canal de respaldo ideal cuando GPRS está cortado: funciona incluso cuando los datos no están disponibles, siempre que exista cobertura 2G.

Material

Código completo

#include <MKRGSM.h>
#include "arduino_secrets.h"
const char PINNUMBER[] = SECRET_PINNUMBER;
const char NUMERO_DEST[] = "+33612345678";  // format international

GSM     gsmAccess;
GSM_SMS sms;

void setup {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  while (!Serial) {}
  while (gsmAccess.begin(PINNUMBER) != GSM_READY) delay(1000);
  Serial.println("GSM pret, ecoute SMS...");

  // SMS de demarrage
  sms.beginSMS(NUMERO_DEST);
  sms.print("MKR GSM 1400 en ligne.");
  sms.endSMS;
}

void loop {
  if (sms.available) {
    String msg;
    char c;
    while ((c = sms.read) != -1) msg += c;
    msg.trim;
    Serial.println(msg);
    if (msg.equalsIgnoreCase("LED ON"))  digitalWrite(LED_BUILTIN, HIGH);
    if (msg.equalsIgnoreCase("LED OFF")) digitalWrite(LED_BUILTIN, LOW);

    sms.beginSMS(sms.remoteNumber);   // accuse de reception
    sms.print("Recu : " + msg);
    sms.endSMS;
  }
  delay(1000);
}

Verificación esperada

Al iniciar, el teléfono recibe « MKR GSM 1400 en línea. ». Enviar « LED ON » enciende el LED D6 y devuelve un acuse de recibo « Recibido: LED ON »; « LED OFF » lo apaga. endSMS se bloquea hasta el envío o el fallo: el primer envío después del registro puede tardar varios segundos.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales