Excuse moi en effet je veux aussi qu'elle se coupe a 16° en marche forcé.
J'ai rajouté une résistance 10K entre le GND et le PIN52 comme tu ma dis. Plus aucun soucis de ce coté la.
Voici le code fonctionnel. Si vous voyez des choses a optimiser hésitez pas.
Je vais commencer a faire le CI.
Vous auriez une idée du type de boite dans laquelle je peux placer mes DHT22 sans altérer leur rôle?
Genre petite boite plastique perforée ? Je vais check mon catalogue Gotronic.
Merci a tous pour l'aide.
#include "DHT.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ds3231.h>
#define DHTZ1PIN 2
#define DHTZ2PIN 8
#define DHTTYPEZ1 DHT22
#define DHTTYPEZ2 DHT22
struct ts t;
const char* Jour[7] = {" LUNDI", " MARDI", "MERCREDI", " JEUDI", "VENDREDI", " SAMEDI", "DIMANCHE"};
const char* Mois[12] = {"JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE"};
DHT dhtz1(DHTZ1PIN, DHTTYPEZ1);
DHT dhtz2(DHTZ2PIN, DHTTYPEZ2);
LiquidCrystal_I2C lcd(0x3F, 20, 4);
void setup()
{
Wire.begin();
DS3231_init(DS3231_INTCN);
dhtz1.begin();
dhtz2.begin();
lcd.init(); //INITIALISATION ECRAN
lcd.backlight(); //INITIALISATION RETROECLAIRAGE
lcd.clear(); // NETTOYAGE ECRAN AU BOOT
pinMode(8, INPUT); //ENTREE DHT22 ZONE2
pinMode(2, INPUT); //ENTREE DHT22 ZONE1
pinMode(20, INPUT); //ENTREE RTC SDA
pinMode(21, INPUT); //ENTREE RTC SCL
pinMode(SDA, OUTPUT); //SORTIE SDA ECRAN I2C
pinMode(SCL, OUTPUT); //SORTIE SCL ECRAN I2C
pinMode(22, OUTPUT); //SORTIE LED CHAUFFAGE
pinMode(24, OUTPUT); //SORTIE RELAIS CHAUFFAGE
pinMode(52, INPUT); //ENTREE INTERRUPTEUR
}
void loop()
{
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////LECTURE TEMPERATURE ET HUMIDITE//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
float hz1 = dhtz1.readHumidity();
float tz1 = dhtz1.readTemperature();
float hz2 = dhtz2.readHumidity();
float tz2 = dhtz2.readTemperature();
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////AFFICHAGE TEMPERATURE DE LA ZONE1/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
lcd.setCursor(0, 2 );
lcd.print("|Z1|");
lcd.print(" T:");
lcd.print(tz1, 1);
lcd.print((char)223);
lcd.print(" H:");
lcd.print(hz1, 1);
lcd.print("%");
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////AFFICHAGE TEMPERATURE DE LA ZONE2/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lcd.setCursor(0, 3);
lcd.print("|Z2|");
lcd.print(" T:");
lcd.print(tz2, 1);
lcd.print((char)223);
lcd.print(" H:");
lcd.print(hz2, 1);
lcd.print("%");
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////GESTION DATE ET HEURE//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
DS3231_get(&t);
lcd.setCursor (0, 0);
lcd.print (Jour[t.wday - 1]);
lcd.setCursor (9, 0);
if (t.mday < 10); lcd.print ("0");
lcd.print (t.mday);
lcd.setCursor (12, 0);
lcd.print (Mois[t.mon - 1]);
lcd.setCursor(0, 1);
if (t.hour < 10)lcd.print("0");
lcd.print(t.hour);
lcd.print(":");
if (t.min < 10)lcd.print("0");
lcd.print(t.min);
lcd.print(" ");
lcd.print("MODE :");
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////GESTION ACTIVATION CHAUDIERE/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if ((digitalRead(52) == HIGH) && (tz1 < 16))
{
lcd.setCursor(15, 1);
lcd.print("FORCE");
digitalWrite(22, HIGH);
digitalWrite(24, HIGH);
}
else if ((digitalRead(52) == LOW) && (t.hour >= 8) && (t.hour <= 16) && (t.wday >= 1) && (t.wday <= 5))
{
if (tz1 < 13)
{
lcd.setCursor(15, 1);
lcd.print("AUTO ");
digitalWrite(22, HIGH);
digitalWrite(24, HIGH);
}
if (tz1 > 16)
{
lcd.setCursor(15, 1);
lcd.print("AUTO ");
digitalWrite(22, LOW);
digitalWrite(24, LOW);
}
}
else
{
lcd.setCursor(15, 1);
lcd.print("OFF ");
digitalWrite(22, LOW);
digitalWrite(24, LOW);
}
delay(1000);
}