const int lm35_pin = A0; /* LM35 O/P pin */
#define Heater 7
#define Fan 8
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define LCD_ADDRESS 0x27
#define LCD_COLUMNS 16
#define LCD_ROWS 2
LiquidCrystal_I2C lcd(LCD_ADDRESS, LCD_COLUMNS, LCD_ROWS);
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
int temp_adc_val;
float temp_val;
temp_adc_val = analogRead(lm35_pin); /* Read Temperature */
temp_val = (temp_adc_val * 4.88); /* Convert adc value to equivalent voltage */
temp_val = (temp_val / 100); /* LM35 gives output of 10mv/°C */
Serial.print("Temperature = ");
Serial.print(temp_val);
Serial.print(" Degree Celsius\n");
lcd.clear();
lcd.print("Temp = ");
lcd.print(temp_val);
lcd.print(" *C");
if (temp_val <= 24.00) {
digitalWrite(Heater, HIGH);
digitalWrite(Fan, LOW);
lcd.clear();
lcd.print("Temp = ");
lcd.print(temp_val);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("HEATING");
}
else if (temp_val >= 26.00) {
digitalWrite(Heater, LOW);
digitalWrite(Fan, HIGH);
lcd.clear();
lcd.print("Temp = ");
lcd.print(temp_val);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("COOLING");
}
delay(1000);
}