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…