Bon... tu te complique la vie...
Utilise les exemples des différentes librairies, ça peut déjà t'éclairer beaucoup
Par exemple, pour ton DS18B20 (partie de code que j'utilise pour un des aquariums) :
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress fish = { 0x28, 0xEE, 0xFA, 0xC3, 0x1D, 0x16, 0x01, 0xCC }; // cherche le code oneWire finder pour avoir l'adresse de ton capteur
void setup() {
sensors.begin();
sensors.setResolution(fish, 12); // de 9 à 12, plus la valeur est grande, plus de temps il faudra au capteur pour mesurer la température.
}
void loop() {
sensors.requestTemperatures();
Serial.print(sensors.getTempC(fish));
}
Pour le reste, la programmation c'est beaucoup de logique
if(now.hour() >= 8 && now.hour() <= 20){ // définition de la plage horaire
if(sensors.getTempC(capteur) < 11){ // définition de la température minimum
digitalWrite(RELAY, HIGH);
}
if(sensors.getTempC(capteur) >= 20){ // définition de la température maximum
digitalWrite(RELAY, LOW);
}
}
Bon, là tu as quasi tout le code, à toi de faire le nécessaire maintenant, et d'adapter selon tes besoins.
Compile ton code pour voir si tout est correct avant de poster aussi, les indications de l'IDE sont importantes.
Bonne soirée,
Aegnor