Hola chicos,
Soy nuevo en el foro y estoy necesitando de su ayuda para entender porque mi módulo GSM800L V2 no me regresa las respuestas a los comandos AT.
Incluso, si los escribo directamente/a mano en el monitor serial tampoco me regresa respuesta alguna.
He revisado infinidad de ejemplos en Youtube y también otros acá en el foro, sigo los pasos al pie de la letra y me sigo topando con el mismo problema una y otra vez.
Les comento como esta: tengo mi GSM800L conectado a mi Arduino Mega 2560, el módulo GSM lo alimento directamente de Arduino y este a su vez lo alimento desde el puerto usb a mi laptop. Al momento de poner en ejecución el código que muestro más abajo, que simplemente envía comandos AT al módulo GSM; NO logro conseguir respuesta en el monitor serial de Arduino.
Si envío el comando AT, no recibo el OK. En cambio, si envío el comando ATD429XXXXXX el modulo SI hace la llamada, pero de nuevo no recibo respuesta alguna del módulo GSM en el monitor serial. Eso no es todo, incluso si por código le paso los parámetros para enviar mensajes de texto al mismo número, SI lo hace sin dificultad, a mi cel me llegan los mensajes.
Es como si ejecutara los comandos AT pero simplemente existiera una falta de comunicación entre el puerto serial que habilito para el Arduino, y el puerto serial para el módulo GSM. Y como verán en el código, ambos trabajan a la misma frecuencia.
Mi idea principal, es habilitar el módulo GSM para recepción de mensajes de texto, y verificar si el mensaje coincide con la palabra declarada en la variable de tipo String. En base a ello mostrar el mensaje en el monitor serial del Arduino.
De favor chicos, ayúdenme a ver mi error, sé que debo tenerlo en algún lado o que algo no estoy colocando, solo que ya no logro verlo.
#include <SoftwareSerial.h>
//Se declara los pines en arduino para el modulo GSM.
SoftwareSerial MOD_SIM800L(19, 18);
/* Distibución de los pines del sheld GSM con relación a la placa arduino.
ARDUINO MEGA SIM800L
19 TX
18 RX
*/
String SMSincoming; // Variable que contendra los sms entrantes.
void setup() {
//Velocidad de trabajo entre el Arduino MEGA y el Modulo SIM800L (Puerto Serial)
Serial.begin(115200); // Activamos el monitor serial para el Arduino.
MOD_SIM800L.begin(115200); //Configura velocidad del puerto serie para el SIM800L.
MOD_SIM800L.print("AT+CLIP=1\r"); //Activamos la identificación de llamadas.
MOD_SIM800L.print("AT+CMGF=1\r"); // configura SMS en módulo de texto.
MOD_SIM800L.print("AT+CNMI=2,2,0,0,0\r”"); /* Transmisión de mensaje directamente al puerto serial del dispositivo. */
MOD_SIM800L.print("AT+CMGD=1,4"); // Elimina todos los mensajes de la SIM.
}
void loop() {
if (MOD_SIM800L.available()) { // SI HAY DATOS EN LA INTERFAZ SERIAL POR HARDWARE, ESCRIBIRLOS EN EL UART EMULADO
Serial.write(MOD_SIM800L.read());
}
if (Serial.available()) { // SI HAY DATOS EN LA INTERFAZ SERIAL POR SOFTWARE, ESCRIBIRLOS EN EL UART FISICO
MOD_SIM800L.write(Serial.read());
}
if(MOD_SIM800L.available()>0) {
SMSincoming = MOD_SIM800L.readString(); //Guardar en la variable el valor del sms que se recibe.
}
if(SMSincoming.indexOf ("ON") >= 0 || SMSincoming.indexOf ("on") >= 0) {
Serial.println("Texto: ");
Serial.print(SMSincoming);
}
}

