SMS SIM900 Arduino MEGA 2560

publicado en: Tutoriales | 0

Módulo GSM GPRS Shield SIMCom SIM900 Arduino MEGA2560

GSM GPRS Shield SIMCom SIM900 Arduino MEGA 2560 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. En este tutorial vamos a ver como usar una biblioteca de la compañia Open Electronics que la puedes descargar de GitHub aqui: https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield

SIM900 Arduino MEGA

GSM GPRS Shield SIMCom SIM900

La tarjeta GPRS Shield SIMCom SIM900 está configurada y controlada por vía UART usando comandos AT. En este caso la vamos a conectar de manera externa, ya que vamos a usar dos seriales por Hardware (a diferencia del otro tutorial). En este caso estamos usando el Serial 0 para visualizar datos en el COM del Arduino y el Serial 1 para comunicarnos con la tarjeta, por lo que vamos a hacer las siguientes conexiones:

  • Vin – Vin (Se encuentra físicamente en la misma posición).
  • GND – GND (Se encuentra físicamente en la misma posición).
  • TX1 – El que corresponde al TX, o pin 1 en el formato UNO.
  • RX1 – El que corresponde al RX, o pin 0 en el formato UNO.
  • OJO: Poner los jumpers en la posición HW Serial, en este caso pegados conector J13.

Para ver la lista de comandos completa te recomendamos leer la hoja de datos de la tarjeta SIM900. 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. SIM900 Arduino MEGA.

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 Mega 2560 (SIM900 Arduino MEGA)
  • GSM GPRS Shield SIMcom SIM900 Cuantex.
  • Tarjeta SIM.

 

Procedimiento de uso SIM900 Arduino MEGA

1.- Insertar el SIM en el SIM HOLDER.

SIM900 Arduino MEGA
SIM montado en el sim holder.

2.- Montar el GSM GPRS Shield SIMCom SIM900 en el Arduino y energizarlo. Procurar conectar una fuente de poder, usualmente el puro USB no es suficiente para el SIM900 Arduino MEGA.

3.- Cargar el programa a utilizar. En este caso asumimos que ya se instalo (Copiar en el folder libraries) la biblioteca del SIM900 de Open Electronics.

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á parpadeando 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 genera una evaluación del módulo SIM900 Mega 2560 en Arduino para su correcto funcionamiento, usualmente tarda entre 20 y 40 segundos en terminar la secuencia y procede a enviar el SMS. OJO En el siguiente código, lo único que tienes que cambiar es el numero de teléfono.

#include "SIM900.h"
#include <SoftwareSerial.h>
//If not used, is better to exclude the HTTP library,
//for RAM saving.
//If your sketch reboots itself proprably you have finished,
//your memory available.
//#include "inetGSM.h"

//If you want to use the Arduino functions to manage SMS, uncomment the lines below.
#include "sms.h"
SMSGSM sms;

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to send and receive SMS.

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup()
{
     //Serial connection.
     Serial.begin(9600);
     Serial.println("GSM Shield testing.");
     //Start configuration of shield with baudrate.
     //For http uses is raccomanded to use 4800 or slower.
     if (gsm.begin(2400)) {
          Serial.println("\nstatus=READY");
          started=true;
     } else Serial.println("\nstatus=IDLE");

     if(started) {
          //Enable this two lines if you want to send an SMS.
          if (sms.SendSMS("3310xxxxxx", "Arduino SMS"))
          Serial.println("\nSMS sent OK");
     }

};

void loop()
{
     if(started) {
          //Read if there are messages on SIM card and print them.
        /**  deprecated method
        if(gsm.readSMS(smsbuffer, 160, n, 20)) {
               Serial.println(n);
               Serial.println(smsbuffer);
          }
          **/
          //get 1st sms
          sms.GetSMS(1,n,20,smsbuffer,160);
          Serial.println(n);
          Serial.println(smsbuffer);
         
          delay(1000);
     }
};

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

GSM Shield testing. 
ATT: OK 
RIC:  
ATT: OK 
RIC: AT 
 
OK 
 
DB:ELSE 
ATT: OK 
RIC: AT 
 
OK 
 
DB:ELSE 
ATT: OK 
RIC: AT 
 
OK 
 
DB:ELSE 
ATT: OK 
RIC: AT 
 
OK 
 
DB:CORRECT BR 
ATT: OK 
RIC: AT 
 
OK 
 
ATT: OK 
RIC: AT&F 
 
OK 
 
ATT: OK 
RIC: ATE0 
 
OK 
 
ATT: OK 
RIC:  
OK 
 
ATT: OK 
RIC:  
OK 
 
ATT: OK 
RIC:  
OK 
 
ATT: OK 
RIC:  
OK 
 
ATT: +CPMS: 
RIC:  
+CPMS: 20,20,20,20,20,20 
 
OK 
 
ATT: OK 
RIC: þ 
ATT: OK 
RIC:  
OK 
þ 
ATT: SHUT OK 
RIC:  
OK 
 
ATT: SHUT OK 
RIC:  
SHUT OK 
 

status=READY 
DEBUG:SMS TEST 
ATT: > 
RIC:  
OK 
 
>  
DEBUG:> 

Enlaces de Interés

Dejar una opinión