#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <SD.h>
#define brocheDeBranchementDHT 3 // La ligne de communication du DHT22
#define typeDeDHT DHT22
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
DHT dht(brocheDeBranchementDHT, typeDeDHT);
char t[32];
//vairables qui vont contenir la date et l'heure en temp réel
String time = "";
String date = "";
//variable qui va permettre de récupérer la date et l'heure
DateTime now;
//variable qui va récupérer la date et l'heure de la dernière activation de la pompe
DateTime dateTimeRefPompe;
//variable qui va récupérer la température de la sonde DHT22
float temperature = 0;
//variable qui va contenir l'etat de la pompe
int pompe = 0;
// the SPI CS pin
const int chipSelect = 10;
const int cardDetect = 9;
// the filename. Use CSV so the result can be opened in a spreadsheet
const char fileName[] = "info.lib";
// time of last reading, in ms:
long lastReading = 0;
//variables temporaires qui va contenir les indices de référence
float temperatureREF = 12;
float tempMinimumEntreLancement = 3600; // 1 heure
float tempActivitePompe = 300; // 5 minutes
//fonction qui va récupérer la date et l'heure actuelle et les mettre en format chaîne dans deux variables
void recupTimeDate(){
now = rtc.now();
time = String(now.hour()) + ":" + String(now.minute()) + ":" + String(now.second());
date = String(now.day()) + "/" + String(now.month()) + "/" + String(now.year());
}
//fonction qui renvoie la temperature de la sonde DHT22
void recupTemperature(){
temperature = dht.readTemperature();
}
//Fonction qui retourne 1 si on est en dessous ou égal à la température de référence et 0 dans le cas contraire
int analyseTemp(){
if(temperature <= temperatureREF){
return 1;
}else return 0;
}
void setup()
{
lcd.init(); //initialize the lcd
lcd.backlight(); //open the backlight
Wire.begin();
dht.begin();
SD.begin();
rtc.begin();
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
}
void loop()
{
recupTimeDate();
lcd.clear(); // clear display
lcd.setCursor(0, 0); // move cursor to (0, 0)
lcd.print("Time: " +time);
lcd.setCursor(0, 1); // move cursor to (0, 1)
lcd.print("Date: " + date);
delay(1000);
}