¿Te gustaría aprender cómo utilizar el Escudo GPRS GSM SIM900 con Arduino? En este artículo te ofrecemos todas las instrucciones que necesitas para poder aprovechar al máximo este dispositivo y desarrollar tus propios proyectos de comunicación inalámbrica. ¡No te lo pierdas!
Esta publicación es una guía completa de SIM900 GSM GPRS Shield con Arduino. Aprenda a enviar y recibir SMS y a realizar y recibir llamadas con Arduino.
En esta guía cubrimos:
- Presentamos el escudo GPRS GSM SIM900
- Hardware del escudo SIM900 GSM GPRS
- Comandos SIM900 AT
- Probando el escudo
- Enviar y recibir SMS – ejemplo
- Hacer y recibir llamadas – ejemplo
Presentamos el escudo GPRS GSM SIM900
El SIM900 GSM GPRS Shield se muestra en la siguiente imagen.
GSM representa GRAMOglobal Ssistema para METROComunicaciones móviles y es el estándar mundial para las comunicaciones móviles.
GPRS representa GRAMOgeneralmente PAGacta RAudio SServicio. GPRS es un servicio móvil para comunicaciones celulares 2G y 3G.
Aplicaciones:
El GSM GPRS Shield es particularmente útil porque le permite:
- Conéctese a Internet a través de la red GPRS
- Enviar y recibir SMS
- Realizar y recibir llamadas telefónicas
Sus capacidades lo hacen perfecto para proyectos con Arduino como:
- Control remoto de dispositivos electrónicos: enviar un SMS para encender algo;
- Reciba alertas: envíe un mensaje de texto a su teléfono móvil cuando se detecte movimiento en su hogar;
- Reciba datos de sensores: envíe SMS periódicamente con datos meteorológicos diarios a su teléfono móvil.
características
Estas son algunas de las características clave del escudo:
- Compatible con Arduino y clones
- Basado en el módulo SIM900 de SIMCOM
- Le permite enviar SMS, MMS, GPRS y audio a través de UART usando comandos AT.
- Tiene 12 GPIO, 2 PWM y un ADC incorporado del módulo SIM900
- Cuatribanda: 850, 900, 1800 y 1900 MHz, por lo que debería funcionar en todos los países con redes GSM (2G).
- Control mediante comandos AT
- Admite RTC (reloj en tiempo real): hay un soporte para una batería CR1220 de 3 V en la parte posterior
- Cuenta con tomas de micrófono y auriculares para llamadas telefónicas.
¿Donde comprar?
tu puedes el Escudo SIM900 GSM GPRS en Maker Advisor y encuentra el mejor precio.
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Pasos preparatorios
Antes de comenzar a utilizar su módulo GSM GPRS SIM900, debe considerar algunos aspectos relacionados con la tarjeta SIM y la fuente de alimentación del escudo.
Cobertura GSM
Asegúrese de tener recepción en una red GSM 850 MHz, GSM 900 MHz, DCS 1800 MHz o PCS 1900 MHz. Por GSM nos referimos a 2G.
Tarjeta SIM prepago
Le recomendamos que utilice un plan prepago o un plan con SMS ilimitados para realizar pruebas. De lo contrario, si algo sale mal, podría terminar pagando una factura considerable por cientos de mensajes de texto SMS enviados accidentalmente. En este tutorial usaremos un plan prepago con SMS ilimitados.
El Shield utiliza el tamaño de la tarjeta SIM original, no Micro o Nano. Si tienes Micro o Nano, quizás quieras considerar uno Adaptador de tamaño de tarjeta SIM.
Desactivar el bloqueo de PIN
Para utilizar la tarjeta SIM con el Shield, debes desactivar el bloqueo de PIN. La forma más sencilla de hacerlo es insertar la tarjeta SIM en su teléfono inteligente y desactivar el bloqueo con PIN en la configuración de seguridad del teléfono.
En mi caso tuve que pasar por lo siguiente: Ajustes > Progresivo Ajustes > Seguridad > bloqueo de tarjeta SIM y desactive el bloqueo de la tarjeta SIM con PIN.
Encuentre la fuente de alimentación adecuada
El Shield tiene un conector DC para fuente de alimentación, como se muestra en la imagen a continuación.
Al lado de la toma de corriente hay un interruptor para seleccionar la fuente de alimentación. Hay una flecha al lado del interruptor de palanca en el tablero que indica la posición del interruptor de palanca para usar una fuente de alimentación externa. Mueva el interruptor de palanca para usar energía externa como se muestra arriba.
Para encender el escudo, recomendamos usar una fuente de alimentación de 5V, 2A como la que se muestra a continuación. También puede funcionar con 9V 1A o 12V 1A.
Puede encontrar la fuente de alimentación adecuada para este escudo aquí Aquí. Asegúrese de seleccionar el modelo 5V 2A.
Hardware del escudo SIM900 GSM GPRS
La siguiente imagen muestra la parte posterior del escudo. Dispone de soporte para la tarjeta SIM y batería CR1220 de 3V para el RTC (reloj en tiempo real).
La siguiente imagen muestra los componentes clave del escudo de la placa a los que debe prestar atención.
Primeros pasos
1) Inserte la tarjeta SIM en el soporte de la tarjeta SIM; asegúrese de haber leído los pasos preparatorios en la sección anterior.2) Asegúrese de que la antena esté bien conectada.
3) Al seleccionar el puerto serie, asegúrese de que la tapa del puente esté conectada como se muestra en la figura siguiente para utilizar el software serie.
4) Alimente el escudo con una fuente de alimentación externa de 5V. Asegúrese de seleccionar la fuente de alimentación externa usando el interruptor de palanca al lado del conector de CC.
5) Para encender/apagar el Shield, presione el botón de encendido durante aproximadamente 2 segundos.
6) Luego, el LED de estado se enciende y el LED NetLight parpadea cada 800 ms hasta que se encuentra la red. Cuando se encuentre la red, el LED NetLight comenzará a parpadear cada tres segundos.
Nota: Puedes encender el Shield automáticamente a través del software. Puedes descubrir cómo hacer esto en Enciende automáticamente el escudo. Sección, después de los ejemplos de código.
7) Puede probar que el escudo funciona correctamente enviando comandos AT desde el IDE de Arduino utilizando un programador FTDI, como mostraremos más adelante en esta guía.
Comandos SIM900 AT
- Configure el SIM900 en modo texto: AT+CMGF=1r
- Enviar SMS a un número: EN+CMGS=NÚMERO DE TELÉFONO (en formato internacional)
- Lee el primer SMS de tu bandeja de entrada: AT+CMGR=1r
- Leer el segundo SMS desde la bandeja de entrada: AT+CMGR=2r
- Lea todos los SMS de su bandeja de entrada: AT+CMGR=TODOSr
- Llame a un número: ATDP+ NÚMERO DE TELÉFONO (en formato internacional)
- colgar una llamada: ATH
- contestar una llamada entrante: EN UN
Para obtener más información, consulte el manual de comandos AT del SIM900. Aquí.
Probando el escudo con el programador FTDI
Para probar si todo funciona correctamente, puede probar el escudo enviando comandos AT desde el monitor serie del IDE de Arduino. Para hacer esto necesitarás un programador FTDI como el que se muestra en la imagen a continuación. Puedes conseguir un programador FTDI como este. Aquí.
1) Conecte el programador FTDI al escudo GSM como se muestra en la siguiente figura.
2) Abra el IDE de Arduino y seleccione el puerto COM correcto.
3) Abrir el monitor serie
4) Elegir 19200 Velocidad de baudios (la configuración predeterminada del escudo es 19200) y Retorno de carro. Escribir EN Haga clic en el cuadro resaltado en rojo y luego presione Enter. Vea la imagen a continuación.
5) El escudo reacciona con DE ACUERDOsi todo funciona correctamente.
Conectando el escudo a Arduino
Conecte el Shield al Arduino como se muestra en los esquemas a continuación.
Enviar un SMS
Para enviar un SMS, cargue el siguiente código en su placa Arduino.
/*********
Complete project details at https://randomnerdtutorials.com
*********/
#include <SoftwareSerial.h>
// Configure software serial port
SoftwareSerial SIM900(7, 8);
void setup() {
// Arduino communicates with SIM900 GSM shield at a baud rate of 19200
// Make sure that corresponds to the baud rate of your module
SIM900.begin(19200);
// Give time to your GSM shield log on to network
delay(20000);
// Send the SMS
sendSMS();
}
void loop() {
}
void sendSMS() {
// AT command to set SIM900 to SMS mode
SIM900.print("AT+CMGF=1r");
delay(100);
// REPLACE THE X's WITH THE RECIPIENT'S MOBILE NUMBER
// USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
SIM900.println("AT+CMGS="+XXXXXXXXXXXX"");
delay(100);
// REPLACE WITH YOUR OWN SMS MESSAGE CONTENT
SIM900.println("Message example from Arduino Uno.");
delay(100);
// End AT command with a ^Z, ASCII code 26
SIM900.println((char)26);
delay(100);
SIM900.println();
// Give module time to send SMS
delay(5000);
}
En este código primero vinculas el SoftwareSerial.h Biblioteca y crea un puerto serie de software en los pines 7 y 8. (El pin 7 está configurado como RX y el 8 como TX)
#include <SoftwareSerial.h> SoftwareSerial SIM900(7, 8);
El Enviar un SMS() La función creada envía el SMS. Esta función utiliza los comandos AT: EN+CMGF=1alrededor AT+CMGS.
Debe cambiar el número de móvil del destinatario a: (reemplace el X's con el número de teléfono del destinatario)
SIM900.println("AT + CMGS = "++++++++++++++"");
El número de móvil del destinatario debe estar en formato internacional.
Luego podrá editar el texto que desea enviar en la siguiente línea.
// REPLACE WITH YOUR OWN SMS MESSAGE CONTENT
SIM900.println("Message example from Arduino Uno.")
Leer SMS recibidos
Para leer los SMS entrantes, cargue el siguiente código en su Arduino. Después de cargar, espere 20 segundos para que Shield establezca comunicación. Luego pruebe el script enviando un SMS al número de la tarjeta SIM del Shield. El SMS se muestra en el monitor serie del Arduino – velocidad en baudios: 19200.
/*********
Complete project details at https://randomnerdtutorials.com
*********/
#include <SoftwareSerial.h>
// Configure software serial port
SoftwareSerial SIM900(7, 8);
//Variable to save incoming SMS characters
char incoming_char=0;
void setup() {
// Arduino communicates with SIM900 GSM shield at a baud rate of 19200
// Make sure that corresponds to the baud rate of your module
SIM900.begin(19200);
// For serial monitor
Serial.begin(19200);
// Give time to your GSM shield log on to network
delay(20000);
// AT command to set SIM900 to SMS mode
SIM900.print("AT+CMGF=1r");
delay(100);
// Set module to send SMS data to serial out upon receipt
SIM900.print("AT+CNMI=2,2,0,0,0r");
delay(100);
}
void loop() {
// Display any text that the GSM shield sends out on the serial monitor
if(SIM900.available() >0) {
//Get the character from the cellular serial port
incoming_char=SIM900.read();
//Print the incoming character to the terminal
Serial.print(incoming_char);
}
}
En este código configuras el módulo para enviar los datos SMS a la salida serie:
SIM900.print("AT+CNMI=2,2,0,0,0r");
Almacena los caracteres entrantes del mensaje SMS en el carácter_entrante Variable. Lees los personajes con el SIM900.leer() Función.
Haz una llamada
Para realizar una llamada, cargue el siguiente código en su Arduino.
No olvides editar el código con el número de teléfono al que deseas llamar.
/*********
Complete project details at https://randomnerdtutorials.com
*********/
#include <SoftwareSerial.h>
// Configure software serial port
SoftwareSerial SIM900(7, 8);
void setup() {
// Arduino communicates with SIM900 GSM shield at a baud rate of 19200
// Make sure that corresponds to the baud rate of your module
SIM900.begin(19200);
// Give time to your GSM shield log on to network
delay(20000);
// Make the phone call
callSomeone();
}
void loop() {
}
void callSomeone() {
// REPLACE THE X's WITH THE NUMER YOU WANT TO DIAL
// USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
SIM900.println("ATD + +XXXXXXXXX;");
delay(100);
SIM900.println();
// In this example, the call only last 30 seconds
// You can edit the phone call duration in the delay time
delay(30000);
// AT command to hang up
SIM900.println("ATH"); // hang up
}
Para realizar la llamada, utilice el llamá a alguien() Función que ATD Dominio.
SIM900.println("ATD + +XXXXXXXXX;");
Necesitas reemplazar eso X's (resaltado en rojo) con el número de teléfono al que desea llamar.
No olvides conectar un micrófono y auriculares para llamadas telefónicas.
En este ejemplo de código, la llamada finaliza después de 30 segundos. ATH Dominio:
SIM900.println("ATH");
Colgar después de 30 segundos no es muy útil, pero funciona bien, por ejemplo. La idea es que tú ATH Comando cuando se activa un evento. Por ejemplo, conecte un botón al Arduino que, cuando se presione, ATH Comando para colgar el teléfono.
Responder llamadas telefónicas entrantes
El siguiente código responde a las llamadas entrantes.
/*********
Complete project details at https://randomnerdtutorials.com
*********/
#include <SoftwareSerial.h>
// Configure software serial port
SoftwareSerial SIM900(7, 8);
char incoming_char=0;
void setup() {
// Arduino communicates with SIM900 GSM shield at a baud rate of 19200
// Make sure that corresponds to the baud rate of your module
SIM900.begin(19200); // for GSM shield
// For serial monitor
Serial.begin(19200);
// Give time to log on to network.
delay(20000);
SIM900.print("AT+CLIP=1r"); // turn on caller ID notification
delay(100);
}
void loop() {
// Display any text that the GSM shield sends out on the serial monitor
if(SIM900.available() >0) {
// Get the character from the cellular serial por
// With an incomming call, a "RING" message is sent out
incoming_char=SIM900.read();
// Check if the shield is sending a "RING" message
if (incoming_char=='R') {
delay(10);
Serial.print(incoming_char);
incoming_char=SIM900.read();
if (incoming_char =='I') {
delay(10);
Serial.print(incoming_char);
incoming_char=SIM900.read();
if (incoming_char=='N') {
delay(10);
Serial.print(incoming_char);
incoming_char=SIM900.read();
if (incoming_char=='G') {
delay(10);
Serial.print(incoming_char);
// If the message received from the shield is RING
// Send ATA commands to answer the phone
SIM900.print("ATAr");
}
}
}
}
}
}
Cuando alguien llama al número SIM900, envía un mensaje que dice «RING». Para saber si alguien lo está llamando, puede esperar los caracteres entrantes del SIM900 y luego comparar si es un mensaje RING. Eso es lo que se hace en este código. Cuando se recibe un mensaje RING, envíe el EN UN Comando para contestar el teléfono.
Enciende automáticamente el escudo.
En lugar de presionar manualmente el botón «Encendido» para encender el escudo, puede encenderlo automáticamente usando el software.
1) Primero debe soldar los conectores R13 en el escudo como se muestra en la imagen a continuación, resaltada en rojo.
2) Conecte D9 en el escudo al pin D9 de Arduino como se muestra en la imagen a continuación.
3) Pegue el siguiente fragmento de código en la función setup(). Esto equivale a presionar el botón de encendido del escudo.
digitalWrite(9, HIGH); delay(1000); digitalWrite(9, LOW); delay(5000);
Solución de problemas
Shield no responde con OK
Verifique sus conexiones TX y RX al Arduino. Intente repetir el proceso intercambiando los pines TX con RX.
Además, verifique que haya seleccionado el número de serie del software colocando la tapa del puente en la ubicación adecuada en el selector de serie.
No aparecen mensajes en el monitor serie.
Para mostrar los mensajes en el monitor serie, las velocidades en baudios del escudo y del puerto serie del Arduino deben ser las mismas. La velocidad en baudios predeterminada del SIM900 GSM GPRS Shield es 19200, así que seleccione la velocidad en baudios de Arduino en 19200.
Sin embargo, si necesita cambiar la velocidad en baudios del escudo, puede enviar el siguiente comando AT para cambiarla a 19200 u otra velocidad en baudios adecuada.
AT+IPR=19200
Envolver
Este tutorial le mostrará cómo enviar y recibir SMS y realizar y recibir llamadas usando Arduino. Puede aplicar los conceptos aprendidos en este tutorial para crear sus propios proyectos para comunicarse a través de una red celular. Tenemos otros proyectos que utilizan GSM. Échales un vistazo a continuación:
- Controlar una lámpara de 12V mediante SMS
- Solicitar datos de sensores vía SMS con Arduino
Si te gustan los proyectos de Arduino, asegúrate de consultar nuestros últimos proyectos de Arduino: Proyectos Arduino paso a paso: cree 25 proyectos
Esperamos que esta guía le haya resultado útil.
Gracias por leer.
Instrucciones para el Escudo GPRS GSM SIM900 con Arduino
Este artículo es una guía completa para el uso del Escudo GSM GPRS SIM900 con Arduino. Aprenderás cómo enviar y recibir SMS y cómo hacer y recibir llamadas telefónicas con Arduino.
Introducción al Escudo GSM GPRS SIM900
El Escudo GSM GPRS SIM900 es un componente muy útil que te permite:
- Conectarte a internet a través de la red GPRS
- Enviar y recibir SMS
- Hacer y recibir llamadas telefónicas
Estas capacidades lo hacen perfecto para proyectos con Arduino, como control remoto de electrodomésticos, recibir notificaciones o datos de sensores.
Características
Algunas de las características más importantes del escudo son:
- Compatible con Arduino y clones
- Basado en el módulo SIM900 de SIMCOM
- Permite enviar SMS, MMS, GPRS y Audio a través de UART mediante comandos AT
- Quad Band: 850; 900; 1800 y 1900 MHZ
- Control mediante comandos AT
- Soporta RTC (reloj de tiempo real)
- Conectores para micrófono y auriculares
Pasos Preliminares
Antes de empezar, aquí tienes algunos aspectos a considerar:
- Verificar la cobertura GSM
- Usar una tarjeta SIM prepaga
- Desactivar el bloqueo PIN de la tarjeta SIM
- Tener la fuente de alimentacion adecuada
Para más detalles sobre estos pasos, puedes consultar la fuente original.
Comandos AT SIM900
Algunos comandos AT útiles para el SIM900 son:
- Configurar el SIM900 en modo texto: AT+CMGF=1r
- Enviar un SMS: AT+CMGS=NUMERO_DE_TELEFONO
- Leer mensajes de la bandeja: AT+CMGR
- Hacer una llamada: ATDNUMERO_DE_TELEFONO
- Responder una llamada: ATA
Puedes encontrar más información en el manual de comandos AT del SIM900.
Conectando el Escudo a Arduino
Para conectar el escudo a Arduino, sigue el esquema detallado en la fuente original.
Envío y Recepción de SMS
Para enviar un SMS desde Arduino, utiliza el código proporcionado en la fuente original. Recuerda cambiar el número de teléfono destinatario y el mensaje a enviar.
Lectura de SMS Recibidos
Para leer los SMS entrantes, carga el código suministrado en la fuente original en tu Arduino.
Realización de Llamadas Telefónicas
Si deseas hacer una llamada, carga el código correspondiente en tu Arduino y no olvides editar el código con el número de teléfono al que deseas llamar.
Respuesta a Llamadas Entrantes
Para responder a llamadas entrantes, utiliza el código proporcionado en la fuente original. Este código contestará automáticamente a las llamadas que reciba el SIM900.
Conclusión
Con estos pasos y ejemplos podrás comenzar a experimentar con el Escudo GSM GPRS SIM900 y Arduino, abriendo un mundo de posibilidades para la comunicación remota. ¡Esperamos que esta guía haya sido útil para ti!
¡Me encantó este artículo! Muy claro y útil para alguien como yo que recién está empezando con Arduino. ¡Gracias por compartir!
Está bueno el tutorial, fácil de entender. Buena ayuda para los novatos con Arduino. ¡Gracias por el aporte!