Comprendre la notion des heures creuses et les heures pleines
Comprendre l’utilité des heures creuses
Savoir utiliser le module RTC pour la programmation des taches dans les heures creuses (ou pleines)
Comprendre le principe du tarification des HC et et HP
Savoir programmer un chronogramme avec Arduino
Savoir créer des actions temporisées avec Arduino et la planification des actions
Etc.
Importance
Certains appareils, comme les chauffe-eau électriques, ont une capacité et une isolation adaptées pour maintenir l’eau suffisamment chaude pendant plusieurs heures. De ce fait, faire monter la température à une heure où l’utilisateur n’en a pas un besoin immédiat n’est pas gênant et est même financièrement intéressant si cela s’effectue à un tarif attractif4. D’autre appareils gros consommateurs mais non prioritaires (lave-vaisselle, lave-linge, sèche-linge, radiateurs à inertie, etc.) peuvent, dans la plupart des cas, être programmés pour bénéficier du tarif « heures creuses », lire la suite…
void InitRTC(void) { if (! rtc.begin()) { Serial.println("Le module RTC non disponible"); while (1); // Attente RESET } else { Serial.println("Le module RTC est OK"); rtc.writeSqwPinMode(DS1307_SquareWave4kHz); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Date du PC
//rtc.adjust(DateTime(2020,1,24,10,10,10)); // Ajustement manuel // Ex: 10 Janvier 2020 à 10:00:00: // rtc.adjust(DateTime(2020, 1, 10, 10, 0, 0)); } }
Fonction de lecture du module RTC
void GetDateHeure(word *DateHeure) { // Lecture du module RTC DateTime now = rtc.now();
// Récupération de la date DateHeure[5]=now.year(); // Années DateHeure[4]=now.month(); // Mois DateHeure[3]=now.day(); // Jours
// Récupérration de l'heure DateHeure[2]=now.hour(); DateHeure[1]=now.minute(); DateHeure[0]=now.second(); }
Le programme complet
/* * Projet Réduction de la facture d'électricité avec Arduino * wwww. Electronique-Mixte.fr */
//Récupération des Heures & les Minutes M=DateHeure[1]; // Minutes 0-59 H=DateHeure[2]; // Heures 0-23
// Heures Creuses 1 - 12h-16h if(H>=12 && H<16) { // Allumage de la Machine à laver; digitalWrite(PinM1, HIGH); // Mise en marche du chauffe-eau; // Mise en marche lave vaisselles; // ...
} else // Heures Creuses 2 - 21:30-00:00 (inclus) if((H*60+M>=21*60+30) && (H>=0)) { // Allumage de la Machine à laver; digitalWrite(PinM1, HIGH); // Mise en marche chauffe-eau; // Mise en marche lave vaisselles; // ... } else // Heures Creuses 3 - 1:00-7:30 if((H>=1) && (H*60+M<=7*60+30)) { // Allumage Machine à laver; digitalWrite(PinM1, HIGH); // Mise en marche chauffe-eau; // Mise en marche lave vaisselles; // ... } else // Heures Pleines { // Arrêt de la Machine à laver; digitalWrite(PinM1, LOW); // Mise en arrêt du chauffe-eau; // Mise en arrêt de lave vaisselles; // ... } }
void GetDateHeure(word *DateHeure) { // Lecture du module RTC DateTime now = rtc.now();
// Récupération de la date DateHeure[5]=now.year(); // Années DateHeure[4]=now.month(); // Mois DateHeure[3]=now.day(); // Jours
// Récupérration de l'heure DateHeure[2]=now.hour(); DateHeure[1]=now.minute(); DateHeure[0]=now.second(); }
void InitRTC(void) { if (! rtc.begin()) { Serial.println("Le module RTC non disponible"); while (1); // Attente RESET } else { Serial.println("Le module RTC est OK"); rtc.writeSqwPinMode(DS1307_SquareWave4kHz); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // Date du PC
//rtc.adjust(DateTime(2020,1,24,10,10,10)); // Ajustement manuel // Ex: 10 Janvier 2020 à 10:00:00: // rtc.adjust(DateTime(2020, 1, 10, 10, 0, 0)); } }