/* USER CODE BEGIN WHILE */
while (1) // Boucle infinie
{
if (DHT22_Start()) { // Démarre la communication avec le DHT22
hum1 = DHT22_Read(); // Lit le premier octet de l'humidité
hum2 = DHT22_Read(); // Lit le second octet de l'humidité
temp1 = DHT22_Read(); // Lit le premier octet de la température
temp2 = DHT22_Read(); // Lit le second octet de la température
SUM = DHT22_Read(); // Lit la somme de contrôle envoyée par le capteur
CHECK = hum1 + hum2 + temp1 + temp2; // Calcule la somme de contrôle
if (CHECK == SUM) { // Vérifie si la somme de contrôle est correcte
if (temp1 > 127) { // Vérifie si le bit de signe est défini (température négative)
temp_Celsius = (float)temp2 / 10 * (-1); // Calcule la température en Celsius (négative)
} else {
temp_Celsius = (float)((temp1 << 8) | temp2) / 10; // Calcule la température en Celsius (positive)
}
temp_Fahrenheit = temp_Celsius * 9 / 5 + 32; // Convertit la température en Fahrenheit
Humidity = (float)((hum1 << 8) | hum2) / 10; // Calcule l'humidité
printf("temp_Celsius: %0.1f °C\n", temp_Celsius); // Affiche la température en Celsius
printf("temp_Fahrenheit: %0.1f °F\n", temp_Fahrenheit); // Affiche la température en Fahrenheit
printf("Humidity: %0.1f %%\n", Humidity); // Affiche l'humidité
}
}
HAL_Delay(1000); // Attend 1000 ms (1 seconde) avant la prochaine lecture
}
/* USER CODE END WHILE */