Problema con el codigo de proyecto con Arduino, sim800l y DHT22

Buenas compañeros, os escribo para ver si me podéis echar una mano, porque estoy intentado hacer un código para que el arduino con ayuda de una SIM y un sensor de temperatura para que me haga varias funciones. Una de ellas, que he conseguido modificar y sacar con éxito, es la de que cuando hago una llamada al numero de teléfono de la SIM, me cuelgue y me envíe un sms con los datos de temperatura y humedad, hasta aquí bien, pero otra de las funciones que quiero que me haga es la de una alerta por temperatura alta al superar x temperatura. La alerta si me llega, el problema es que me llega constantemente los mensajes una vez superada la temperatura, a pesar de que intento de limitarlos con un contador.
Espero haberme explicado con claridad… gracias de antemano aquí os dejo el código:

#include "Sim800l.h"
#include <SoftwareSerial.h>
#include "call.h"
#include <DHT.h>
#include "sms.h"

SoftwareSerial mySerial(2, 3); // RX, TX

SMSGSM sms;
#define DHTPIN 7  
#define DHTTYPE DHT22   

CallGSM call;
boolean started=false;
char sms_text[160];
DHT dht(DHTPIN, DHTTYPE);
 int count = 0;

void setup()
{
    dht.begin();
    Serial.begin(9600);
    
    if (gsm.begin(9600)) 
    {
        Serial.println("\nstatus=Preparada");
        started=true;
    } 
    else 
        Serial.println("\nstatus=IDLE");
}

void loop()
{
 
   float humidity, temperature;
   String smsText ="";

  switch (call.CallStatus())
  {
    case CALL_NONE: // Nothing is happening

      break;

    case CALL_INCOM_VOICE : // Yes! Someone is calling us

      Serial.println("RECEIVING CALL");
       call.HangUp();
       delay(2000);
       humidity = dht.readHumidity();
       temperature = dht.readTemperature();
       delay(2000);
       smsText = "Temperatura: "+String(temperature,1)+"C Humedad: "+String(humidity,1)+"%"+"     By Arduino";
       smsText.toCharArray(sms_text,160);
       //Serial.println(smsText);
       sms.SendSMS("+34660398448",sms_text);
      break;
  case CALL_COMM_LINE_BUSY:  // In this case the call would be established

      Serial.println("TALKING. Line busy.");
      
      break;
  }
  delay(1000);
 if (((temperature+1)>18) && count==0);
 temperature = dht.readTemperature();
 delay(2000);
 smsText = "Alarma, temperatura maxima superada: "+String(temperature,1)+"     By Arduino";
       smsText.toCharArray(sms_text,160);
       //Serial.println(smsText);
       sms.SendSMS("+34660398448",sms_text);
      delay(1000); 
      count++;  
  }

Falta tambien la parte que pone el contador a 0, pero no quiero seguir hasta que no tenga lo otro para no liarme…

if (((temperature+1)>18) && count==0);
En ese if, al final, tienes un ; el cual conlleva que ese if quede inútil.

Realmente le has dicho «si la temperatura es mayor de 17 y el contador es 0, haz “nada” y después de hacer “nada” vuelve a leer la temperatura y enviarla…»

Eso debería quedar así:

if (temperatura => 18 && count == 0) {
   temperature = dht.readTemperature();
   delay(2000);
   smsText = "Alarma, temperatura maxima superada: "+String(temperature,1)+"     By Arduino";
   smsText.toCharArray(sms_text,160);
   //Serial.println(smsText);
   sms.SendSMS("+34660398448",sms_text);
   delay(1000); 
   count++;  
  }

Fíjate que le he añadido dos llaves { }, después de la } vendría otra } que sería la del switch.

Muchas gracias por contestar Miguel Ángel, pero lo he modificado y me lanza este error:

C:\Documents and Settings\Jose\Escritorio\Sim800l___DHT22_envio_de_temperatura_weno\Sim800l___DHT22_envio_de_temperatura_weno.ino: In function ‘void loop()’:

Sim800l___DHT22_envio_de_temperatura_weno:65: error: expected primary-expression before ‘>’ token

if (temperature => 18 && count == 0) {

               ^

Utilizando biblioteca Sim800l-master en carpeta: C:\Documents and Settings\Jose\Mis documentos\Arduino\libraries\Sim800l-master (legacy)
Usando librería SoftwareSerial con versión 1.0 en la carpeta: C:\Archivos de programa\Arduino\hardware\arduino\avr\libraries\SoftwareSerial
Utilizando biblioteca GSM_GPRS_GPS_Shield_GSMSHIELD en carpeta: C:\Archivos de programa\Arduino\libraries\GSM_GPRS_GPS_Shield_GSMSHIELD (legacy)
Usando librería DHT-sensor-library-master con versión 1.3.0 en la carpeta: C:\Documents and Settings\Jose\Mis documentos\Arduino\libraries\DHT-sensor-library-master
Usando librería Adafruit_Sensor-master con versión 1.0.2 en la carpeta: C:\Documents and Settings\Jose\Mis documentos\Arduino\libraries\Adafruit_Sensor-master
exit status 1
expected primary-expression before ‘>’ token

>=, no => :wink:

1 me gusta

Y mira que tú también has visto la respuesta…

Prueba lo que dice @jorge_arasthel

jajaja ok gracias

Por si te sirve de ayuda mi proyecto. En el manejo SIM800L mediante comandos AT junto con varios shields más donde entre ellos está el DHT22.

Saludos

Gracias robitibillo!! Lo miro.