Hello everyone, I would be grateful if you could help me with the following project: it consists of sending an SMS automatically when a door opens and when it closes, so far I achieved it more or less, the problem I have is that I need to send only one sms only, so far several are sent as long as the door remains open, I would greatly appreciate your help
include <SoftwareSerial.h>
SoftwareSerial SIM900(10, 11); // Configura el puerto serial para el SIM900
char incoming_char = 0; //Variable que guarda los caracteres que envia el SIM900
int salir = 0;
const int switchPin = 2; //Pin de el sensor magnético
const int ledPin = 8; //Pin para encender led
void setup() {
SIM900.begin(19200); //Configura velocidad serial para el SIM900
delay(5000); //Retardo para que encuentra a una RED
Serial.begin(19200); //Configura velocidad serial para el Arduino
Serial.println("OK"); //Mensaje OK en el arduino, para saber que todo va bien.
pinMode (switchPin, INPUT); //Se establece el pin del sensor como entrada
pinMode (ledPin, OUTPUT); //Se establece el pin de led como salida.
digitalWrite (switchPin, HIGH);// Se establece el pin digital en alto el pin del sensor
}
void loop() { //Cliclo repetitivo
if (digitalRead(switchPin) == LOW ) { // Condición si el sensor se encuentra cerrado(LOW) se ejecuta accion
digitalWrite (ledPin, LOW); // Led permanece apagado
} else { //Condición si el sensor se encuentra abierto(HIGH)
digitalWrite (ledPin, LOW); // Led se enciende
mensaje_sms();
}
}
void llamar()
// Función que permite llamar a un celular local
{
// SIM900.println("ATD 10725275;"); //Numero
SIM900.println("ATD 78305229;"); //Celular
//delay(100);
SIM900.println();
delay(5000); // Espera 30 segundos.
SIM900.println("ATH"); // Cuelga el telefono
//delay(1000);
}
void mensaje_sms()
//Funcion para mandar mensaje de texto
{
SIM900.print("AT+CMGF=1\r"); // Comando AT para enviar mensaje
delay(100);
SIM900.println("AT + CMGS = \"51109746\""); // Numero al que se le va enviar SMS
delay(100);
SIM900.println("ALERTA: Ingreso a Sitio:Ch1 ID:2014"); // Mensaje que vamos a enviar
delay(100);
SIM900.println((char)26); // Comando AT para finalizar con ^Z, ASCII code 26 //Comando de finalizacion
delay(100);
SIM900.println();
delay(1000); // Tiempo para que se envie el mensaje
Serial.println("SMS enviado satisfactoriamente");
}
.
proyecto_final.ino (2.04 KB)