Enviar mensajes SIM 900

Hola a todos, estoy haciendo un proyecto de un medidor de temperatura y que se genere alertas mediante el SIM 900 (en este caso mensajes). El código consiste en que si la temperatura leída por el sensor sobrepasa los 25 grados se envíe un mensaje al celular y si la temperatura disminuye no hace nada. Ya me sale todo bien pero se envían mensajes hasta consumirse todo el saldo, no sé como poner un condicional para que se envíe solo un mensaje cuando esté en 25 grados y si la temperatura persiste en 25 grados que ya no se envíen más mensajes. Estaba tratando de hacer con un condicional “salir” pero no me funcionó. Adjunto el código.

#include <DHT.h>   //cargamos la librería DHT
#include <SoftwareSerial.h>  

#define DHTPIN 2 //Seleccionamos el pin en el que se conectará el sensor
#define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor
int salir=0;
SoftwareSerial SIM900(7, 8);  //se crea el puerto serial con los pines 7 y 8 

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); //Se inicia la comunicación serial 
  dht.begin(); //Se inicia el sensor
  SIM900.begin(19200); //Se configura la velocidad serial para el SIM900
  delay(20000); //Retardo para que encuentre la red celular
  Serial.begin(9600); //Se configura la velocidad serial para el Arduino
  Serial.println("El modulo SIM GPRS se esta conectando a la red celular.....");
  Serial.println("BUSCANDO RED CELULAR.......");  
  Serial.println("Se ha encontrado la red celular MOVISTAR"); //Mensaje que se muestra en el arduino para indicar que toda esta OK.
  Serial.println("****Conexion exitosa****");
}

void loop() {
  // put your main code here, to run repeatedly:
  float humedad = dht.readHumidity(); //Se lee la humedad
  float temperatura = dht.readTemperature(); //Se lee la temperatura
  //Se imprimen las variables
  Serial.print("Humedad: "); 
  Serial.print(humedad);
  Serial.print("  ");
  Serial.print("Temperatura: ");
  Serial.println(temperatura);
  delay(2000); //Se espera 2 segundos para seguir leyendo //datos

  if(temperatura<25 && salir==0){
    salir=1;
  }
  if(temperatura >=25 && salir==1){
    enviar_mensaje();
     salir=0;
  }

}

void enviar_mensaje(){ //Función para enviar un mensaje de texto hacia cualquier celular

SIM900.print("AT+CMGF=1\r"); // Poner en modo msm de text
delay(100);
SIM900.println("AT+CMGS=\"09XXXXXXXXX\""); //Hacia que número se desea enviar el mensaje
delay(100);
SIM900.println("La temperatura sobrepasa los 25 grados."); // Contenido del mensaje a enviar
delay(100);
SIM900.println((char)26); //ponemos el simbolo ascii 26,que corresponde a CTRL+Z en arduino, con lo que el modulo sabe que el sms termino
delay(5000); // Tiempo para que se envie el mensaje al móvil
//Serial.println("SMS enviado exitosamente");
}

Les agradezco su ayuda

Prueba asi…

#include <DHT.h>   //cargamos la librería DHT
#include <SoftwareSerial.h>  

#define DHTPIN 2 //Seleccionamos el pin en el que se conectará el sensor
#define DHTTYPE DHT22 //Se selecciona el DHT22(hay otros DHT)
DHT dht(DHTPIN, DHTTYPE); //Se inicia una variable que será usada por Arduino para comunicarse con el sensor
int salir = 0;
SoftwareSerial SIM900(7, 8);  //se crea el puerto serial con los pines 7 y 8 
float temperatura, temperaturaAnt; 
float humedad;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); //Se inicia la comunicación serial 
  dht.begin(); //Se inicia el sensor
  SIM900.begin(19200); //Se configura la velocidad serial para el SIM900
  delay(20000); //Retardo para que encuentre la red celular
  Serial.begin(9600); //Se configura la velocidad serial para el Arduino
  Serial.println("El modulo SIM GPRS se esta conectando a la red celular.....");
  Serial.println("BUSCANDO RED CELULAR.......");  
  Serial.println("Se ha encontrado la red celular MOVISTAR"); //Mensaje que se muestra en el arduino para indicar que toda esta OK.
  Serial.println("****Conexion exitosa****");
}

void loop() {
  // put your main code here, to run repeatedly:
  humedad = dht.readHumidity(); //Se lee la humedad
  temperatura = dht.readTemperature(); //Se lee la temperatura
  //Se imprimen las variables
  Serial.print("Humedad: "); 
  Serial.print(humedad);
  Serial.print("  ");
  Serial.print("Temperatura: ");
  Serial.println(temperatura);

  if (round(temperatura) != round(temperaturaAnt)){
      if (temperatura >= 25.0) // Esto enviará un mensaje con cada cambio x encima
          enviar_mensaje();  // de 25 o sea a los 26 27 28 ... y asi
  }
  delay(2000); //Se espera 2 segundos para seguir leyendo //datos
}

void enviar_mensaje(){ //Función para enviar un mensaje de texto hacia cualquier celular

  SIM900.print("AT+CMGF=1\r"); // Poner en modo msm de text
  delay(100);
  SIM900.println("AT+CMGS=\"09XXXXXXXXX\""); //Hacia que número se desea enviar el mensaje
  delay(100);
  SIM900.println("La temperatura sobrepasa los 25 grados."); // Contenido del mensaje a enviar
  delay(100);
  SIM900.println((char)26); //ponemos el simbolo ascii 26,que corresponde a CTRL+Z en arduino, con lo que el modulo sabe que el sms termino
  delay(5000); // Tiempo para que se envie el mensaje al móvil
  //Serial.println("SMS enviado exitosamente");
  temperaturaAnt = round(temperatura);
}

Como explico esto enviara un mensaje con cada cambio de temperatura en 1 grado a partir de 25
por ejemplo 25 26 27 pero si luego baja lo hará con 26 25 de nuevo.

Okay?

Gracias por tu respuesta. Deley que si funciona pero lo que en realidad quería es ya no enviar mensajes a partir de los 25 grados.

Saludos

Bueno inviertelo.. eso es lo de menos.