GSM GPRS Shield SIMCom SIM900

publicado en: Tutoriales | 0

Módulo GSM GPRS Shield SIMCom SIM900

GSM GPRS Shield SIMCom SIM900 es una tarjeta compacta de comunicación inalámbrica con el circuito SIM900 de SIMCom. La tarjeta es compatible con todos los modelos de Arduino con el formato UNO, además puedes controlarla con otros microcontroladores también. La tarjeta está basada en el módulo SIM900 que se maneja con el protocolo serial.

La tarjeta GPRS Shield SIMCom SIM900 está configurada y controlada por vía UART usando comandos AT. Solo conecta la tarjeta al Arduino, microcontrolador u otra tarjeta de desarrollo, y comienza a comunicarte. Ideal para sistemas remotos, comunicación recursiva, puntos de control, mandar mensajes de texto a celulares, etc. Para ver la lista de comandos completa te recomendamos leer la hoja de datos de la tarjeta SIM900. Esta tarjeta no se maneja con bibliotecas en particular debido a que los comandos son solamente caracteres que se envían por el puerto serial. Recuerda que esta tarjeta es Harwdare Libre por lo que puedes ver los esquemáticos y diseños de la misma como referencia para tu proyecto, o modificar los archivos para crear tu propia versión.

GSM GPRS Shield SIMCom SIM900

Especificaciones SIM900

  • Compatible con Arduino.
  • Conexión con el puerto serial UART.
  • Quad-Band 850/ 900/ 1800/ 1900 Mhz.
  • GPRS multi-slot clase 10/8.
  • GPRS mobile station clase B.
  • Compatible GSM fase 2/2+.
  • Clase 4 (2 W (AT) 850 / 900 MHz).
  • Clase 1 (1 W (AT) 1800 / 1900MHz).
  • TCP/UP  embebido.
  • Soporta RTC.
  • Consumo de 1.5 mA (susp).

NOTA: Este shield GSM GPRS Solo ha sido probado con un SIM de la compañía celular UNEFON, IUSACELL y TELCEL.

Material

  • Arduino UNO
  • GSM GPRS Shield SIMcom SIM900 Cuantex.
  • SIM

Conexiones

Para este módulo no es necesario utilizar cables ya que solo se monta sobre el arduino. El shield cuenta con un selector de UART que puede ser para los pines 0 y 1 o por SERIAL SOFTWARE que corresponden a los pines 7 y 8. Se recomienda utilizar los pines 7 y 8 por si necesitas hacer debug con la terminal serial del IDE Arduino.

GSM GPRS Sheld SIMCom SIM900
Shield GSM GPRS montado en el Arduino UNO.

Procedimiento de uso

1.- Insertar el SIM en el SIM HOLDER.

GSM GPRS Shield SIMCom SIM900
SIM UNEFON montado en el sim holder.

2.- Montar el GSM GPRS Shield SIMCom SIM900 en el Arduino y energizarlo.

3.- Cargar el programa a utilizar.

4.- Presionar el botón de encendido por un segundo e inmediatamente encenderá el led rojo que corresponde a net, después se encenderá el de status (led verde) y se quedará blinkiando el led rojo.

GPRS GSM Shield SIMCom SIM900
Indicadores del Shield GPRS Cuantex

5.- Presionar el botón de reset del Arduino.

Programa de prueba

El programa consiste solo en que te marca por 30 segundos y despues te envia un mensaje de texto.

#include <SoftwareSerial.h>;
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900
 
char incoming_char=0; //Variable que guarda los caracteres que envía el SIM900
int salir = 0;
void setup()
{
SIM900.begin(19200); //Configura velocidad serial para el SIM900
delay(25000); //Retardo para que encuentra a una RED
Serial.begin(19200); //Configura velocidad serial para el Arduino
Serial.println("OK"); //Mensaje OK en el arduino, para saber que todo va bien.
}
 
void llamar()
// Función que permite llamar a un celular local
{

SIM900.println("ATD 333XXXXXXX;"); //tu numero Celular
delay(100);
SIM900.print("AT+CMGF=1\r"); // Comando AT para enviar mensaje
delay(100);
SIM900.println("AT + CMGS = \"33XXXXXXXX\""); // Tu numero celular
delay(100);
SIM900.println();
delay(30000); // espera por 30 seg
SIM900.println("ATH"); // Cuelga el teléfono
delay(1000);
}
void mensaje_sms()
//Funcion para mandar mensaje de texto
{
SIM900.print("AT+CMGF=1\r"); 
delay(100);
SIM900.println("AT+CMGS=\"33xxxxxxxx\""); // 
delay(100);
SIM900.println("Hola Mundo Cuantex"); // mensaje a enviar
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26 //Comando de finalizacion
delay(100);
SIM900.println();
delay(5000); // Tiempo para que se envie el mensaje
Serial.println("SMS sent successfully");
}
 
void espera_mensaje()
{
salir = 1;
while(salir==1)
{
if(SIM900.available() > 0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Imprime en terminal lo que tiene la funcion Incoming char.
salir = 0;
}
}
}
void modo_recibe_mensaje()
{
//Configura el modo texto para enviar o recibir mensajes
SIM900.print("AT+CMGF=1\r"); 
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
 

delay(1000);
}
void loop()
{
llamar(); //Llama
mensaje_sms(); //Envia mensaje
modo_recibe_mensaje();
for(;;)
{
if(SIM900.available()>0)
{
 
incoming_char=SIM900.read(); //leer el caracter del puerto serial.
Serial.print(incoming_char); //Imprime lo que tiene la funcion Incoming Char en la terminal.
}
if(Serial.available() &amp;amp;amp;gt; 0)
{
if(Serial.read() == 'A') break;
}
}
Serial.println("OK-2");
 
delay(100);
SIM900.println();
delay(30000);
while(1); // Esperate por tiempo indefinido
 
}

 

En la siguiente imagen podemos ver el proceso que se sigue desde la Terminal de Arduino.

Enlaces de Interés

Dejar una opinión