Introduction Dans ce projet, on va enregistrer les données de température et d’humidité à l’aide d’un capteur DHT22, puis à les stocker sur une carte micro-SD.Dans cette application, la température et le taux d’humidité de l’air seront mesurés à intervalles réguliers. Chaque relevé sera sauvegardé progressivement dans un fichier présent sur la carte SD. Pour réaliser ce dispositif, on utilisera le capteur de température et d’hygrométrie DHT22, connecté à la broche 5 de la carte Arduino. Schéma du circuit Programme du circuit #include <SD.h> #include <DHT.h> const int sdCardPinChipSelect = 10; const char* nomDuFichier = "donnees.csv"; File monFichier; const int brocheDeBranchementDHT = 8; const int typeDeDHT = DHT22; DHT dht(brocheDeBranchementDHT, typeDeDHT); const long delaiIntervaleDeMesures = 2000; // Intervalle de mesure/enregistrement (exprimé en millis secondes) void setup() { Serial.begin(9600); Serial.println(F("Programme DATALOGGER (enregistrement t°/hygro à partir d'un DHT22, et stockage des infos sur carte SD")); // Vérification : est-ce que la carte SD est bien accessible depuis l'Arduino ? Serial.println(F("Initialisation de la carte SD")); if (!SD.begin(sdCardPinChipSelect)) { Serial.println(F("Echec de l'initialisation du lecteur de carte SD")); while (true); } Serial.println(F(" reussie !")); dht.begin(); } void loop() { // Lecture des données float tauxHumidite = dht.readHumidity(); float temperature = dht.readTemperature(); // Vérification si données bien reçues if (isnan(tauxHumidite) || isnan(temperature)) { Serial.println(F("Aucune valeur retournée par le DHT22. Est-il bien branché ?")); delay(2000); return; // Si aucune valeur n'a été reçue par l'Arduino, on attend 2 secondes, puis on redémarre la fonction loop() } // Mise en forme de ces données (un seul chiffre après la virgule) String tauxHumiditeArrondi = String(tauxHumidite, 1); String temperatureArrondie = String(temperature, 1); tauxHumiditeArrondi.replace(".", ","); temperatureArrondie.replace(".", ","); // Affichage des valeurs sur le moniteur série de l'IDE Arduino Serial.print("Humidite = "); Serial.print(tauxHumiditeArrondi); Serial.print(" % - "); Serial.print("Temperature = "); Serial.print(temperatureArrondie); Serial.println(" degre C"); // Enregistrement de ces données sur la carte SD monFichier = SD.open(nomDuFichier, FILE_WRITE); if (monFichier) { monFichier.print(tauxHumiditeArrondi); monFichier.print(";"); monFichier.println(temperatureArrondie); monFichier.close(); Serial.println(F("Enregistrement reussi en carte SD")); } else { Serial.println(F("Erreur lors de la tentative d'ouverture du fichier en écriture, sur la carte SD")); } // Temporisation de X secondes (2 sec min, pour que le DHT22 ait le temps de faire ses mesures) Serial.println(); delay(delaiIntervaleDeMesures); } Une fois l’ensemble des mesures collectées, il sera possible, à la fin de l’expérience, de retrouver toutes les valeurs enregistrées dans un fichier stocké sur la carte SD. Ce fichier, nommé « DONNEES.CSV », regroupe l’intégralité des relevés effectués.Les données y sont organisées selon le format suivant : taux d’humidité ; température, séparées par un point-virgule, avec un retour à la ligne pour chaque nouvelle mesure.Vous trouverez ci-dessous un extrait du fichier présent sur la carte SD après l’exécution du programme. À noter que ce fichier ne contient aucun texte descriptif, mais uniquement des valeurs numériques arrondies à une décimale et séparées par des points-virgules.