Hola, una consulta, existe alguna forma fácil de agendar un numero de teléfono así como borrarlo también, para que puedan interactuar con arduino?
tengo un código que hace andar un rele, y tengo un numero de admin que es el que esta siempre autorizado y quisiera autorizar mas números (o borrarlos si fuera necesario), como se puede hacer de una forma no muy compleja que si admin envía un sms con numero de teléfono dentro, ese numero se agende? o dependiendo se pueda borrar?
Hola gracias por tu respuesta, pero no se xq me hablas de android, yo no pregunte nada de eso...
lo que quiero es si tengo una variable char admin que tiene un numero predefinido:
char admin[] ={"+541126569398"};
lo que quiero es poder cambiar ese numero enviando un codigo x, por ej: ABfvX14M en el cuerpo del mensaje, y que al leer ese codigo que esta grabado en otra variable:
char Code[] = "ABfvX14M";
tome el numero de tel sms: textSms = Sim800l.readSms(1); (creo q es de aca q lo lee)
y modifique con ese numero la variable char admin... no se si me explique bien ahora, espero me puedan ayudar gracias..
ok gracias por tu respuesta...no soy muy entendida en arduino, pero vi que en el monitor serial con esta linea:
error=Sim800l.sendSms(numberSms.c_str(),text);
reenvia un sms al numero de quien lo recibió, con ese dato no lo puedo escribir en la variable char admin y que quede grabado?
intento grabar en memoria eeprom con la libreria primero #include <EEPROM.h>,
luego hago esto:
else if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
{
Serial.println("Actualizando Admin Tel...");
text="\nActualizando Admin Tel...";
error=Sim800l.sendSms(numberSms.c_str(),text);
EEPROM.write( numberSms.c_str(), admin);
error = Sim800l.delAllSms(); //Apaga SMS
o sea creo un codigo para poder con ese codigo modificar char admin, hace todo correcto pero no cambia el char admin por el numero nuevo que seria el que lee del sms de quien envia...
alguien que me oriente que es lo que esta mal o por donde debo buscar?
la verdad es que no se la diferencia y cual metodo es mejor...yo quiero poder recuperar el numero de tel dek que envia un sms al arduino (cosa que ya hago) y luego ese numero almacenarlo, si cumple con el requisito del codigo dentro del msm, en la variable char admin, que es la que contiene el telefono autorizado para gestionar...
este es el codigo q anda perfecto:
#include <Sim800l.h>
#include <SoftwareSerial.h>
#include <EEPROM.h>
Sim800l Sim800l;
String textSms, numberSms;
uint8_t LED1 = 7;
uint8_t LED2 = 8;
bool error;
char* text;
char* number;
char admin[] ={"+xxxxxxxxxxx"}; // numero del Administrador
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
Sim800l.begin();
Serial.print("Iniciando sistema...");
text="Iniciando sistema...";
error=Sim800l.sendSms(admin,text);
error = Sim800l.delAllSms(); //Apaga SMS
Serial.println(" Listo!");
Serial.println("\nAguardando comandos por SMS...");
//delay (500);
text="\nSistema iniciado. Aguardando comandos por SMS...";
number=admin;
error=Sim800l.sendSms(number,text);
error = Sim800l.delAllSms(); //Apaga SMS
}
void loop()
{
//Lee el SMS en la posicion 1
textSms = Sim800l.readSms(1);
//Verifica que el SMS fue recibido y es valido
if (textSms.indexOf("OK") != -1)
{
//Verifica que SMS esta vacio
if (textSms.length() > 18)
{
//Devuelve el numero de celular que envio el SMS
numberSms = Sim800l.getNumberSms(1);
//Muestra el numero de telefono en el Serial Monitor
Serial.println(numberSms);
//Convierte el texto a Mayuscylas
textSms.toUpperCase();
//Caso encender Rele 1
if (numberSms == admin and textSms.indexOf("ENCENDER 1") != -1)
{
Serial.println("Rele 1 Encendido");
digitalWrite(LED1, 0);
text="\nRele 1 encendido.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso apagar Rele 1
else if (numberSms == admin and textSms.indexOf("APAGAR 1") != -1)
{
Serial.println("Rele 1 Apagado");
digitalWrite(LED1, 1);
text="\nRele 1 apagado.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso encender Rele 2
else if (numberSms == admin and textSms.indexOf("ENCENDER 2") != -1)
{
Serial.println("Rele 2 Encendido");
digitalWrite(LED2, 0);
text="\nRele 2 encendido.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso apagar Rele 2
else if (numberSms == admin and textSms.indexOf("APAGAR 2") != -1)
{
Serial.println("Rele 2 Apagado");
digitalWrite(LED2, 1);
text="\nRele 1 encendido.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
else if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
{
Serial.println("Actualizando Admin Tel...");
text="\nActualizando Admin Tel...";
error=Sim800l.sendSms(numberSms.c_str(),text);
EEPROM.write( numberSms.c_str(), admin);
error = Sim800l.delAllSms(); //Apaga SMS
}
else{
Serial.println("Su numero no esta autorizado.");
text="\nSu numero no esta autorizado para esta accion.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
Sim800l.delAllSms();
}
}
}
lo que quiero es poder cambiar el tel de admin ingresando el codigo ("AB12XL14M") inventado como seguridad, y que al llegar un mensaje de un numero tel x que contenga ese codigo, la variable char admin cambie por ese num de telefono...
ahora avance hasta aca, pero no logro que se grabe en num en la eeprom:
#include <Sim800l.h>
#include <SoftwareSerial.h>
#include <EEPROM.h>
Sim800l Sim800l;
String textSms, numberSms;
uint8_t LED1 = 7;
uint8_t LED2 = 8;
bool error;
char* text;
char* number;
char admin[] =""; // numero del Administrador
const int Tamano_EEPROM = 14;
char buffer_EEPROM[Tamano_EEPROM];
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
Sim800l.begin();
Serial.print("Iniciando sistema...espere..");
text="Iniciando sistema...espere..";
Serial.println(admin);
//error=Sim800l.sendSms(admin,text);
error = Sim800l.delAllSms(); //Apaga SMS
Serial.println(" Listo! Sistema iniciado.");
Serial.println("\nAguardando comandos por SMS...");
delay (500);
text="\nListo!. Sistema iniciado. Aguardando comandos por SMS...";
number=admin;
error=Sim800l.sendSms(number,text);
error = Sim800l.delAllSms(); //Apaga SMS
}
void loop()
{
//Lee el SMS en la posicion 1
textSms = Sim800l.readSms(1);
void(* resetFunc) (void) = 0; // esta es la funcion
//Verifica que el SMS fue recebido y es valido
if (textSms.indexOf("OK") != -1)
{
//Verifica que SMS esta vacio
if (textSms.length() > 18)
{
//Devuelve el numero de celular que envio el SMS
numberSms = Sim800l.getNumberSms(1);
//Muestra el numero de telefono en el Serial Monitor
Serial.println(numberSms);
//Convierte el texto a Mayuscylas
textSms.toUpperCase();
//Caso encender Rele 1
if (numberSms == admin and textSms.indexOf("ENCENDER 1") != -1)
{
Serial.println("Rele 1 Encendido");
digitalWrite(LED1, 0);
text="\nRele 1 encendido.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso apagar Rele 1
else if (numberSms == admin and textSms.indexOf("APAGAR 1") != -1)
{
Serial.println("Rele 1 Apagado");
digitalWrite(LED1, 1);
text="\nRele 1 apagado.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso encender Rele 2
else if (numberSms == admin and textSms.indexOf("ENCENDER 2") != -1)
{
Serial.println("Rele 2 Encendido");
digitalWrite(LED2, 0);
text="\nRele 2 encendido.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Caso apagar Rele 2
else if (numberSms == admin and textSms.indexOf("APAGAR 2") != -1)
{
Serial.println("Rele 2 Apagado");
digitalWrite(LED2, 1);
text="\nRele 2 Apagado.";
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
else if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
{
//Borrar_EEPROM();
Serial.println("Actualizando Admin Tel...");
text="\nActualizando Admin Tel...";
error=Sim800l.sendSms(numberSms.c_str(),text);
numberSms = admin;
Escribir_EEPROM;
Leer_EEPROM;
//Escribir_EEPROM(buffer_EEPROM);
Serial.println(buffer_EEPROM);
Serial.println("Nuevo num de Admin:");
Serial.println(admin);
//EEPROM.write( numberSms.c_str(), admin);
error = Sim800l.delAllSms(); //Apaga SMS
}
else if (numberSms == admin and textSms.indexOf("QUIEN") != -1)
{
Serial.println(admin);
error=Sim800l.sendSms(numberSms.c_str(),admin);
error = Sim800l.delAllSms(); //Apaga SMS
}
else{
Serial.println("Su numero no esta autorizado.");
text="\nSu numero no esta autorizado para esta accion.";
//Leer_EEPROM(buffer_EEPROM);
//Serial.println(buffer_EEPROM);
//Serial.println(admin);
error=Sim800l.sendSms(numberSms.c_str(),text);
error = Sim800l.delAllSms(); //Apaga SMS
}
//Apaga todos as mensajes da memoria, garantizando que el proximo
//SMS este siempre en la posicion 1
Sim800l.delAllSms();
}
}
}
//-------------------------------------------------------------------------------
//Función para escribir en la EEPROM
void Escribir_EEPROM(char *UnString){
for(int i = 0; i < strlen(UnString); i++){
EEPROM.write(i, UnString[i]);
}
}
//Función para leer de la EEPROM
void Leer_EEPROM(char *bufferIn){
for(int i = 0; i < Tamano_EEPROM; i++){
bufferIn[i] = EEPROM.read(i);
}
}
void Borrar_EEPROM() {
//Limpiamos la EEMPROM byte a byte
for (int i = 0 ; i < EEPROM.length() ; i++) {
EEPROM.write(i, 0);
}
Serial.println("Memoria EEPROM borrada!");
}
a ver chicos si alguno se copa y me da una manitooo..le pongo onda ehh...aunque si se que me faltan conocimientos, pero lo importante es tambien intentar intentar intentar..e insistir jaja, bye..
Any.
En el ejemplo que planteas usas una librería SIM800L que en ningún momento has explicado que es la placa en uso.. Mira que fácil hubiera sido que empezaras diciendo lo mismo que has dicho pero que además usas una placa SIM800L y que quieres leer los nros telefonos y dema
Ahora por favor usando las etiquetas de enlaces (lee bien las normas) indicanos donde podemos ver la librería SIM800L que usas para entender los procedimientos que estas usando.
Hola SUrbyte, de este sitio la descargue:
el que lee el numero de sms es la linea numberSms = Sim800l.getNumberSms(1);
pero no se como gaurdarlo en la memoria eeprom y reemplazar el numero que esta en la variable char admin...esa es la idea pero se me complico..
Hola AnyPopins, no veo la linea que mencionas
Veo algo que hace
text=Sim800l.readSms(index);
Tendrias que haber dicho, en la librería en el ejemplo readSmsAndFilterNumber.ino
Ahora si
Bueno en ese ejemplo numberSms esta definido como String que no van a funcionar con mi sugerencia
EEPROM.get() y EEPROM.put() para las tareas de lectura/escritura
Si defines a numberSms como una cadena de char o sea char numberSms[tamaÑo] no vas a tener problemas.
Hola Surbyte, gracias por tu ayuda..
lo hice pero ya esta definido con String lo cual no me deja ("conflicting declaration 'char numberSms [14]'")
y si lo saco de string para dejarlo solo char sale este error:
incompatible types in assignment of 'String' to 'char [14]' por esta linea:
//Devuelve el numero de celular que envio el SMS
numberSms = Sim800l.getNumberSms(1);
...
no se si estoy equivocada pero creo q lo q no estoy pudiendo lograr es convertir el string en char para poder almacenarlo en la eeprom:
else if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
{
Serial.println("Actualizando Admin Tel...");
text="\nActualizando Admin Tel...";
error=Sim800l.sendSms(numberSms.c_str(),text);
numberSms = Sim800l.getNumberSms(1);
Serial.println(numberSms);
ace debrua hacer la cenvresion y grabar a la eeprom. pero no se como ja.
error = Sim800l.delAllSms(); //Apaga SMS
}
Esto string.toCharArray(buf, len) te permite transformar un String a char
Solo aprende a manejarte usando Google. Arduino string to char y responde con esto el enlace que te dije.
Al pasarlo a char ya lo almacenas en otra variable.
por ejemplo
numberSms = Sim800l.getNumberSms(1); // esto es lo qeu tienes en String numberSms
numberSms.tocharArray(cnumberSms, numberSms.length()); //con lo que cnumbrSms que debiera tener el tamaño adecuado quedará con la respuesta que necesitas.
Luego haces
EEPROM.put(direccion, cnumberSms)
debería funcionar. Define como char cnumberSms[tamaño];
Hola Surbyte gracias por tu respuesta...
me tira el siguiente error:
'class String' has no member named 'tocharArray'
para esta linea:
numberSms.tocharArray(cnumberSms, numberSms.length());
Perdon perdon..era cuetion de mirar un poquito...
numberSms.toCharArray(cnumberSms, numberSms.length()); Char, no char...
gracias lo pruebo y posteo..
no funciona bien del todo...esto pone en monitor:
Iniciando sistema...espere.. Listo! Sistema iniciado.
+xxxxx463127 falta el ultimo num que es 8
Aguardando comandos por SMS...
90
+xxxxx4631278
Memoria EEPROM borrada!
Actualizando Admin Tel...
90
+xxxxx463127 falta el ultimo num que es 8
este es el codigo:
else if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
{
Borrar_EEPROM();
Serial.println("Actualizando Admin Tel...");
text="\nActualizando Admin Tel...";
numberSms = Sim800l.getNumberSms(1);
numberSms.toCharArray(cnumberSms, numberSms.length());
EEPROM.put(0, cnumberSms);
error=Sim800l.sendSms(numberSms.c_str(),text);
Serial.println(buffer_EEPROM);
error = Sim800l.delAllSms(); //Apaga SMS
el telefono admin esta cargado al inicio:
char admin[19] ="+541126569398"; // numero del Administrador
se puede hacer que el numero que almaceno en la EEPROM reemplace al de admin?
tienes una cadena de 19 caracteres y aun asi no muestra el último?
Para mi es muy simple
imprime numberSms
ejecuta la conversión
imprime cnumberSms
no coinciden
suma uno a
numberSms.toCharArray(cnumberSms, numberSms.length()+1);
prueba si ahora si
@Anypopins en tu post anterior haces mención a cosas que no veo en el sketch.
Iniciando sistema...espere.. Listo! Sistema iniciado.
+xxxxx463127 falta el ultimo num que es 8Aguardando comandos por SMS...
90
+xxxxx4631278
Memoria EEPROM borrada!
Actualizando Admin Tel...
90
+xxxxx463127 falta el ultimo num que es 8
Lo que no vemos en el sketch no podemos imaginar.
Surbyte Geniioooo!!!! ahora si lo hace perfecto...lo graba y lo borra y lo reemplaza sin problemas...ahora la pregunta del millon (no me retes si crees q esto lo tendria q haber preguntado en el inicio de todoo)
como hago para reemplazar una variable Char admin que tiene un numero configurado, por el numero que almaceno en la EEPROM?
o sea se puede hacer algo tipo : admin == cnumberSms ???
o sino, como puedo hacer para comprar como en esta linea:
if (numberSms != admin and textSms.indexOf("AB12XL14M") != -1)
(admin es el tema)
pero en vez de comparar con admin, comparar con lo que tengo guardado en la EEPROM?
porque si pudiera comparar con la EEPROM no necesitaria tener esa variable char admin en el codigo..
o sea se puede hacer algo tipo : admin == cnumberSms ???
No.. usando cadenas no puedes preguntar de ese modo. Eso es para Strings.
con cadenas se usa una función que se llama strcmp(cadena1, cadena2) de este modo
if (strcmp(admin , cnumberSms) == 0) //son iguales
o puedes hacer
if (strcmp(cnumberSms , "AB12XL14M") == 0)
o del modo que gustes.
Recuerda cadenas usan un set de rutinas/funciones.
Strings otros.
Hola surbyte gracias por tu respuesta...si hago esta comparacion:
if (strcmp(admin , cnumberSms) != 0) //no son iguales
como hago para grabar cnumberSms en admin y que quede grabado?
if (strcmp(admin , cnumberSms) != 0) {
admin == cnumberSms;
}
eso no funciona...cuando consulto admin me sigue trayendo lo q esta configurado en el codigo, no lo cambio..
Para terminar solo me faltaria 2 cosas posibles, 2 opciones:
o lograr reemplazar admin por lo que guarda la eeprom o cnumverSms contiene lo mismo,
o poder usar lo guardado en la eeprom para hacer comparaciones como x ej:
if (numberSms != "dato EEPROM" and textSms.indexOf("AB12XL14M") != -1)
estoy estancada en como reemplazar la variable admin con el dato cnumberSms, y tampoco se como usar el dato guardado de la eeprom para hacer comparaciones...
ambas opciones son interesantes, la ventaja de compara lo guardado en la eeprom seria que la variable char admin no la necesito mas..ni la escribiria al inicio...
pero no esta mal tampoco tener un numero admin que lo pueda modificar...
no logro resolver ninguna jaja...
me olvide de las etiquetas, perdon perdon...
Intente hacer la comparacion de esta forma:
else if (numberSms != EEPROM.read(buffer_EEPROM) and textSms.indexOf("AB12XL14M") != -1)
y tambien de esta otra:
else if (numberSms != EEPROM.read(0) and textSms.indexOf("AB12XL14M") != -1)
pero no compara...o sea si envio desde el numero almacenado en la eeprom me deberia rechazar y sin embargo lo acepta...
Reitero mi pedido de ayuda desesperado jajaj..
el ultimo codigo estaria bien...el tema que en el monitor me muestra esto:
+541126569398
si saco el +1 de la linea:
numberSms.toCharArray(cnumberSms, numberSms.length()+1);
me graba en la eeprom:
+54112656939
quita el ultimo numero pero sigue dejando los simbolos raros del final, entonces obvio la comparacion da que no son iguales...
para ver que pasa use este codigo para borrar grabar y leer la eeprom:
#include <EEPROM.h>
char admin[] = "+541126569398";
const int Tamano_EEPROM = 14;
char buffer_EEPROM[Tamano_EEPROM];
void setup() {
Serial.begin(9600);
Serial.println("Grabando datos en la EEPROM...");
Borrar_EEPROM();
Escribir_EEPROM(admin);
}
void loop() {
//Borrar_EEPROM();
Leer_EEPROM(buffer_EEPROM);
Serial.print("Estos son los datos de la EEPROM: ");
Serial.println(buffer_EEPROM);
delay(10000);
//Escribir_EEPROM(admin);
}
//Función para escribir en la EEPROM
void Escribir_EEPROM(char *UnString){
for(int i = 0; i < strlen(UnString); i++){
EEPROM.write(i, UnString[i]);
}
}
//Función para leer de la EEPROM
void Leer_EEPROM(char *bufferIn){
for(int i = 0; i < Tamano_EEPROM; i++){
bufferIn[i] = EEPROM.read(i);
}
}
void Borrar_EEPROM() {
//Limpiamos la EEMPROM byte a byte
for (int i = 0 ; i < EEPROM.length() ; i++) {
EEPROM.write(i, 0);
}
Serial.println("Memoria EEPROM borrada!");
}
con este codigo anda todo perfecto...no se cual es el problema realmente..ya estoy mareada mal..
el codigo cumple los requisitos barbaro..el tema es que queria buscar una menera de poder cambiar el telefono admin sin resubir codigo, o sea alguna funcion que me permitiera hacerlo desde un sms..esta es la realidad y tal vez exista una forma mas sencilla de hacer lo que busco...explico las alternativas que se me ocurrieron cuando empece a consultarles:
1- que teniendo la variable Char admin = "xxxxxxx"; con un numero ya definido, desde alguna funcion lo pueda sustituir por el numero que quiero.
2- que no exista ese variable Char admin = "xxxxxxx" y con un codigo medio extenso y dificil para evitar errores ("AB12XL14M" aunque era mas largo lo acorte para hacer las pruebas) al comparar con esta linea:
else if (numberSms != EEPROM.read(0) and textSms.indexOf("AB12XL14M") != -1)
que obvio el numero del que se envia el sms es distinto a lo q esta en la eeprom porque se supone vacia, primera comparacion bien, y luego ese codigo correcto walá..
pudiera grabar en la eeprom y luego hacer todas las comparaciones con la eerpom y no con la variable admin....
3- la otra opcion seria en vez de leer el numero sms y guardarlo enviar un sms con el numero que quiero en el cuerpo del sms y guardar eso..pero no me parece estaria en la misma..
ojala me puedan dar una idea, repito el codigo funciona, solo deseo poder hacer un cambio de numero de admin ya sea que este preconfigurado, o si no existe la variable, jugar con eeprom y guardarlo ahi y hacer las comparaciones contra esta...pero aunque esto estaria casi casi, guarda basura y las comparaciones obvio fallan...
espero haber explicado bien que es lo que busco, ojala me ayuden a develar este lio...
Hola a todos, doy por cerrado el tema, ya funciona, el problema era que al haber hecho tantas pruebas en algún momento puse mas caracteres que el del numero telefónico, entonces cuando le daba a borrar borraba 14 de tamaño pero supere los 20 en un momento entonces siempre había mas cosas..puse de tamaño 30 para borrar y al comenzar de nuevo walaaa..anda barbaroo...
y por el tema de la comparación basta con poner (buffer_EEPROM) y listo..la comparación la hace perfecto...saludos y gracias a todos por la ayuda, en especial a Surbyte, muchas gracias de verdad, soy consciente que no se mucho, pero lo que me di cuenta de mi misma q mas allá de la pregunta que una puede hacer, sigo probando y probando, así fue que fui solucionando todo sumado a las respuestas de uds...
gracias y saludos..
Any..
Hola una consulta nueva y mas sencilla jaja, pero que no logro resolver:
en este codigo con text pongo lo que quiero decir, y error manda el mensaje pero lo hace por separado
text="\nUd. es el nuevo Administrador, con este numero:";
error=Sim800l.sendSms(numberSms.c_str(),buffer_EEPROM);
yo quisiera que lo envíe todo junto pero me sale este error en el IDE:
invalid operands of types 'char*' and 'char [14]' to binary 'operator+'.
ese sale cuando pongo algo asi:
text="\nUd. es el nuevo Administrador, con este numero:";
error=Sim800l.sendSms(numberSms.c_str(),text + buffer_EEPROM);
asi si envia el texto:
text="\nUd. es el nuevo Administrador, con este numero:";
error=Sim800l.sendSms(numberSms.c_str(),text;
pero no manda el numero almacenado en la EEPROM...
como puedo hacer para que lo envié todo en el mismo mensaje?
aguardo sus comentarios y gracias..
Any.
esto esta solucionado es con : (EEPROM.read(0) != 0) era 0 jajajja, a esta hora...
por otro lado tampoco logro comparar lo guardado en la eeprom con esta instruccion:
if ((buffer_EEPROM) == "" ) {
se que esta vacia, pero no se si vacia de nada o con ceros y eso es vacio...porque no lo toma, hace como que tiene info aunque no me muestra nada..
intente enviar el numero modificando la linea asi:
error=Sim800l.sendSms(numberSms.c_str(),(numberSms.c_str(),text));
pero, sigue saliendo el texto hasta los : y luego nada, vacio..no manda el numero..
lo de
if ((buffer_EEPROM) == "" ) {
sigo sin poder resolverlo tampoco...
solo queda resolver como concatenar las variables char del numero y del texto...