Tengo dudas de como hacer un agenda para el modulo SM800L, quiero que los numeros en el codigo sean los unicos autorizados

#include <SoftwareSerial.h>
SoftwareSerial SIM800L(10,11);

int trama=0;

char incoming_char;
String p="";
String valor="";

char inicio_clave;
char clave1;
String clave = "";
int c;

char num;

String mensaje = "";
int LED = 13 ;
bool estado = false ; //Variable para guardar el estado del LED
String agenda[] = {"6692307250"}; //Array con los numeros autorizados
int numtotal = 1; //Cantidad de numeros de telefono autorizados

void setup()
{
pinMode(2, OUTPUT); //Declarar el pin 13 como salida.
digitalWrite(2, HIGH);

Serial.begin(19200); // Inicio del puerto serial para el monitor serial.
SIM800L.begin(19200); // Inicio del puerto serial 1 para el módulo SIM900.
SIM800L.println("AT");
SIM800L.println("AT+CMGF=1\r"); // Configuración del módulo GSM en modo texto.
delay(100);
SIM800L.println("AT+CNMI=2,2,0,0,0\r"); /* El modulo enviará los mensaje
directamente al puerto serial del dispositivo. */
delay(100);
Serial.println("listo.");
}

void loop(){
if (SIM800L.available()>0){
incoming_char=SIM800L.read(); //Lectura de datos del puerto serial.
if((trama == 0) && (incoming_char == 'C')){
trama = 1;
p="";
clave="";
}
if((trama == 1) && (incoming_char == 'M')){
trama = 2;
}
if((trama == 2) && (incoming_char == 'T')){
trama = 3;
}
if((trama == 3) && (incoming_char == ':')){
trama = 4;
}
if((trama == 4) && (incoming_char == ' ')){
trama = 5;
}
if((trama == 5) && (incoming_char == '"')){
trama=6;
for(int i=0;i<13;i++){
num = SIM800L.read(); //Captura del número remitente. ej: +593982832027
if (num == '"') break;
else
p += num;

  }
  
}
// El mensaje es capturado a partir del caracter salto de línea \n.
if ((trama==6)&&(incoming_char=='\n')){ 
  while(SIM800L.available()>0){
    clave1 = SIM800L.read();
    clave += clave1;
    trama = 0;
    c=1;
  }
  Serial.println(clave);  // Imprimo el mensaje enviado desde un remitente.
}
delay(100);

if(p=="6692307250" && c==1){
if(SIM800L.available())
{

valor = SIM800L.readString(); //Guardar en la var valor el sms que recibe el Arduino

Serial.println("Nuevo SMS: "+ valor); //Imprime ese SMS en el monitor Serial

valor.reserve(100);
valor=valor;

}

if(valor.indexOf("Off1")>=0 || valor.indexOf("off1")>=0 || valor.indexOf("OFF1")>=0 )
{ //Si la var valor tiene la palabra ON hace esto:
digitalWrite(2, LOW); //Se enciende el pin 13.
Serial.println("equipo 1 apagado"); //Immprime el mensaje
delay(1500);

}

else if(valor.indexOf("Onn1")>=0 || valor.indexOf("onn1")>=0 || valor.indexOf("ONN1")>=0 )
{ //Si la var valor tiene la palabra ON hace esto:
digitalWrite(2, HIGH); //Se enciende el pin 13.a
Serial.println("equipo 1 encendido"); //Imprime el mensaje
delay(1500);
}
}
}
}

Código y titulo
Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Edita tmb el título haciendolo mas corto y conciso.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.