probleme sur un projet - [station meteo]

bonsoir,
voila je débute sur arduino (et le C est ma bête noir) et j’ai voulu commencer par un projet assez simple et bateau qu’on peut trouver un peu partout sur internet.
j’ai voulu réaliser une station météo a l’aide d’un capteur dht11, jusqu’à la simple, avec une panneau lcd. j’ai rajouter une led et ventilateur où jusq’a une certaine température tout est normal puis après passé un seuil ma led devrait s’allumer et le ventilo ( en face du capteur) devrait lui aussi s’activer pour “souffler” sur le capteur et ainsi baisser la température.

Or des que je téléverse mon code le ventilateur s’active immédiatement et sur le lcd j’ai des caractères bizarre qui apparaissent

donc si qqn pourrait m’aider ou m’aiguiller sur une solution, merci d’avance :confused:

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <LiquidCrystal.h>  
LiquidCrystal lcd(2,3,4,5,6,7);
#define DHTPIN 8 //PIN où est connecté le DHT
#define DHTTYPE DHT11 // DHT 11   
const int motorPin = 9;   // pin du moteur DC
const int led= 10;   //pin de la led 
  

DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
/* Initialize serial connection with the computer*/   
void setup()  
{   
  Serial.begin(9600);   // commencencer la serie avec le pc 
  lcd.begin(16,2); 
   dht.begin();// Initialize device.
 Serial.println("DHTxx Unified Sensor Example");
 // Print temperature sensor details.
 sensor_t sensor;
 dht.temperature().getSensor(&sensor); 
  pinMode(motorPin, OUTPUT);  
  pinMode(led, OUTPUT);  
}   
  
void loop() {   
  
    int temperature;
 lcd.setCursor(0, 1);
 // position curseur.
 delay(delayMS);
 // obtient la temperature et ecrit la valeur
 sensors_event_t event; 
 dht.temperature().getEvent(&event);
 if (isnan(event.temperature)) 
 {
 Serial.println("Error reading temperature!");
 }
 else
 {
 Serial.print("Temperature: ");
 Serial.print(event.temperature);
 Serial.println(" *C");
 lcd.print("temperature :");
 lcd.print(event.temperature);
  
  //controle led et moteur DC 
 if(temperature >= 1 && temperature <= 25  ){  
   digitalWrite(motorPin, LOW);   //led ON et ventilo OFF quand basse temperature 
 digitalWrite(led,HIGH);   
 }  
 else   
 {  
 digitalWrite(motorPin, HIGH);  //led OFF et ventilo ON quand haute temperature 
 digitalWrite(led, LOW);   
 }  
  delay(1000);// réecrit donnée   
}
}

Il y a des erreurs dans ton code. Concernant l'utilisation de la bibliothèque je ne peux rien dire car je ne la connais pas. Mais tu n'initialises pas la variable delayMS Il faut lui donner une valeur lorsque tu la déclares

int delayMS = 100;

Par exemple. De plus tu utilises une variable temperature dans un test sans lui avoir donné une valeur. Soit tu continues à utiliser event.temperature soit tu déclares avant ton if isnan

int temperature =event.temperature;

Et tu continues ton programme avec cette variable c'est certainement la meilleure solution. Il faut ôter alors la ligne

int temperature ;