SORRY i read ur Replies but i post this before u send ur replay
any way
this is my full code ... and u know what i cant do :-[
#include <dht.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <EEPROM.h>
#include <EasyButton.h>
LiquidCrystal_I2C LCD(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
const int min_value = 0;
const int max_value = 100;
byte eeprom_value;
const int firstT_value_up_pin = 10;
const int firstT_value_down_pin = 11;
int firstT_value = 25;
const int eeprom_address_firstT_value = 0;
const int secondT_value_up_pin = 12;
const int secondT_value_down_pin = 13;
int secondT_value =29;
const int eeprom_address_secondT_value = 1;
const int firstH_value_up_pin = 6;
const int firstH_value_down_pin = 7;
int firstH_value = 40;
const int eeprom_address_firstH_value = 2;
const int secondH_value_up_pin = 8;
const int secondH_value_down_pin = 9;
int secondH_value = 50;
const int eeprom_address_secondH_value = 3;
const int firstT_output_pin = A0;
const int secondT_output_pin = A1;
const int firstH_output_pin = A2;
const int secondH_output_pin = A3;
EasyButton button_firstT_up(firstT_value_up_pin);
EasyButton button_firstT_down(firstT_value_down_pin);
EasyButton button_secondT_up(secondT_value_up_pin);
EasyButton button_secondT_down(secondT_value_down_pin);
EasyButton button_firstH_up(firstH_value_up_pin);
EasyButton button_firstH_down(firstH_value_down_pin);
EasyButton button_secondH_up(secondH_value_up_pin);
EasyButton button_secondH_down(secondH_value_down_pin);
#define DHT_PIN 4
dht DHT;
long last_read_from_sensor = 0;
const long sensor_read_delay = 10000;
unsigned long Timer ;
double current_temperature ;
double current_humidity ;
void setup() {
{
Serial.begin(9600);
LCD.begin(16, 2); // 16 lines by 2 rows
LCD.clear();
LCD.backlight();
LCD.setCursor(5, 0);
LCD.print("J A C");
LCD.setCursor(1, 1);
LCD.print("T & H CONTROL");
delay (4000);
LCD.clear();
LCD.setCursor(0, 0);
LCD.print("OSAMA AHMED ");
LCD.setCursor(5, 1);
LCD.print("01005100425");
delay (5000);
}
EasyButton button_firstT_up(firstT_value_up_pin);
EasyButton button_firstT_down(firstT_value_down_pin);
EasyButton button_secondT_up(secondT_value_up_pin);
EasyButton button_secondT_down(secondT_value_down_pin);
EasyButton button_firstH_up(firstH_value_up_pin);
EasyButton button_firstH_down(firstH_value_down_pin);
EasyButton button_secondH_up(secondH_value_up_pin);
EasyButton button_secondH_down(secondH_value_down_pin);
eeprom_value = EEPROM.read(eeprom_address_firstT_value);
if(eeprom_value != 255)
{firstT_value = eeprom_value;}
eeprom_value = EEPROM.read(eeprom_address_secondT_value);
if(eeprom_value != 255)
{secondT_value = eeprom_value;}
eeprom_value = EEPROM.read(eeprom_address_firstH_value);
if(eeprom_value != 255)
{firstH_value = eeprom_value;}
eeprom_value = EEPROM.read(eeprom_address_secondH_value);
if(eeprom_value != 255)
{secondH_value = eeprom_value;}
pinMode(firstT_output_pin, OUTPUT);
digitalWrite(firstT_output_pin, HIGH);
pinMode(secondT_output_pin, OUTPUT);
digitalWrite(secondT_output_pin, HIGH);
pinMode(firstH_output_pin, OUTPUT);
digitalWrite(firstH_output_pin, HIGH);
pinMode(secondH_output_pin, OUTPUT);
digitalWrite(secondH_output_pin, HIGH);
}
void loop() {
button_firstT_up.update();
button_firstT_down.update();
button_secondT_up.update();
button_secondT_down.update();
button_firstH_up.update();
button_firstH_down.update();
button_secondH_up.update();
button_secondH_down.update();
if(button_firstT_up.IsPushed() && firstT_value < max_value && firstT_value < (secondT_value - 1))
{firstT_value++;
EEPROM.write(eeprom_address_firstT_value, firstT_value);}
if(button_firstT_down.IsPushed() && firstT_value > min_value)
{firstT_value--;
EEPROM.write(eeprom_address_firstT_value, firstT_value);}
if(button_firstH_up.IsPushed() && firstH_value < max_value && firstH_value < (secondH_value - 1))
{firstH_value++;
EEPROM.write(eeprom_address_firstH_value, firstH_value);}
if(button_firstH_down.IsPushed() && firstH_value > min_value)
{firstH_value--;
EEPROM.write(eeprom_address_firstH_value, firstH_value);}
if(button_secondT_up.IsPushed() == HIGH && secondT_value < max_value)
{secondT_value++;
EEPROM.write(eeprom_address_secondT_value, secondT_value);}
if(button_secondT_down.IsPushed() && secondT_value > min_value && firstT_value < (secondT_value - 1))
{secondT_value--;
EEPROM.write(eeprom_address_secondT_value, secondT_value);}
if(button_secondH_up.IsPushed() == HIGH && secondH_value < max_value)
{secondH_value++;
EEPROM.write(eeprom_address_secondH_value, secondH_value);}
if(button_secondH_down.IsPushed() && secondH_value > min_value && firstH_value < (secondH_value - 1))
{secondH_value--;
EEPROM.write(eeprom_address_secondH_value, secondH_value);}
{int chk = DHT.read22(DHT_PIN);
switch (chk)
{
case DHTLIB_OK:
Serial.print(F("OK, "));
current_temperature = DHT.temperature;
current_humidity = DHT.humidity;
Serial.print(F("current temperature: "));
Serial.println(current_temperature);
Serial.print(F("Current humidity: "));
Serial.println(current_humidity);
Serial.print(current_temperature); Serial.print(" *C, ");
Serial.print(current_humidity); Serial.println(" %");
LCD.clear();
// (note: line 1 is the second row, since counting begins with 0):
LCD.setCursor(0, 0);
LCD.print(current_temperature);
LCD.setCursor(3, 0);
LCD.setCursor(6, 0);
LCD.print("T");
LCD.setCursor(0, 1);
LCD.print(current_humidity+28);
LCD.setCursor(6, 1);
LCD.print("H");
// DHT11 sampling rate is 1HZ.
LCD.setCursor(11, 0);
LCD.print(firstT_value);
LCD.setCursor(13, 0);
LCD.print("-");
LCD.setCursor(14, 0);
LCD.print(secondT_value);
LCD.setCursor(8, 0);
LCD.print((char)223);
LCD.setCursor(9, 0);
LCD.print("C");
LCD.setCursor(11, 1);
LCD.print(firstH_value);
LCD.setCursor(13, 1);
LCD.print("-");
LCD.setCursor(14, 1);
LCD.print(secondH_value);
LCD.setCursor(9, 1);
LCD.print("%");
if ( current_temperature >= secondT_value )
{
digitalWrite(firstT_output_pin, LOW);
digitalWrite(secondT_output_pin, LOW);
}
else if ( current_temperature >= firstT_value )
{
Timer= millis();
if (millis()-Timer >= 5000UL){
digitalWrite(firstT_output_pin, HIGH);
digitalWrite(secondT_output_pin, LOW);
}
}
else {
digitalWrite(firstT_output_pin, HIGH);
digitalWrite(secondT_output_pin, HIGH);
}
if ( current_humidity+28 >= secondH_value )
{
digitalWrite(firstH_output_pin, LOW);
digitalWrite(secondH_output_pin, LOW);
}
else if ( current_humidity+28 >= firstH_value)
{
digitalWrite(firstH_output_pin, HIGH);
digitalWrite(secondH_output_pin, LOW);
}
else {
digitalWrite(firstH_output_pin, HIGH);
digitalWrite(secondH_output_pin, HIGH);
}
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println(F("Checksum error."));
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println(F("Time out error."));
break;
default:
Serial.println(F("Unknown error."));
break;
last_read_from_sensor = millis();
} } }