Bonjour,
je souhaite chauffer une piscine rapidement avec un chauffe eau solaire(intex), un arduino ( esp32), un capteur de température ds18b20 (fixé sous le chauffe eau solaire) et un relais branché sur la pompe.
Je souhaite juste pouvoir régler le temps de fonctionnement de mon relay, de 2 à 4 secondes pour ne pas faire trop baisser la température du chauffe eau.
Actuellement, le relais reste en marche trop longtemps, 15 à 20sec ,pour chauffer efficacement; ce qui refroidit trop le panneau, perte de 10 ou 15°. Je ne veux pas que le relais SE COUPE en fonction de la température lut sur le capteur, mais d'un temps défini.
La fonction delay de 2 seconde de fonctionne pas, doit-je utiliser la fonction millis , ou autre, pour temporiser mon relais une fois déclenché.
Merci d'avance pour votre aide.
Voici mon code :
#include <OneWire.h>
#include <DallasTemperature.h>
#define RELAIS 18
// GPIO where the DS18B20 is connected to
const int oneWireBus = 14;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
void setup() {
// Start the Serial Monitor
Serial.begin(115200);
// Start the DS18B20 sensor
sensors.begin();
pinMode(RELAIS,OUTPUT);
}
void loop() {
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
Serial.print(temperatureC);
Serial.println("ºC");
{
//Print the results
if (sensors.getTempCByIndex(0) > 40)
// si temperature inferieur à 40°
{
digitalWrite(RELAIS, HIGH); //Relais1 ON
delay(2000); //relais temporiser pour 2 secondes
}
else
{
digitalWrite(RELAIS, LOW); // Relais1 OFF
}
}
}





