Bonjour, je vous présente mon code juste en dessous ainsi que le projet. Il s'agit d'une serre de culture de tomate paramétrés suivant une étude pro de culture de tomate en serre.
Voici mon problème : Dans l'étude il explique qu'une augmentation de température douce au matin est favorable pour la nouaison des tomates, donc après installation d'un ds3231 et d'un capteur dht22, j'ai conditionné ma température avec une condition d'extraction d'air pendant la journée : Si température > 27 alors extraction on et en dessous de 26 OFF, pour maintenir un 1° d'écart la journée, ( vérifier avec un thermohygromètre enregistreur extérieur à l'arduino) , sauf que je n'arrive pas à trouver le bon code pour garder cette condition et activer pendant une plage horaire précise l'extracteur.
Jai tenter des OR , and not , l'appareil s'allume 2 secondes puis s'éteint, j'ai testé plusieurs code de personnes mais à chaque fois j'ai le même problèmes...
Auriez vous une solution ou une explication du fonctionnement de ce que je souhaiterais faire ?
Merci à vous
#include <DHT.h>
#include <Wire.h>
#include <ds3231.h>
#define DHTPIN 2 // broche DATA -> broche 2
#define RELAIS 9
#define RELAISS 4
#define DHTTYPE DHT22
struct ts temps;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(RELAIS, 9);
pinMode(RELAISS, 4);
Wire.begin();
DS3231_init(DS3231_INTCN);
temps.hour = 18;
temps.min = 10;
temps.sec = 30;
temps.mday = 8;
temps.mon = 05;
temps.year = 2022;
DS3231_set(temps);
dht.begin();
}
void loop() {
delay(2500);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (t > 27) {
digitalWrite (RELAISS, HIGH);
delay(2000);
}
if (t < 26 ) {
digitalWrite(RELAISS, LOW);
delay(2000);
}
if (h < 35 ) { // ici je pensais h< 35 or temps.hour > 17
digitalWrite (RELAIS, HIGH);
delay(2000);
}
if (h > 45 ) { // ici je pensais h> 45 or temps.hour > 20
digitalWrite(RELAIS, LOW);
delay(2000);
}
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Affiche l'humidité et la température du capteur
// On imprime la température de l'air
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
// -----------------------------------------------
//-------------------------------------------------
// -----------------------------------------------
// Affiche l'heure du ds3231 ----------
DS3231_get(&temps);
Serial.print("date : ");
Serial.print(temps.mday);
Serial.print("/");
Serial.print(temps.mon);
Serial.print("/");
Serial.print(temps.year);
Serial.print("\t Heure : ");
Serial.print(temps.hour);
Serial.print(":");
Serial.print(temps.min);
Serial.print(".");
Serial.println(temps.sec);
delay(2000);
}