Hola
mi problema es que no puedo recibir completos los mensajes en el monitor serial
para aclarar estoy usando un arduino uno con un modulo GPS y GSM sim808
#include <SoftwareSerial.h>
SoftwareSerial SIM808(7, 8); // Configura el puerto serial para el SIM808
char incoming_char = 0; //Variable para guardar los caracteres que envía el SIM808
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
SIM808.begin(19200); //Configura velocidad del puerto serie para el SIM808
Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
Serial.println("OK");
delay (1000);
SIM808.println("AT + CPIN = \"1234\""); //Comando AT para introducir el PIN de la tarjeta
delay(25000); //Tiempo para que encuentre una RED
Serial.println("PIN OK");
SIM808.print("AT+CLIP=1\r"); // Activamos la identificación de llamadas
delay(1000);
SIM808.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes
delay(1000);
SIM808.print("AT+CNMI=2,2,0,0,0\r"); //Configuramos el módulo para que nos muestre los SMS recibidos por comunicacion serie
delay(1000);
}
void loop() {
if (Serial.available() > 0)
SIM808.write(Serial.read());
if (SIM808.available() > 0)
Serial.write(SIM808.read());
if (SIM808.available() > 0)
{
incoming_char = SIM808.read(); //Guardamos el caracter que llega desde el SIM808
Serial.print(incoming_char); //Mostramos el caracter en el monitor serie
if (SIM808.read() == "Hola")
{
mensaje_sms();
}
}
}
void mensaje_sms()
{
Serial.println("Enviando SMS...");
SIM808.print("AT+CMGF=1\r"); //Configura el modo texto para enviar o recibir mensajes
delay(1000);
SIM808.println("AT+CMGS=\"0971322246\""); //Numero al que vamos a enviar el mensaje
delay(1000);
SIM808.println("que tal ......"); // Texto del SMS
delay(100);
SIM808.println((char)26); //Comando de finalización ^Z
delay(100);
SIM808.println();
delay(5000); // Esperamos un tiempo para que envíe el SMS
Serial.println("SMS enviado");
}