Modulo de Comunicacion Inalambrica GSM Shield

Modulo de Comunicación Inalámbrica GSM Shield

 

SONY DSC

 

 

Es un modulo Multi-banda WCDMA/GSM/GPRS/EDGE que soporta transferencias de datos WCDMA hasta 384 kbps. 

El modulo provee mucha flexibilidad con los protocolos TCP/UDP/FTP/HTTP/HTTPS/SMTP/POP3 y MMS. 

Esta es una tarjeta GPRS ultra compacta de comunicación inalámbrica. 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 4.

La tarjeta GPRS está configurada y controlada por vía UART usando comandos AT. Solo conecta la tarjeta al microcontrolador, Arduino, etc, y comienza a comunicarte a través de comandos AT. Ideal para sistemas remotos, comunicación recursiva, puntos de control, mandar mensajes de texto a celulares, etc.

ESPECIFICACIONES

  • Totalmente compatible con Arduino
  • Conexión con el puerto serial
  • 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 (suspensión)

Hoja de datos 1  : GSMSHIELD-1

Hoja de datos 2:   GSMSHIELD-2

Tabla de comandos:  sim900_at_command_set

Código Arduino: gsm

 

/*
Herramientas Tecnologicas Profesionales
www.hetpro-store.com

Tutorial Original:
http://tronixstuff.com/2014/01/08/tutorial-arduino-and-sim900-gsm-modules/

Comandos AT:
http://probots.co.in/Manuals/SIM900%20GSM%20Modem%20-%20Starter%20Guide.pdf

Hoja de datos:

Instrucciones para Arduino: Configura la terminal serial a 19200 baudios para que puedas ver los mensajes.
*/

#include <SoftwareSerial.h>
SoftwareSerial SIM900(2, 3); // Configura el puerto serial para el SIM900

char incoming_char=0; //Variable que guarda los caracteres que envia el SIM900
int salir = 0;
void setup()
{
 SIM900.begin(19200); //Configura velocidad serial para el SIM900
 SIM900power(); //Encender el chip
 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 SIM900power()
// Encendido por software del SIM900, es equivalente a precionar el boton de encendido
{
 digitalWrite(8, HIGH);
 delay(1000);
 digitalWrite(8, LOW);
 delay(5000);
}

void llamar()
// Función que permite llamar a un celular local
{
 // SIM900.println("ATD 10725275;"); //Numero local
 SIM900.println("ATD 3310725275;"); //Celular
 delay(100);
 SIM900.println();
 delay(30000); // wait for 30 seconds...
 SIM900.println("ATH"); // Cuelta el telefono
 delay(1000);
}
void mensaje_sms()
Funcion para mandar mensaje de texto
{

 SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
 delay(100);
 SIM900.println("AT + CMGS = \"3310725275\""); // recipient's mobile number, in international format
 delay(100);
 SIM900.println(analogRead(0)); // message to send
 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

}

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); //Print the incoming character to the terminal.
 salir = 0;
 }
 }
}
void modo_recibe_mensaje()
{
 //Configura el modo texto para enviar o recibir mensajes
 SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
 delay(100);
 SIM900.print("AT+CNMI=2,2,0,0,0\r"); 

 // blurt out contents of new SMS upon receipt to the GSM shield's serial out
 delay(1000);
}
void loop()
{
 llamar(); //Llama
 mensaje_sms(); //Envia mensaje
 modo_recibe_mensaje();
 for(;;)
 {
 if(SIM900.available() >0)
 {

 incoming_char=SIM900.read(); //Get the character from the cellular serial port.
 Serial.print(incoming_char); //Print the incoming character to the terminal.
 }
 if(Serial.available() > 0)
 {
 if(Serial.read() == 'A') break;
 }
 }
 Serial.println("OK-2");
 SIM900power();
 delay(100);
 SIM900.println();
 delay(30000);
 while(1); // Esperate por tiempo indefinido 

}

 

59 Comments

  1. Nestor Noviembre 26, 2014
    • Hector Torres Diciembre 12, 2014
  2. SALVADOR Enero 7, 2015
    • Administrador Enero 7, 2015
  3. maria Enero 26, 2015
  4. maria Febrero 2, 2015
    • Administrador Febrero 3, 2015
  5. Mizael Marzo 29, 2015
    • ruben estrada Marzo 30, 2015
      • Mizael Abril 4, 2015
  6. Ricardo Fish Abril 4, 2015
    • Hector Torres Abril 6, 2015
  7. Alexis Juárez Mayo 5, 2015
  8. maria medina Mayo 8, 2015
  9. Alejandro Enero 8, 2016
    • Rolando Ramírez Enero 8, 2016
  10. Mathias Enero 12, 2016
  11. jose alberto Mayo 13, 2016
    • Hector Torres Mayo 13, 2016
  12. Rocio Junio 16, 2016
    • Hector Torres Junio 16, 2016
  13. Andres Junio 27, 2016
    • Hector Torres Junio 28, 2016
  14. ABRAHAM Julio 1, 2016
  15. Juan Julio 24, 2016
    • Hector Torres Agosto 1, 2016
  16. andres Agosto 23, 2016
    • Saul Jesus Agosto 23, 2016
      • Andrés Agosto 23, 2016
        • Saul Jesus Agosto 23, 2016
          • Andrés Octubre 4, 2016
          • Saul Jesus Octubre 6, 2016
  17. Marcelo G. Agosto 26, 2016
    • Saul Jesus Agosto 30, 2016
  18. alejandro Septiembre 18, 2016
    • Saul Jesus Septiembre 20, 2016
  19. Yamila Octubre 26, 2016
    • Yamila Octubre 26, 2016
      • Saul Jesus Octubre 26, 2016
        • Yamila Octubre 26, 2016
          • Saul Jesus Noviembre 7, 2016
  20. beto Noviembre 11, 2016
  21. jafet Noviembre 29, 2016
    • Saul Jesus Noviembre 29, 2016
  22. WILLIAM JESUS PUMASANTA ESCOLA Diciembre 5, 2016
  23. jhon Mayo 8, 2017
    • Hector Torres Mayo 8, 2017
  24. Sergio Bermúdez Porras Mayo 26, 2017
    • Hector Torres Mayo 28, 2017
      • sergio Junio 8, 2017
  25. Sergio Bermúdez Porras Mayo 26, 2017
  26. Miguel Junio 21, 2017
    • Hector Torres Julio 4, 2017

Leave a Reply