void loop()
{
//DS18B20
byte i;
byte data[12];
int Tc_1001;//temperature air extrait vmc
int Tc_1002;//temperature air insufle vmc
int Tc_1003;//temperature d entree eau puit canadien
int Tc_1004;//temperature de sortie d'air puit canadien
int Tc_1005;//temperature air exterieur
int Tc_1006;//temperature d'air salle a manger
int Tc_1007;//temperature d'air chambres
Tc_1001 = tc_100(addr1);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(BigFont);
myGLCD.printNumI((Tc_1001)/100, 74, 202);
Serial.print("Air extrait: ");
mypr(Tc_1001);
Tc_1002 = tc_100(addr2);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(BigFont);
myGLCD.printNumI((Tc_1002)/100, 192, 202);
Serial.print("Air insufle: ");
mypr(Tc_1002);
Tc_1003 = tc_100(addr3);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(BigFont);
myGLCD.printNumI((Tc_1003)/100, 300, 202);
Serial.print("Entree d'eau puit canadien: ");
mypr(Tc_1003);
int RendementVmc = Tc_1002/((Tc_1001)/100);
int RendementGlobal = (Tc_1002/((Tc_1001)/100))+3;
int RendementPuit = (Tc_1004/100)/Tc_1003;
Tc_1004 = tc_100(addr4);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(BigFont);
myGLCD.printNumI((Tc_1004)/100, 418, 202);
Serial.print("Sortie d'air puit canadien: ");
mypr(Tc_1004);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SevenSegNumFont);
myGLCD.printNumI((RendementVmc), 100, 100);
Serial.print("Rendement Vmc: ");
mypr(RendementVmc*100);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SevenSegNumFont);
myGLCD.printNumI((RendementPuit), 304, 100);
Serial.print("Rendement puit canadien: ");
mypr(RendementPuit*100);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SixteenSegment64x96Num);
myGLCD.printNumI((RendementGlobal), 260, 690);
Serial.print("Rendement Global: ");
mypr(RendementGlobal*100);
Tc_1005 = tc_100(addr1);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(GroteskBold32x64);
myGLCD.printNumI((Tc_1005)/100, 31, 295);
myGLCD.printNumI((((Tc_1005)%100)/10), 120, 295);
Serial.print("Temperature Exterieur: ");
mypr(Tc_1005);
Tc_1006 = tc_100(addr2);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(GroteskBold32x64);
myGLCD.printNumI((Tc_1006)/100, 31, 388);
myGLCD.printNumI((((Tc_1006)%100)/10), 120, 388);
Serial.print("Temperature salle a manger: ");
mypr(Tc_1006);
Tc_1007 = tc_100(addr3);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(GroteskBold32x64);
myGLCD.printNumI((Tc_1007)/100, 31, 478);
myGLCD.printNumI((( (Tc_1007)%100)/10), 120, 478);
Serial.print("Temperature chambres: ");
mypr(Tc_1007);
//DHT22
float tempext, humext;
float tempsalle, humsalle;
float tempchambre, humchambre;
float tempwc1, humwc1;
float tempwc2, humwc2;
//1 Lecture exterieur de la température et de l'humidité, avec gestion des erreurs
switch (readDHT22(DHT3, &tempext, &humext)) {
case DHT_SUCCESS:
// Affichage de la température et du taux d'humidité
Serial.print(F("Humidite exterieur (%): "));
Serial.println(humext, 2);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SevenSegNumFont);
myGLCD.printNumI((humext), 330, 305, 0);
break;
case DHT_TIMEOUT_ERROR:
Serial.println(F("Pas de reponse exterieur!"));
break;
case DHT_CHECKSUM_ERROR:
Serial.println(F("Pb de communication exterieur!"));
break;
}
delay(1000);
//2 Lecture salle a manger de la température et de l'humidité, avec gestion des erreurs
switch (readDHT22(DHT3, &tempsalle, &humsalle)) {
case DHT_SUCCESS:
// Affichage de la température et du taux d'humidité
Serial.print(F("Humidite salle à manger(%): "));
Serial.println(humsalle, 2);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SevenSegNumFont);
myGLCD.printNumI((humsalle), 330, 397, 0);
if((((35<= humsalle )&&(humsalle <=55))&&(((Tc_1006)/100)<=20)) || (((35<= humsalle )&&(humsalle <=66))&&((((Tc_1006)/100)<=23)&&(((Tc_1006)/100)>20))) || (((40<= humsalle )&&(humsalle <=70))&&(((Tc_1006)/100)>23)))
{
myGLCD.setColor(VGA_FUCHSIA);
myGLCD.setFont(BigFont);
myGLCD.print("CONFORT", 195, 426);
}
else
{
myGLCD.setColor(VGA_RED);
myGLCD.setFont(BigFont);
myGLCD.print("INCONFORT", 170, 426);
}
break;
case DHT_TIMEOUT_ERROR:
Serial.println(F("Pas de reponse salle à manger!"));
break;
case DHT_CHECKSUM_ERROR:
Serial.println(F("Pb de communication salle à manger!"));
break;
}
delay(1000);
//3 Lecture chambre de la température et de l'humidité, avec gestion des erreurs
switch (readDHT22(DHT3, &tempchambre, &humchambre)) {
case DHT_SUCCESS:
// Affichage de la température et du taux d'humidité
Serial.print(F("Humidite chambre (%): "));
Serial.println(humchambre, 2);
myGLCD.setColor(VGA_LIME);
myGLCD.setFont(SevenSegNumFont);
myGLCD.printNumI((humchambre), 330, 489, 0);
if((((35<= humchambre )&&(humchambre <=55))&&(((Tc_1007)/100)<=20)) || (((35<= humchambre )&&(humchambre <=65))&&((((Tc_1007)/100)<=23)&&(((Tc_1007)/100)>20))) || (((40<= humchambre )&&(humchambre <=70))&&(((Tc_1007)/100)>23)))
{
myGLCD.setColor(VGA_FUCHSIA);
myGLCD.setFont(BigFont);
myGLCD.print("CONFORT", 195, 519);
}
else
{
myGLCD.setColor(VGA_RED);
myGLCD.setFont(BigFont);
myGLCD.print("INCONFORT", 170, 519);
}
break;
case DHT_TIMEOUT_ERROR:
Serial.println(F("Pas de reponse chambre!"));
break;
case DHT_CHECKSUM_ERROR:
Serial.println(F("Pb de communication chambre!"));
break;
}
delay(1000);
//4 Lecture wc1 de la température et de l'humidité, avec gestion des erreurs
switch (readDHT22(DHT4, &tempwc1, &humwc1)) {
case DHT_SUCCESS:
// Affichage de la température et du taux d'humidité
Serial.print(F("Humidite wc1 (%): "));
Serial.println(humwc1, 2);
myGLCD.setColor(VGA_LIME);
if (humwc1 >70 )
{
analogWrite(pinmoteur, 255);
}
if ((humwc1 >65 && humwc1 >=70) || (humwc2 >65 && humwc2 >=70))
{
analogWrite(pinmoteur, 200);
}
if ((humwc1 >60 && humwc1 >=65) || (humwc2 >60 && humwc2 >=65))
{
analogWrite(pinmoteur, 120);
}
if ((humwc1 >55 && humwc1 >=60) || (humwc2 >55 && humwc2 >=60))
{
analogWrite(pinmoteur, 60);
}
else
{
analogWrite(pinmoteur, 0);
}