Hola Bosoft gracias por tu respuesta, te cuento respecto a lo que me indicaste:
Serial.write(("AT+CMGS=\"" + Tel_sms + "\""));
me da este error:
no matching function for call to 'HardwareSerial::write(StringSumHelper&)'
de cualquier manera ya corregí un error, es SIM900 y no serial, o sea seria asi:
SIM900.write(("AT+CMGS=\"" + Tel_sms + "\""));
eso lo se porque después de tantas pruebas jaja, este código:
SIM900.println("AT+CMGS=\"+54114561234\"");
envía perfecto el sms…
pero no logro que lo tome de la variable, y la variable esta bien porque primero hago una comparación de mi variable Tel_sms almacenada en la estructura datos:
struct {
char Tel_sms[15];
}datos;
con mi variable Remitente que la comparo asi, primero la obtengo con esto:
int pos = mensaje.indexOf("+CMT: ");
Remitente = mensaje.substring(pos+7,pos+20);
asi obtengo el numero del remitente y en esa variable lo almaceno, pero antes de avanzar las comparo:
if (Remitente == datos.Tel_sms){
que avance, y lo hace bien, porque lo envío desde otro celu y no hace nada.. o sea la compara perfecto...
La diferencia en las líneas de códigos entre Tel_sms y Remitente, es porque en tantas pruebas la verdad que probe directamente con las 2 en todas las formas posibles como puse en el mensaje anterior, pero independientemente de la variable, el código no quiere enviar ninguna, solo respeta si es numero tel puesto a mano..