/*
--new فقاسة جديد --
*/
unsigned long timer = 0; //تايمر
unsigned long delaytimer = 1000; //معدل التأخير الزمني ..يعني كل 1000=ثانية
//#include <LiquidCrystal.h> //تعريف مكتبة الشاشة
//LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //تعريف مداخل الشاشة على الاردوينو..RS,En,D4,D5,D6,D7
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include "DHT.h" // تضمين مكتبة الحساس
#define DHTTYPE DHT22 //تعرف نوع الحساس
#define DHTPIN 12 // توصيل حساس الرطوبه dHT11 //g==الفرق بين الحرارة القصوى والدنيا
#include <EEPROM.h>
int count = 1 , y = 0 , x = 0 , bo = 0, setday = 0, sethum = 0 , setmotor = 0 , reset = 0 , day, s = 0 , m = 0 , hour = 0 , sc = 1, p = 0, scf = 1 ;
float settemp = 0 , g = 0, setfan = 0 , no = 0;
#define buzzer 9 //منفذ محرك التقليب
#define fan 8 //منفذ مروحة التهوية
#define heater 10 // منفذ السخان
#define steam 11 // منفذ المبخر
#define sw1 A0 //تعريف الكبسة الاولى ....الخيارات ((e=معدل الزيادة كل ساعة التابع لمروحة التبريد))
#define sw2 A1 //تعريف الكبسة الثانية ++
#define sw3 A2 //تعريف الكبسة الثالثة --
#define sw4 A3 // تعريف الكبسة الثالثة SAVE
//#define buzzer 13
DHT dht(DHTPIN, DHTTYPE); //تعريف الحساس
// RemoteXY select connection mode and include library
/*
#define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD
#include <RemoteXY.h> // تعريف مكتبة ESP
// RemoteXY connection setting
#define REMOTEXY_SERIAL Serial //اعدادات شبكة واي فاي
#define REMOTEXY_SERIAL_SPEED 115200 // موقع ريموت اكس واي كلاود
#define REMOTEXY_WIFI_SSID "speed"
#define REMOTEXY_WIFI_PASSWORD "12346789"
#define REMOTEXY_CLOUD_SERVER "cloud.remotexy.com"
#define REMOTEXY_CLOUD_PORT 6376
#define REMOTEXY_CLOUD_TOKEN "ccf615bd50e7c7c680a111001fe2e615"
// RemoteXY configurate
#pragma pack(push, 1) // مصفوفة برنامج الهاتف
uint8_t RemoteXY_CONF[] = // 1244 bytes
{ 255, 44, 0, 5, 0, 213, 4, 16, 124, 5, 131, 1, 5, 92, 25, 7, 1, 2, 24, 216,
167, 217, 132, 217, 128, 216, 177, 216, 166, 217, 128, 217, 138, 217, 128, 216, 179, 217, 128, 217,
138, 216, 169, 0, 131, 0, 34, 92, 24, 7, 2, 2, 24, 216, 167, 217, 132, 217, 128, 216,
182, 217, 128, 216, 168, 217, 128, 216, 183, 0, 7, 13, 5, 6, 21, 7, 1, 135, 26, 2,
2, 7, 13, 34, 6, 21, 7, 1, 37, 26, 2, 2, 7, 21, 5, 21, 21, 7, 1, 136,
26, 2, 7, 13, 34, 21, 21, 7, 1, 37, 26, 2, 2, 7, 21, 48, 37, 14, 8, 1,
2, 26, 2, 7, 21, 33, 37, 14, 8, 1, 2, 26, 2, 7, 21, 19, 37, 13, 8, 1,
2, 26, 2, 70, 16, 47, 55, 9, 9, 1, 26, 38, 0, 70, 16, 28, 55, 9, 9, 1,
26, 135, 0, 70, 16, 9, 55, 9, 9, 1, 26, 204, 0, 70, 16, 39, 72, 9, 9, 1,
26, 107, 0, 70, 16, 15, 72, 9, 9, 1, 26, 1, 0, 129, 0, 37, 0, 14, 6, 1,
37, 216, 167, 217, 132, 216, 173, 216, 177, 216, 167, 216, 177, 216, 169, 0, 129, 0, 9, 0,
15, 6, 1, 135, 216, 167, 217, 132, 216, 177, 216, 183, 217, 136, 216, 168, 216, 169, 0, 129,
0, 34, 16, 27, 5, 1, 37, 216, 167, 217, 132, 216, 173, 216, 177, 216, 167, 216, 177, 216,
169, 32, 216, 167, 217, 132, 217, 133, 216, 183, 217, 132, 217, 136, 216, 168, 216, 169, 0, 129,
0, 0, 16, 28, 5, 1, 135, 216, 167, 217, 132, 216, 177, 216, 183, 217, 136, 216, 168, 216,
169, 32, 216, 167, 217, 132, 217, 133, 216, 183, 217, 132, 217, 136, 216, 168, 216, 169, 0, 129,
0, 43, 49, 14, 6, 1, 38, 216, 167, 217, 132, 216, 179, 216, 174, 216, 167, 217, 134, 0,
129, 0, 26, 49, 11, 6, 1, 136, 216, 167, 217, 132, 216, 168, 216, 174, 216, 167, 216, 177,
0, 129, 0, 6, 49, 16, 6, 1, 204, 216, 167, 217, 132, 217, 133, 216, 177, 217, 136, 216,
173, 216, 169, 0, 129, 0, 36, 65, 13, 6, 1, 104, 216, 167, 217, 132, 216, 170, 217, 130,
217, 132, 217, 138, 216, 168, 0, 129, 0, 13, 66, 13, 6, 1, 1, 216, 167, 217, 132, 216,
165, 217, 134, 217, 128, 216, 176, 216, 167, 216, 177, 0, 7, 13, 42, 4, 18, 5, 2, 2,
26, 2, 2, 7, 21, 42, 16, 18, 5, 2, 2, 26, 2, 7, 21, 42, 27, 18, 5, 2,
2, 26, 2, 7, 13, 42, 47, 18, 5, 2, 2, 26, 2, 2, 7, 21, 0, 37, 13, 8,
1, 1, 26, 2, 129, 0, 5, 1, 29, 5, 2, 24, 216, 167, 217, 132, 217, 129, 216, 177,
217, 130, 32, 216, 168, 217, 138, 217, 134, 32, 216, 167, 217, 132, 216, 173, 216, 177, 216, 167,
216, 177, 216, 169, 0, 129, 0, 5, 5, 30, 5, 2, 24, 216, 167, 217, 132, 216, 185, 217,
132, 217, 128, 217, 138, 217, 128, 216, 167, 32, 217, 136, 32, 216, 167, 217, 132, 216, 181, 217,
128, 216, 186, 217, 128, 216, 177, 217, 137, 0, 129, 0, 6, 14, 30, 5, 2, 27, 216, 167,
217, 132, 217, 129, 216, 177, 217, 130, 32, 216, 168, 217, 138, 217, 134, 32, 216, 167, 217, 132,
216, 177, 216, 183, 217, 136, 216, 168, 216, 169, 0, 129, 0, 6, 18, 30, 5, 2, 27, 216,
167, 217, 132, 216, 185, 217, 132, 217, 128, 217, 138, 217, 128, 216, 167, 32, 217, 136, 32, 216,
167, 217, 132, 216, 181, 217, 128, 216, 186, 217, 128, 216, 177, 217, 137, 0, 129, 0, 6, 25,
31, 5, 2, 24, 216, 178, 217, 133, 217, 134, 32, 216, 170, 216, 180, 216, 186, 217, 138, 217,
132, 32, 217, 133, 216, 173, 216, 177, 217, 131, 32, 0, 129, 0, 6, 45, 31, 5, 2, 24,
216, 178, 217, 133, 217, 134, 32, 216, 170, 216, 180, 216, 186, 217, 138, 217, 132, 32, 217, 133,
216, 177, 217, 136, 216, 173, 216, 169, 0, 129, 0, 12, 29, 17, 5, 2, 24, 216, 167, 217,
132, 217, 128, 217, 128, 216, 170, 217, 128, 217, 128, 217, 130, 217, 132, 217, 128, 217, 138, 217,
128, 216, 168, 0, 129, 0, 11, 49, 20, 5, 2, 24, 216, 167, 217, 132, 217, 128, 217, 128,
216, 170, 217, 128, 217, 128, 217, 135, 217, 128, 217, 128, 217, 136, 217, 138, 217, 128, 217, 128,
217, 128, 216, 169, 0, 7, 21, 42, 59, 18, 5, 2, 2, 26, 2, 129, 0, 8, 57, 28,
5, 2, 28, 216, 185, 216, 175, 216, 175, 32, 216, 171, 217, 136, 216, 167, 217, 134, 217, 138,
32, 216, 170, 216, 180, 216, 186, 217, 138, 217, 132, 0, 129, 0, 13, 61, 20, 5, 2, 28,
216, 167, 217, 132, 217, 128, 217, 128, 217, 133, 217, 128, 217, 128, 216, 177, 217, 136, 216, 173,
217, 128, 217, 128, 217, 128, 216, 169, 0, 7, 21, 42, 36, 18, 5, 2, 2, 26, 2, 129,
0, 8, 35, 28, 5, 2, 28, 216, 185, 216, 175, 216, 175, 32, 216, 171, 217, 136, 216, 167,
217, 134, 217, 138, 32, 216, 170, 216, 180, 216, 186, 217, 138, 217, 132, 0, 129, 0, 15, 39,
12, 5, 2, 28, 216, 167, 217, 132, 217, 133, 216, 173, 216, 177, 217, 131, 0, 7, 13, 42,
71, 18, 5, 2, 2, 26, 2, 2, 7, 21, 42, 81, 18, 5, 2, 2, 26, 2, 129, 0,
2, 70, 36, 5, 2, 28, 216, 167, 217, 132, 216, 173, 216, 177, 216, 167, 216, 177, 216, 169,
32, 216, 167, 217, 132, 216, 178, 216, 167, 216, 166, 216, 175, 216, 169, 32, 217, 132, 216, 170,
216, 180, 216, 186, 217, 138, 217, 132, 0, 129, 0, 9, 74, 20, 5, 2, 28, 216, 167, 217,
132, 217, 128, 217, 128, 217, 133, 217, 128, 217, 128, 216, 177, 217, 136, 216, 173, 217, 128, 217,
128, 217, 128, 216, 169, 0, 129, 0, 2, 81, 37, 5, 2, 24, 216, 167, 217, 132, 216, 177,
216, 183, 217, 136, 216, 168, 216, 169, 32, 216, 167, 217, 132, 216, 178, 216, 167, 216, 166, 216,
175, 216, 169, 32, 217, 132, 216, 170, 216, 180, 216, 186, 217, 138, 217, 132, 0, 129, 0, 10,
84, 20, 5, 2, 24, 216, 167, 217, 132, 217, 128, 217, 128, 217, 133, 217, 128, 217, 128, 216,
177, 217, 136, 216, 173, 217, 128, 217, 128, 217, 128, 216, 169, 0, 129, 0, 22, 30, 35, 5,
1, 63, 217, 133, 217, 128, 217, 128, 217, 128, 216, 175, 216, 169, 32, 216, 167, 217, 132, 217,
128, 217, 128, 216, 170, 217, 128, 217, 128, 217, 128, 216, 180, 217, 128, 217, 128, 217, 128, 216,
186, 217, 128, 217, 128, 217, 128, 217, 138, 217, 128, 217, 128, 217, 132, 0, 129, 0, 1, 31,
12, 4, 1, 24, 216, 185, 216, 175, 216, 175, 32, 216, 167, 217, 132, 216, 163, 217, 138, 216,
167, 217, 133, 0
};
// this structure defines all the variables and events of your control interface
struct {
// input variables
float hR; //متغيرات الهاتف
float cR;
int16_t sethumR; // 32767.. +32767
float settempR;
int16_t mR; // 32767.. +32767
int16_t hourR; // 32767.. +32767
int16_t dayR; // 32767.. +32767
float gR;
int16_t pR; // 32767.. +32767
int16_t setmotorR; // 32767.. +32767
float setfanR;
int16_t setdayR; // 32767.. +32767
int16_t xR; // 32767.. +32767
int16_t yR; // 32767.. +32767
float nR;
int16_t bR; // 32767.. +32767
// output variables
uint8_t heaterR; // led state 0 .. 1
uint8_t steamR; // led state 0 .. 1
uint8_t fanR; // led state 0 .. 1
uint8_t motorR; // led state 0 .. 1
uint8_t buzR; // led state 0 .. 1
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
*/
void setup()
{
// RemoteXY_Init ();
lcd.init(); // initialize the lcd
lcd.init();
lcd.backlight();
pinMode (sw1, INPUT_PULLUP); //تعيين الكبسات كـ مدخل input
pinMode (sw2, INPUT_PULLUP); // تعيين كبسة ++ كـــ مدخل
pinMode (sw3, INPUT_PULLUP); // تعيين كبسة -- كـــ مدخل
pinMode (sw4, INPUT_PULLUP); // تعيين كبسة الحفظ كـــ مدخل
pinMode(buzzer, OUTPUT); //تعيين المتور كــ مخرج
pinMode(fan, OUTPUT); //تعيين المروحة كــ مخرج
pinMode(heater, OUTPUT); //تعيين السخان كــ مخرج
pinMode(steam, OUTPUT); //تعيين المبخر كــ مخرج
lcd.begin (16, 2); //تعيين بدء الشاشة وتعريف حجمها
dht.begin(); //تعيين بدء تشغيل الحساس
//..................................................
sethum = EEPROM.read(30);// الزاكرة اييبروم
setday = EEPROM.read(31);
setmotor = EEPROM.read(32);
y = EEPROM.read(33);
x = EEPROM.read(34);
bo = EEPROM.read(35);
p = EEPROM.read(36);
hour = EEPROM.read(37);
day = EEPROM.read(38);
EEPROM.get(40, settemp);
EEPROM.get(45, setfan);
EEPROM.get(50, no);
EEPROM.get(55, g);
/*lcd.clear(); //امر مسح الشاشة
lcd.print("TEMP & HUMIDITY"); //طباعة على الشاشة
lcd.setCursor(3,1);
lcd.print("MEASUREMENT ");
delay(1000); // طباعة بتأخير 1 ثانية
lcd.clear();
lcd.print(" Designed by >> ");
lcd.setCursor(0,1);
lcd.print(" Ali khattab ");
delay(1000); // طباعة بتأخير 1 ثانية
lcd.clear();*/
// TODO you setup code
}
void loop()
{
//RemoteXY_Handler ();
k(); // خاصة بالتايمر void صفحة
/* RemoteXY.sethumR = EEPROM.read(30);// الزاكرة اييبروم
RemoteXY.setdayR = EEPROM.read(31);
RemoteXY.setmotorR =EEPROM.read(32);
RemoteXY.yR =EEPROM.read(33);
RemoteXY.xR =EEPROM.read(34);
RemoteXY.bR =EEPROM.read(35);
RemoteXY.pR =EEPROM.read(36);
RemoteXY.hourR =EEPROM.read(37);
RemoteXY.dayR =EEPROM.read(38);*/
/* RemoteXY.settempR =EEPROM.get(40, settemp);
RemoteXY.setfanR =EEPROM.get(45, setfan);
RemoteXY.nR =EEPROM.get(50, no);
RemoteXY.gR =EEPROM.get(55, g);*/
if (digitalRead (sw1) == 0 )
{
delay(10);
while (digitalRead(sw1) == 0); //الضغطة الواحدة تعني ضغطة واحدة
count++; //كل ضغطة تقلب صفحة
if (count > 13)
{
count = 1; //اذا اكبر من 6 بيرجع للصفة الاولى
}
}
if (setmotor > 24)
{ //اذا ضبط المتور او المحرك اكبر من 24 .. بيرجع الضبط الى 0
setmotor = 0;
}
if (setfan > 24) {
setfan = 0;
}
float h = dht.readHumidity();
float f = dht.readTemperature(true);
float c = (f - 32) / 1.8;
//RemoteXY.cR = c ;
//RemoteXY.hR = h ;
if (isnan(h) || isnan(f))
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("#*****Error****#"); //طباعة كلمة خطأاذا فصل الحساس
lcd.setCursor(0, 1);
lcd.print("#Connect sensor#");//ملاحظة اذا فصل الحساس بيوقف البرنامج كامل
delay(1000);
return;
}
if (scf >= 3600 * setfan && scf < 3600 * setfan + x)
{
digitalWrite (fan, 1);
//RemoteXY.fanR = 1;
}
else if (c >= settemp + no )
{
digitalWrite (fan, 1);
// digitalWrite(buzzer,1);
//RemoteXY.buzR = 1;
// RemoteXY.fanR = 1;
}
else if (h >= sethum + bo )
{
digitalWrite (fan, 1);
//digitalWrite(buzzer,1);
// RemoteXY.buzR = 1;
//RemoteXY.fanR = 1;
}
else {
digitalWrite (fan, 0);
//RemoteXY.fanR = 0;
}
if (c <= settemp - 1)
{
digitalWrite(buzzer, 1);
//RemoteXY.buzR = 1;
}
else
{
digitalWrite(buzzer, 0);
//RemoteXY.buzR = 0;
}
/*if (sc >=3600*setmotor && sc <3600*setmotor +y)
{
digitalWrite (motor,1);
RemoteXY.motorR = 1;
}
else
{
digitalWrite (motor,0);
RemoteXY.motorR = 0;
}*/
switch (count)
{
case 1:
page1 (); //الصفحة الرئيسية الاولى
break;
case 2:
page2 (); //صفحة ضبط الحرارة
break;
case 3:
page3 ();//صفحة ضبط الرطوبة
break;
case 4:
page4(); //صفحة ضبط ايام عمل الجهاز
break;
case 5:
page5(); //صفحة ضبط المحرك..
break;
case 6:
page6(); // عدد ثواني تشغيل المحرك
break;
case 7:
page7(); //ضبط المروحة
break;
case 8:
page8(); // عدد ثواني تشغيل المروحة
break;
case 9:
page9(); //الحرارة الزائدة لتشغيل مروحة التبريد
break;
case 10:
page10(); //الرطوبة الزائدة لتشغيل مروحة التبريد
break;
case 11:
page11(); //ضبط الفرق بين الحرارة القصوى للتشغيل والحرارة الدنيا
break;
case 12:
page12(); // ضبط الفرق بين الرطوبة القصوى للتشغيل والرطوبة الدنيا
break;
case 13:
page13(); // صفحة تصفيير الجهاز بالكامل واعادة الضبط من جديد وتصفيير الساعة كامل
break;
}
}
void page1()
{
float h = dht.readHumidity(); // قراءة نسبة الرطوبة
float f = dht.readTemperature(true); //قراءة قيمة درجة الحرارة بالفهرنهايت من الحساس
float c = (f - 32) / 1.8; //تحويل من فهرنهايت إلى سيليزيوس
//RemoteXY.cR = c ;
//RemoteXY.hR = h ;
if (isnan(h) || isnan(f))
{
return;//اذا الحساس فاصل بيرجع
}
lcd.setCursor (0, 0);
lcd.print(c); //طباعة الحرارة
lcd.print("C "); //طباعة حرف c
lcd.setCursor(7, 0);
lcd.print(h); //طباعة الرطوبة
lcd.print("%"); //طباعة اشارة %
lcd.setCursor(13, 0);
lcd.print ("M"); //طباعة حرف M
lcd.setCursor(14, 0);
lcd.print(setmotor); //صباعة ضبط المتور
lcd.print (" ");
lcd.setCursor(0, 1); // نقل الى السطر الثاني
lcd.print("(");
lcd.print(day); //صباعة اليوم
lcd.print(")");
lcd.print("of");
lcd.print("(");
lcd.print(setday); //طباعة ضبط الايام
lcd.print(")");
lcd.print("#");
lcd.print(hour); //طباعة عدد الساعات
lcd.print(":");
lcd.print(m); //طباعة عدد الدقائق
//lcd.print(":");
//lcd.print(s); //طباعة عدد الثواني
lcd.print(" ");
if (c >= settemp) //اذا الحرارة اكبر او تساوي ضبط الحرارة بيطفي السخان
{
digitalWrite(heater, 0);
// RemoteXY.heaterR = 0;
}
if (c < settemp - g) //اذا الحرارة اصغر او تساوي الضبط ناقص الفرق ..بيشتغل السخان
{
digitalWrite(heater, 1);
//RemoteXY.heaterR = 1;
}
//..............................................................
/* if (c <= settemp-1.5)
{
digitalWrite(buzzer,1);
RemoteXY.buzR = 1;
}
/*else if (h <= sethum-10)
{
digitalWrite(motor,1);
}*/
/* else
digitalWrite(buzzer,0);
RemoteXY.buzR = 0; */
/*if (c <= settemp-1.5){
digitalWrite (motor,1);
}
else
digitalWrite (motor,0);*/
//...................................................................
if (h >= sethum) //اذا الرطوبة اكبر او تساوي ضبط الرطوبة بيطفي البخارا
{
digitalWrite(steam, 0);
//RemoteXY.steamR = 0;
}
if (h < sethum - p) //اذا الرطوبة اصغر او تساوي الضبط ناقص الفرق ..بيشتغل البخارا
{
digitalWrite(steam, 1);
// RemoteXY.steamR = 1;
}
check();
}
//.................................................
void page2()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("<<Set Temp>> [2]");
lcd.setCursor(0, 1);
lcd.print (" ");
lcd.print (settemp);
lcd.print(" C"); //طباعة اشارة الحرارة
lcd.print (" ");
check(); //صفحة خاصة ب ++ و --
//RemoteXY.settempR = settemp;
if (digitalRead (sw4) == 0)
{ // اذا انضغط الزر الرابع ..بيحفظ المعلومات
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.put(40, settemp);
}
}
//.......................................
void page3()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("<<Set Hum>> [3]");
lcd.setCursor(0, 1);
lcd.print (" ");
lcd.print (sethum);
lcd.print(" %");
lcd.print (" ");
check(); //صفجة خاصة بــــ ++و --
//RemoteXY.sethumR = sethum;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(30, sethum);
}
}
//............................................
void page4()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("<<Set DAY>> [4]");
lcd.setCursor(0, 1);
lcd.print (" >>");
lcd.print(setday); //طباعة ضبط الايام
lcd.print("<< ");
check();
//RemoteXY.setdayR = setday;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(31, setday);
}
}
//..................................
void page5()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("<<Set Motor>>[5]");
lcd.setCursor(0, 1);
lcd.print (" >>");
lcd.print(setmotor); //طباعة ضبط المحرك
lcd.print("<< ");
check();
//RemoteXY.setmotorR = setmotor;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(32, setmotor);
}
}
//.................................................
void page6()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("Seconds turn on ");
lcd.setCursor(0, 1);
lcd.print ("Motor (");
lcd.print(y); //طباعة عدد ثواني تشغيل المجرك
lcd.print(") [6]");
check(); //++/--
//RemoteXY.yR = y;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(33, y);
}
}
//............................................
void page7()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("<<Set Fan>> [7]");
lcd.setCursor(0, 1);
lcd.print (" >>");
lcd.print(setfan); //طباعة ضبط المروحة
lcd.print("<< ");
check(); //++/--
//RemoteXY.setfanR = setfan;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.put(45, setfan);
}
}
//............................................
void page8()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("Seconds turn on ");
lcd.setCursor(0, 1);
lcd.print ("Fan (");
lcd.print(x); // صباعة عدد ثواني تشغيل المروحة
lcd.print(") [8]");
check(); //++0.1--0.1
//RemoteXY.xR = x;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(34, x);
}
}
//.............................................
void page9()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("HighTemp turn on");
lcd.setCursor(0, 1);
lcd.print ("Fan (");
lcd.print(no); //طباعة الحرارا اللازمة لتشغيل التبريد
lcd.print(") [9]");
check(); //++0.1--0.1
//RemoteXY.nR = no ;
if (digitalRead (sw4) == 0)
{
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.put(50, no);
}
}
//.............................................
void page10()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("High Hum turn on");
lcd.setCursor(0, 1);
lcd.print ("Fan (");
lcd.print(bo); //طباعة الحرارا اللازمة لتشغيل التبريد
lcd.print(") [10]");
check(); //++
//RemoteXY.bR = bo ;
if (digitalRead (sw4) == 0) {
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(35, bo);
}
}
//.............................................
void page11()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("HighTemp-LowTemp");
lcd.setCursor(0, 1);
lcd.print (" >>");
lcd.print(g); //طباعة الفرق بين الحرارة القصوى والدنيا
lcd.print("<< [11]");
check(); //++0.1--0.1
//RemoteXY.gR = g;
if (digitalRead (sw4) == 0) {
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.put(55, g);
}
}
//.............................................
void page12()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("High Hum-Low Hum");
lcd.setCursor(0, 1);
lcd.print (" >>");
lcd.print(p); //طباعة الفرق بين الرطوبة القصوى والدنيا
lcd.print("<< [12]");
check(); //++/--
//RemoteXY.pR = p ;
if (digitalRead (sw4) == 0) {
delay(50);
while (digitalRead(sw4) == 0);
EEPROM.update(36, p);
}
}
//.........................................
void page13()
{
delay(10);
lcd.setCursor(0, 0);
lcd.print ("Reset Setting");
lcd.print ("[13]");
lcd.setCursor(0, 1);
lcd.print ("delete=1 ");
lcd.print ("<(");
lcd.print(reset);// اذا بيساوي 1 ..بيرجع الاعدادات الاساسية
lcd.print (")>");
check(); //++*--
}
//.............................................
void check () //صفحة للأزرار ++و--
{
if (digitalRead(sw2) == 0)
{
delay(50);
while (digitalRead(sw2) == 0);
switch (count)
{
case 1:
break;
case 2 :
settemp ++;
break;
case 3:
sethum++;
break;
case 4:
setday++;
break;
case 5:
setmotor++;
break;
case 6:
y++;
break;
case 7:
setfan += 0.1;
break;
case 8:
x++;
break;
case 9:
no += 0.1;
break;
case 10:
bo ++;
break;
case 11:
g += 0.1;
break;
case 12:
p++;
break;
case 13:
reset++;
if (reset >= 2)
reset = 0;
if (reset == 1)
{ //الاعدادات الاساسية
s = 0;
sc = 0;
scf = 0;
m = 0;
hour = 0;
EEPROM.write(37, 0);
EEPROM.write(38, 0);
day = 0;
setday = 0;
setmotor = 0;
settemp = 0;
sethum = 0;
reset = 0;
setfan = 0;
g = 0;
p = 0;
x = 0;
y = 0;
bo = 0;
no = 0;
}
break;
}
}
//...................................
if (digitalRead(sw3) == 0)
{
delay(50);
while (digitalRead(sw3) == 0);
switch (count)
{
case 1:
break;
case 2 :
settemp -= 0.1;
break;
case 3:
sethum--;
break;
case 4:
setday--;
break;
case 5:
setmotor--;
sc = 0;
break;
case 6:
y--;
break;
case 7:
setfan -= 0.1;
scf = 0;
break;
case 8:
x--;
break;
case 9:
no -= 0.1;
break;
case 10:
bo --;
break;
case 11:
g -= 0.1;
if (g < 0)
g = 0;
break;
case 12:
p--;
if (p < 0)
p = 0;
break;
case 13:
reset--;
if (reset < 0)
reset = 0;
break;
}
}
}
////////////////////////////////////////////////////////////////
void k() //صفحة خاصة بالتايمر
{
/* if (day == setday)
{
s=0;
sc=0;
m=0;
hour=0;
day=0;
setday=0;
setmotor=0;
}*/
unsigned long nowtimer = millis(); // الوقت الحالي في هذا المكان بالميلي ثانية
if (nowtimer - timer >= delaytimer ) //الوقت الحالي في هذا السطر ناقص الوقت البدائي اكبر او تساوي التأخير الزمني
{
s ++; //هاي توقيت الثانية للساعة
//sc++;// توقيت الناية للاردوينور خاصة بالمتور او المحرك
scf++;//هاي توقيت للاردوينو خاصة بالمروحة
if (setfan == 0 && x == 0)
scf = 1;
if (scf > 3600 * setfan + x)
scf = 1;
/*if (setmotor ==0 && y==0)
sc =1;
if (sc > 3600*setmotor +y)
sc =1;
*/
timer = nowtimer ;
}
else if (s >= 60)
{
s = 0;
m++;//توقيت الدقيقة للساعة
// RemoteXY.mR = m ;
}
else if (m >= 60)
{
m = 0;
hour++;//توقيت الساعة للساعة
//if (hour==6||hour==12||hour==18||hour==24)
EEPROM.update (37, hour);
//RemoteXY.hourR = hour ;
/*if (RemoteXY.mR >= 60)
RemoteXY.mR = 0;*/
}
else if (hour >= 24)
{
hour = 0;
day++;//عدد الايام التي تمر
EEPROM.update (38, day);
//RemoteXY.dayR = day ;
/*if (RemoteXY.hourR >= 24)
RemoteXY.hourR = 0;
*/}
}