|
#include <Arduino.h>
|
|
#include "FS.h"
|
|
#include "SD.h"
|
|
#include "SPI.h"
|
|
#include "DHTesp.h"
|
|
#include "RTClib.h"
|
|
#include <Wire.h>
|
|
#define DHTpin 15
|
|
RTC_DS3231 rtc;
|
|
DHTesp dht;
|
|
|
|
const int broche_CS = 5;
|
|
unsigned long tempsPrecedent;
|
|
|
|
void appendFile(fs::FS &fs, const char * path, const char * message) {
|
|
Serial.printf("Ecriture dans le fichier: %s\n", path);
|
|
|
|
File file = fs.open(path, FILE_APPEND);
|
|
if (!file) {
|
|
Serial.println("Echec d'ouverture du fichier");
|
|
return;
|
|
}
|
|
if (file.print(message)) {
|
|
Serial.println("Fichier modifié avec succes.");
|
|
} else {
|
|
Serial.println("Echec de la modification du fichier.");
|
|
}
|
|
file.close();
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
dht.setup(DHTpin, DHTesp::DHT11);
|
|
if (!SD.begin(broche_CS)) {
|
|
Serial.println("Carte SD introuvable");
|
|
return;
|
|
}
|
|
else{
|
|
Serial.println("Carte SD détectée");
|
|
}
|
|
if (! rtc.begin()) {
|
|
Serial.println("RTC introuvable !");
|
|
while (1);
|
|
}
|
|
if (rtc.lostPower()) {
|
|
Serial.println("Veuillez regler l'heure sur le module RTC!");
|
|
|
|
// Decommenter les lignes ci-dessous pour régler la date et l'heure.
|
|
// La ligne ci-dessous regle la date et l'heure du momment de la compilation
|
|
//rtc.adjust(DateTime(2020, 07, 20, 13, 24,00));
|
|
|
|
// La ligne ci-dessous regle la date et l'heure avec des valeurs explicites
|
|
// Par exemplepour le 27 janvier 2017 à 12:56 :
|
|
//rtc.adjust(DateTime(2020, 20, 7, 16, 06, 30));
|
|
}
|
|
tempsPrecedent = millis();
|
|
}
|
|
|
|
void loop() {
|
|
DateTime now = rtc.now();
|
|
|
|
float humidity = dht.getHumidity();
|
|
float temperature = dht.getTemperature();
|
|
int jour = now.day();
|
|
int mois = now.month();
|
|
int annee = now.year();
|
|
int heure = now.hour();
|
|
int minute = now.minute();
|
|
char message[5000];
|
|
|
|
if ((millis() - tempsPrecedent) >= 5000) {
|
|
sprintf(message,"%d, %d, %d , %d, %d, %f, %f \n" ,annee, mois, jour, heure, minute, temperature, humidity);
|
|
appendFile(SD, "/Date_Heure_Temperature_Humidite.txt", message);
|
|
tempsPrecedent = millis();
|
|
}
|
|
}
|