Hola de nuevo.
No hago mas que mirar y rebuscar alguna manera de poder borrar automaticamente todos los SMS que me entran en la SIM del SIM900, pero por mas que introduzco los comandos, no borra nada.
Se me hace un poco lioso, ya que tengo que desconectar la placa SIM900, retirar la tarjeta e instalarla en un telefono para comprobar si borró los mensajes.
Pero por desgracia continúan ahí.
Os dejo el código.
Copié uno que vi donde le mando un "H" y enciende un Led y si le mando "L" lo apaga.
Pretendía, ya de paso, y aprovechando la ocasión, que borrase todos los SMS que tuviera la tarjeta.
#include <SoftwareSerial.h>
SoftwareSerial SIM900(2,3);//Configarión de los pines serial por software
char caracter=0;// Variable para guardar los caracteres mensajes entrantes
int led=13;
String estado="";
void setup() {
SIM900.begin(19200);//Arduino se comunica con el SIM900 a una velocidad de 19200bps
Serial.begin(19200);//Velocidad del puerto serial de arduino
delay(20000);//Tiempo prudencial para el escudo inicie sesión de red con tu operador
pinMode(led, OUTPUT);
SIM900.print("AT+CMGF=1\r");// comando AT para configurar el SIM900 en modo texto
delay(200);
SIM900.print("AT+CNMI=2,2,0,0,0\r");//Configuramos el módulo para que muestre los SMS por el puerto serie.
delay(200);
}
void loop() {
if(SIM900.available() >0) {//Verificamos si hay datos disponibles desde el SIM900
caracter=SIM900.read(); // Leemos los datos y los almcanamos en la variable mensaje
Serial.print(caracter); //Imprime los datos entrantes uno a uno en el terminal serial
if(caracter=='H'){
Serial.println("-->enviando mensaje");
digitalWrite(led, HIGH);
estado="led encendido";
envioMensaje(estado);
}
if(caracter=='L'){
Serial.println("-->enviando mensaje");
digitalWrite(led, LOW);
estado="led apagado";
envioMensaje(estado);
}
//Borra_SMS(); //Si lo activo no borra nada. Solo escribe texto en el Monitor
}
}
void envioMensaje(String estado) {
SIM900.println("AT + CMGS = \"+3469900000\"");//reemplazar por el número a enviar el mensaje
delay(200);
SIM900.println("Estado:" + estado);// Reemplazar por el texto a enviar
delay(200);
//Finalizamos este comando con el caracter de sustitución (→) código Ascii 26 para el envio del SMS
SIM900.println((char)26);
delay(200);
SIM900.println();
delay(100);
//SIM900.println("AT+CMGL=\"ALL\",0");
SIM900.print("AT+CMGD=1,4");
SIM900.print("AT+CMGD=?");
//SIM900.println("DEL ALL\"");
}
void Borra_SMS() { // Delete All messages
//SIM900.print("AT+CMGDA=\"");
SIM900.println("AT+CMGL=\"ALL\",0 ");
//SIM900.println("DEL ALL\"");
delay(500);
Serial.println("All Messages Deleted");
Seguro que no tiene porque ser tan dificil