Envía y recibe SMS fácilmente con el shield GSM SIM900 para Arduino Mega
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino Mega 2560 | 1 |
| Shield GSM/GPRS basado en SIM900 (Seeed Studio) | 1 |
Aplicaciones y servicios en línea
- Visuino - Entorno de desarrollo gráfico para Arduino
- Arduino IDE
Sobre este proyecto
Uno de los elementos esenciales para construir proyectos IoT es la capacidad de conectar dispositivos. Wi-Fi y Bluetooth son buenas opciones de bajo costo, pero solo funcionan a corta distancia o en zonas con hotspot. Cuando el dispositivo necesita estar en una ubicación remota, GSM es una opción buena y fácil de configurar.
En este tutorial, te mostraré lo fácil que es enviar y recibir mensajes SMS por GSM con Arduino.
En los siguientes tutoriales, también te mostraré cómo puedes conectarte por GSM a Internet y acceder a servidores, y cómo puedes gestionar llamadas de voz.
Paso 1: Componentes
- Un Arduino Mega (Puedes usar otras placas, pero es mejor usar una que tenga 2 o más puertos serie. El proyecto puede modificarse para usar Software Serial, pero se recomienda usar un puerto serie hardware)
- Un Shield GSM basado en SIM900 o Shield/Module compatible con tarjeta SIM instalada (Imagen 2) (Usé un Shield GSM/GPRS Versión 1.0 de Seeed Studio)
- 2 cables puente Hembra-Macho
Paso 2: Conectar el shield GSM a Arduino
- Retira los jumpers de los Jumpers de Selección RX y TX del Shield GSM (Imagen 1)
- Conecta el Shield GSM encima del Arduino Mega
- Conecta el extremo Macho de un cable puente Macho-Hembra (Cable naranja) al pin RX1 del Arduino Mega (Imágenes 2 y 3)
- Conecta el extremo Macho de un cable puente Macho-Hembra (Cable marrón) al pin TX1 del Arduino Mega (Imágenes 2 y 3)
- Conecta el extremo Hembra del cable RX1 (Cable naranja) al pin central del Jumper de Selección RX del Shield GSM (Imagen 4)
- Conecta el extremo Hembra del cable TX1 (Cable marrón) al pin central del Jumper de Selección TX del Shield GSM (Imagen 4)
- Imagen 5 muestra el Shield GSM instalado y conectado
Paso 3: Iniciar Visuino y seleccionar el tipo de placa Arduino
Para empezar a programar el Arduino, necesitarás tener el Arduino IDE instalado desde aquí: https://www.arduino.cc/.
¡Asegúrate de instalar la versión 1.6.7 o superior, de lo contrario este tutorial no funcionará!
Visuino: https://www.visuino.com también necesita ser instalado.
- Inicia Visuino como se muestra en la primera imagen
- Haz clic en el botón "Tools" en el componente Arduino (Imagen 1) en Visuino
- Cuando aparezca el diálogo, selecciona "Arduino Mega 2560" como se muestra en Imagen 2
Paso 4: En Visuino: Configurar la velocidad del canal Serial 1 a 19200
El Shield GSM está configurado por defecto a 19200 baudios. Necesitamos configurar el Puerto Serie 1 para esta velocidad:
- En el Inspector de Objetos, expande la propiedad "Serial", luego la sub-propiedad "Item[ 1 ]", y selecciona su sub-propiedad "Speed" (Imagen 1)
- En el Inspector de Objetos, haz clic en el botón "Flecha Abajo" junto al valor de la sub-propiedad "Speed" (Imagen 1)
- En la Lista Desplegable, selecciona "19200" (Imagen 2), para cambiar el valor de la propiedad (Imagen 3)
Paso 5: En Visuino: Añadir y conectar componente GSM/GPRS Serial
Necesitamos añadir un componente para controlar el Módulo GSM. El módulo se controla a través del canal Serie, así que necesitamos conectarlo. El Pin Digital 9 se usa para encender/apagar el Módulo:
- Escribe "gsm" en el cuadro de filtro de la Caja de Herramientas de Componentes, luego selecciona el componente "GSM/GPRS Serial" (Imagen 1), y arrástralo al área de diseño (Imagen 2)
- Conecta el pin de salida "Out" del componente GSM1 al pin de entrada "In" del canal "Serial[ 1 ]" del componente Arduino (Imagen 2)
- Conecta el pin de salida "Power" del componente GSM1 al pin de entrada "Digital" del canal "Digital[ 9 ]" del componente Arduino (Imagen 3). Este pin encenderá/apagará la alimentación del Módulo GSM
Paso 6: En Visuino: Añadir, configurar y conectar componente Text Value
Tarda un tiempo en inicializarse el Módulo GSM. Es bueno tener alguna indicación de que el módulo está listo. Para esto enviaremos el texto "GSM Ready" al puerto serie cuando el módulo esté listo:
- Escribe "text val" en el cuadro de filtro de la Caja de Herramientas de Componentes, luego selecciona el componente "Text Value" (Imagen 1), y arrástralo al área de diseño (Imagen 2)
- En el Inspector de Objetos, establece el valor de la propiedad "Value" a "GSM Ready" (Imagen 2)
- Conecta el pin de salida "Ready" del componente GSM1 al pin de entrada "In" del componente TextValue1 (Imagen 3)
- Conecta el pin de salida "Out" del componente TextValue1 al pin de entrada "In" del canal "Serial[ 0 ]" del componente Arduino (Imagen 4)
Paso 7: En Visuino: Añadir elemento Short Message al componente GSM, y luego función Send Message al elemento
El componente GSM consta de muchos módulos que realizan diferentes tareas. Como solo usaremos SMS, necesitamos añadir solo el módulo "Short Message", y luego añadir una función "Send SMS" a este:
- En el Área de Diseño, selecciona el componente GSM1 (Imagen 1)
- En el Inspector de Objetos, haz clic en el botón "..." junto al valor de la propiedad "Module" del componente GSM1 (Imagen 1)
- En el editor de módulos selecciona "Short Message", y luego haz clic en el botón "+" (Imagen 2) para añadir uno (Imagen 3)
- En el Inspector de Objetos, haz clic en el botón "..." junto al valor de la propiedad "Functions" del módulo "Short Message" (Imagen 3)
- En el editor de funciones selecciona "Send SMS", y luego haz clic en el botón "+" (Imagen 2) para añadir uno
Paso 8: En Visuino: Configurar la función Send SMS y conectar la info de mensaje recibido al Serial
- En el Inspector de Objetos, establece el valor de la propiedad "Address" del elemento "Send SMS" al número de teléfono donde quieres enviar el mensaje (En mi caso, para probar ingresé el número de mi tarjeta SIM para que el módulo reciba e imprima los mensajes que envía) (Imagen 1 - muestra un número ficticio)
- En el Inspector de Objetos, selecciona la propiedad "Text" (Imagen 2)
- Haz clic en el botón "Pin" al frente de la propiedad "Text" (Imagen 2)
- En la Lista Desplegable, selecciona "String SinkPin" (Imagen 3). Esto añadirá un nuevo pin "Text" a la función "Send SMS" (Imagen 4)
- Cierra los diálogos del editor de elementos (Imagen 4)
- Conecta el pin de salida "Out" del bloque "MessageInfo" del componente GSM1 al pin de entrada "In" del canal "Serial[ 0 ]" del componente Arduino (Imagen 4)
Paso 9: En Visuino: Añadir y conectar componente Char To Text
El puerto serie recibe un carácter a la vez. Para enviar mensajes SMS, necesitamos obtener todos los caracteres de una línea, crear un Texto a partir de él, y enviarlo al Módulo GSM:
- Escribe "char" en el cuadro de filtro de la Caja de Herramientas de Componentes, luego selecciona el componente "Char to Text" (Imagen 1), y arrástralo al área de diseño (Imagen 2)
- Conecta el pin de salida "Out" del canal "Serial[ 0 ]" del componente Arduino al pin de entrada "In" del componente CharToText1 (Imagen 2)
- Conecta el pin de salida "Out" del componente CharToText1 al pin de entrada "Text" del elemento "Send SMS" del componente GSM1 (Imagen 3)
Paso 10: En Visuino: Añadir, configurar y conectar componente Delay
Necesitamos asegurarnos de que enviamos el SMS después de que el texto se haya actualizado correctamente. Podemos usar un componente Delay con un retraso corto para eso:
- Escribe "delay" en el cuadro de filtro de la Caja de Herramientas de Componentes, luego selecciona el componente "Delay" (Imagen 1), y arrástralo al área de diseño (Imagen 2)
- En el Inspector de Objetos, establece el valor de la propiedad "Interval" a "100" (Imagen 2)
- Conecta el pin de salida "Out" del componente CharToText1 al pin de entrada "In" del componente Delay1 (Imagen 3)
- Conecta el pin de salida "Out" del componente Delay1 al pin de entrada "Clock" del elemento "Send SMS" del componente GSM1 (Imagen 4)
Paso 11: Generar, compilar y subir el código de Arduino
- En Visuino, pulsa F9 o haz clic en el botón mostrado en Imagen 1 para generar el código de Arduino y abrir el Arduino IDE
- En el Arduino IDE, haz clic en el botón Subir, para compilar y subir el código (Imagen 2)
Paso 12: ¡Y a jugar!
¡Felicidades! Has completado el proyecto.
Imagen 1 muestra el proyecto conectado y encendido. En Imagen 2 puedes ver el diagrama completo de Visuino. Si conectas con Terminal Serie al Arduino, después de unos 30 segundos verás aparecer el mensaje "GSM Ready" (Imagen 3)
Una vez que aparece el mensaje, si escribes algún texto y haces clic en "Enviar" (Imagen 4), el texto se enviará como mensaje SMS. Si has seleccionado como número de teléfono en el Paso 8 el número de la tarjeta SIM del Shield, después de un rato recibirás el mensaje, y se mostrará en el Terminal Serie (Imagen 5). Si has puesto el número de un dispositivo diferente en el Paso 8, los mensajes se enviarán a ese dispositivo.
Puedes enviar mensajes SMS al número de teléfono desde otros teléfonos y dispositivos, y también se mostrarán en el terminal serie.
También se adjunta el proyecto Visuino que creé para este tutorial. Puedes descargarlo y abrirlo en Visuino: https://www.visuino.com
F1FP7L0IQS4L35B.zip
Proceso de manufactura
- Sistema de Asistencia RFID Fiable con Arduino y Python
- Proyecto Sensor DHT11 Temperatura y Humedad con Indicadores LED y Altavoz Piezo
- Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
- Controla tu Roomba Create 2 con Arduino y Android: Guía Completa
- Construye un voltímetro DIY con Arduino y pantalla Nokia 5110 – Guía paso a paso
- Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
- Sistema de monitorización de incendios forestales en tiempo real con alertas SMS
- Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
- Leer Temperatura y Humedad con DHT11 en Blynk – Tutorial Paso a Paso con Arduino
- Dominando reconocimiento y síntesis de voz en Arduino Due
- Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo