• Post category:Fort
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mai 27, 2022
  • Temps de lecture :7 min de lecture

Enregistrer les valeurs d’un DHT22 sur une carte SD avec un Module SD Card DS1302 et Arduino

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

Version IDE :

Bibliothèque :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

// Inclure le code de la bibliothèque :
#include "DHT.h"
// La broche numérique 13 est reliée au capteur DHT. On lui donne le nom DHTPIN.
#define DHTPIN 2

// Défini le type de capteur utilisé
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
float h;
float t;

// Inclure le code de la bibliothèque :
#include <DS1302.h>
// Initialise le module DS1302 avec le numéro des pins connecté.
// DS1302 rtc(RST pin, DAT pin, SCLK pin);
DS1302 rtc(5, 6, 7);
Time T;

// Inclure le code de la bibliothèque :
#include <SPI.h>
#include <SD.h>
File myFile;
// Défini le non du fichier ou sera stocker les valeurs sur la carte SD
String Nomdufichier = "log";

void setup() {
Serial.begin(9600);
rtc.halt(false);
//Active = false Desactive = true la protection en ecriture pour mettre à jour heure et la date
rtc.writeProtect(false);
rtc.setDOW(FRIDAY); // Jour a FRIDAY
rtc.setTime(15, 14, 0); // Heure a 15:14:00 (format sur 24 heure)
rtc.setDate(02, 06, 2020); // Date au 28 juin 2020

Serial.println("SD test!");
if (!SD.begin(10)) {
Serial.println("Initialisation SD echouee!");
}
else {
Serial.println("initialisation SD effectuee.");
if ( SD.exists(Nomdufichier) == 0 )
{
Serial.print("Creation de " + Nomdufichier + ".txt.. ");
myFile = SD.open(Nomdufichier + ".txt", FILE_WRITE);
if (myFile) {
Serial.println("OK");
myFile.println("Humidity | Temperature | Heure ");
myFile.close();
}
else
Serial.println("error creating file.");
}
}
Serial.println("DHTxx test!");
dht.begin();
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Impossible de lire à partir du capteur DHT!");
}
else {
Serial.println("Lecture DHT ok.");
}
}

void loop() {

T = rtc.getTime();
h = dht.readHumidity();
t = dht.readTemperature();

char Horloge[16];
sprintf_P(Horloge, (PGM_P)F("%02d:%02d:%02d"), T.hour, T.min, T.sec);
char Humidity[16];
dtostrf(h, 0, 2, Humidity);
sprintf(Humidity, "%s""%%"" | " , Humidity);
char Temperature[16];
dtostrf(t, 0, 2, Temperature);
sprintf(Temperature, "%s""°C"" | ", Temperature);
Serial.print("Humidity: " );
Serial.print(Humidity);
Serial.print(" Temperature: " );
Serial.print(Temperature);
Serial.print(" Heure: ");
Serial.println(Horloge);

myFile = SD.open(Nomdufichier + ".txt", FILE_WRITE);
if (myFile) {
Serial.print("Sauvegarde sur " + Nomdufichier + ".txt.. ");
myFile.print(Humidity);
myFile.print(Temperature);
myFile.println(Horloge);
myFile.close();
Serial.println("Sauvegarde fini.");
}
else {
Serial.println("erreur d ouverture " + Nomdufichier + ".txt");
}
delay(500);
}

 

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire