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
*/
#include <Wire.h>
#include "RTClib.h"
#define PinM1 4
#define PinM2 5
#define PinM3 6
RTC_DS1307 rtc;
word DateHeure[6]={0,0,0,0,0};
word H,M;
/*
* JoursSem[0]: Secondes
* JoursSem[1]: Minutes
* JoursSem[2]: Heures
* JoursSem[3]: Jours
* JoursSem[4]: Mois
* JoursSem[5]: Années
*/
/*
Mois 1-12
Jours 1-31
Heures 0-23
Minutes 0-59
Secondes 0-59
*/
void setup ()
{
// Init port série (Test du Module RTC)
Serial.begin(2400);
// Init Module RTC (Ajustement de la date & l'heure)
InitRTC();
// Init des Sorties digitales
pinMode(PinM1, OUTPUT);
pinMode(PinM2, OUTPUT);
pinMode(PinM3, OUTPUT);
}
void loop ()
{
// Lecture du module RTC
GetDateHeure(DateHeure);
//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));
}
}
Découvrez notre Chaîne YouTube "Devenir Ingénieur" Obtenir le fichier PDF Fonctionnement Code Arduino Click to rate this post![Total: 1 Average: 5] Nous Soutenir 💌
Découvrez notre Chaîne YouTube "Devenir Ingénieur" Obtenir le fichier PDF Objectifs Savoir l’importance de l’automatisation de l’analyse technique Saloir les limitations de l’analyse technique Comprendre les notions de prévisions et prédictions Etc. Lire la suite Lire la suite…
Découvrez notre Chaîne YouTube "Devenir Ingénieur" Obtenir le fichier PDF Sommaire0.1 Objectifs du COURS0.2 Introduction0.3 Le BUS I2C0.3.1 Remarque0.4 Protocole0.4.1 Remarque0.5 En-tête0.6 Exemple avec l’esclave DS13070.6.1 Exemple de lecture du DS13070.6.2 Chronogramme complet de l’échange Lire la suite…
You have successfully subscribed to the newsletter
There was an error while trying to send your request. Please try again.
0 commentaire