Ok, guys i resolved it , it seems there was something wrong with my temperature code. I used this code instead and for 1 day of continuous use , it seems that it didnt spike. This is the code i used:
#include <OneWire.h>
#include <DallasTemperature.h>
float Temp;
int led = 13;
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 3
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
pinMode(13, OUTPUT);
// Start up the library
sensors.begin(); // IC Default 9 bit. If you have troubles consider upping it 12. Ups the delay giving the IC more time to process the temperature measurement
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for Device 1 is: ");
Serial.println(sensors.getTempCByIndex(1)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
Serial.print("Temperature for Device 2 is: ");
Serial.println(sensors.getTempCByIndex(0));
delay(1000);
Temp=sensors.getTempCByIndex(0);
if (Temp > 23 ){
digitalWrite(led, HIGH);
Serial.print ("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
}
I used digitalWrite(led, HIGH); in order to visually see if there was a spike.