// Initialisation
#include <rgb_lcd.h>
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 RTC;
rgb_lcd lcd;
void setup() {
Wire.begin();
RTC.begin();
lcd.begin(16, 2);
// Mise à l'heure DS 3231 :
//Supprimer les // devant l'instruction RTC.adjust.
//Téléverser le programme, l'instruction RTC.adjust
//mettra le DS3231 à l'heure système du PC.
//Remettez les // devant l'instruction RTC.adjust.
//Téléverser à nouveau le programme, ceci pour éviter que
//la carte se bloque lorsqu'elle n'est plus reliée au PC.
//RTC.adjust(DateTime(__DATE__, __TIME__));
pinMode(0, OUTPUT);
digitalWrite (0, LOW);
}
void loop() {
DateTime now = RTC.now();
// Afficher l'heure sur la premiêre ligne du LCD
lcd.setCursor(0, 0);
lcd.print("Il est: ");
if (now.hour() < 10) {
lcd.print("0");
}
lcd.print(now.hour());
lcd.print(":");
if (now.minute() < 10) {
lcd.print("0");
}
lcd.print(now.minute());
// Afficher activation sur la deuxième ligne du LCD
lcd.setCursor(0,1);
lcd.print("Light");
// Rechercher si heure actuelle est dans dans la plage horaire et afficher l'état des lumières
if (now.hour() == 12 && now.minute() == 26) { // heures et minutes extinction lumières
digitalWrite (0, LOW);
}
if (now.hour() == 12 && now.minute() == 25) { // heures et minutes allumage lumières
digitalWrite (0, HIGH);
}
lcd.setCursor(6,1);
if (digitalRead(0)== LOW) {
lcd.print("= OFF");
lcd.setRGB(0,0,0);
}
else {
lcd.print("= ON");
lcd.setRGB(255,0,0);
}
delay(1000);
lcd.clear();
}