Está en la página 1de 6

GSM

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7,8); // 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 encuentre una RED

Serial.begin(19200); //Configura velocidad serial para el Arduino

Serial.println("LISTO"); //Mensaje para avisar del enlace.

//------------------------------------------------------------------------------------------------------------------------------

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 xxxxxxxxxx;"); //Numero local

SIM900.println("ATD 2711215317;"); //Celular

delay(100);

SIM900.println();

delay(30000); // wait for 30 seconds...

SIM900.println("ATH"); // Cuelga el telefono


delay(1000);}

//--------------------------------------------------------------------------------------------------------------------------------
--

void mensaje_sms()

//Funcion para mandar mensaje de texto

{ SIM900.print("AT+CMGF=1\r"); // comando AT para envio de mensajes de tipo SMS

delay(100);

SIM900.println("AT + CMGS = \"3310725275\""); // numero telefónico de destino, bajo formato


internacional

delay(100);

SIM900.println(analogRead(0)); // mensaje a enviar, lectura de puerto analogico

delay(100);

SIM900.println((char)26); // comando de fin de transmisiondelay(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();

Serial.print(incoming_char);

salir = 0;}}}

//--------------------------------------------------------------------------------------------------------------------------------
----------

void modo_recibe_mensaje()

{ //Configura el modo texto para enviar o recibir mensajes

SIM900.print("AT+CMGF=1\r"); // configura a modo SMS


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();

Serial.print(incoming_char); }

if(Serial.available() > 0)

{ if(Serial.read() == 'A') break; }

Serial.println("OK-2");

SIM900power();

delay(100);

SIM900.println();

delay(30000);

while(1); // Esperar por tiempo indefinido

}
GSM2

#include <SoftwareSerial.h>

SoftwareSerial SIM800(7, 8); //Seleccionamos los pines 7 como Rx y 8 como Tx

char incoming_char=0; //Variable que guarda los caracteres que envia el SIM900

int salir = 0;

void setup()

//digitalWrite(9, HIGH); // Descomentar para activar la alimentación de la tarjeta por Software

//delay(1000);

//digitalWrite(9, LOW);

delay (5000); //Nos damos un tiempo para encender el GPRS y la alimentación de la tarjeta

SIM800.begin(19200); //Configura velocidad del puerto serie para el SIM900

Serial.begin(19200); //Configura velocidad del puerto serie del Arduino

Serial.println("LISTO");

delay (1000);

delay(25000); //Tiempo para que encuentre una RED

void llamar()

Serial.println("Realizando llamada...");

SIM800.println("ATD2721287635;"); //Comando AT para realizar una llamada

delay(40000); // Espera 20 segundos mientras realiza la llamada

SIM800.println("ATH"); // Cuelga la llamada

delay(1000);

Serial.println("Llamada finalizada");

void mensaje_sms()
{

Serial.println("Enviando SMS...");

SIM800.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes

delay(1000);

SIM800.println("AT+CMGS=\"+5212721287635\""); //Numero al que vamos a enviar el


mensaje

delay(1000);

SIM800.println("Holi desde SIM900 7u7.Telecom/ITOrizaba"); // Texto del SMS

delay(100);

SIM800.println((char)26); //Comando de finalización ^Z

delay(100);

SIM800.println();

delay(5000); // Esperamos un tiempo para que envíe el SMS

Serial.println("SMS enviado");

void espera_mensaje()

{ salir = 1;

while(salir==1)

{ if(SIM800.available() >0)

{ incoming_char=SIM800.read();

Serial.print(incoming_char);

salir = 0;}}}

//--------------------------------------------------------------------------------------------------------------------------------
----------

void modo_recibe_mensaje()

{ //Configura el modo texto para enviar o recibir mensajes

SIM800.print("AT+CMGF=1\r"); // configura a modo SMS

delay(100);

SIM800.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);

void loop()

{ llamar(); //Llama

mensaje_sms(); //Envia mensaje

modo_recibe_mensaje();

for(;;)

{ if(SIM800.available() >0) {

incoming_char=SIM800.read();

Serial.print(incoming_char); }

if(Serial.available() > 0)

{ if(Serial.read() == 'A') break; }

Serial.println("OK-2");

//SIM900power();

delay(100);

SIM800.println();

delay(30000);

while(1);

}// Esperar por tiempo indefinido

También podría gustarte