#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <Wire.h>
#include <RTClib.h>
#include <DHT.h>
// Définissez le nombre d'appareils que nous avons dans la chaîne et l'interface matérielle
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 13
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN_M1 10
#define CS_PIN_M2 9
#define CS_PIN_M3 8
// Connexion SPI matérielle
MD_Parola matrice_1 = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN_M1, MAX_DEVICES);
MD_Parola matrice_2 = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN_M2, MAX_DEVICES);
MD_Parola matrice_3 = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN_M3, MAX_DEVICES);
int dhtExtPin = 2;
int dhtIntPin = 3;
DHT capteurDHT_EXT(dhtExtPin, DHT22); // capteurDHT(pin, Type)
DHT capteurDHT_INT(dhtIntPin, DHT22); // capteurDHT(pin, Type)
// Variables à virgule flottante.
float Hum_EXT, Cel_EXT, Far_EXT, Hum_INT, Cel_INT, Far_INT;
char tC[6], tF[6], H[6], buffer[20], buffer2[20]; // mémoires tampons (Buffers)
RTC_DS1307 rtc; // Module RTC (Real Time Clock)
// Variables globales
char Jour[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
char Mois[13][15] = {"", "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre"};
char Horloge[9], LaDate[20], LeJour[12];
char string1[4], string2[4], string3[4], string4[8];
char Heures[4], Minutes[4], Secondes[4];
void setup(void)
{
matrice_1.begin(2);
matrice_2.begin();
matrice_3.begin();
rtc.begin();
// capteurDHT_EXT.begin();
// capteurDHT_INT.begin();
// Définir les limites des 2 zones
matrice_1.setZone(0, 0, 5);
matrice_1.displayZoneText(0, Horloge, PA_LEFT, 5, 0, PA_PRINT, PA_NO_EFFECT);
matrice_1.setZone(1, 6, 12);
matrice_1.displayZoneText(1, LeJour, PA_CENTER, 5, 0, PA_PRINT, PA_NO_EFFECT);
}
void loop(void) {
//DateTime now = rtc.now();
/*
Hum_EXT = capteurDHT_EXT.readHumidity(); // Pourcentage de l'humidité extérieur.
Cel_EXT = capteurDHT_EXT.readTemperature(); // Température en degré Celcius extérieur
Far_EXT = capteurDHT_EXT.readTemperature(true);// Température en degré Fahrenheit extérieur
Hum_INT = capteurDHT_INT.readHumidity(); // Pourcentage de l'humidité extérieur.
Cel_INT = capteurDHT_INT.readTemperature(); // Température en degré Celcius extérieur
Far_INT = capteurDHT_INT.readTemperature(true);// Température en degré Fahrenheit extérieur
*/
DateTime now = rtc.now();
sprintf(LaDate, "Le %2d %s %d", now.day(), Mois[now.month()], now.year());
matrice_2.setTextAlignment(PA_CENTER); //alignement au centre de la matrice 2
matrice_2.print(LaDate); // affiche la date au complet
// Affiche le jour de la semaine et l'heure actuelle
sprintf(LeJour, "%9s", Jour[now.dayOfTheWeek()]);
sprintf(Horloge, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
// défini les 2 zones de la matrice 1
if (matrice_1.displayAnimate()) for (uint8_t i = 0; i < 2; i++)
if (matrice_1.getZoneStatus(i)) matrice_1.displayReset(i);
}
/*
void Date_Heure() { // Affiche le jour de la semaine, l'heure et la date au complet
DateTime now = rtc.now();
sprintf(LaDate, "Le %2d %s %d", now.day(), Mois[now.month()], now.year());
matrice_2.setTextAlignment(PA_CENTER); //alignement au centre de la matrice 2
matrice_2.print(LaDate); // affiche la date au complet
// Affiche le jour de la semaine et l'heure actuelle
sprintf(LeJour, "%9s", Jour[now.dayOfTheWeek()]);
sprintf(Horloge, " %02d:%02d:%02d ", now.hour(), now.minute(), now.second());
// défini les 2 zones de la matrice 1
if (matrice_1.displayAnimate()) for (uint8_t i = 0; i < 2; i++)
if (matrice_1.getZoneStatus(i)) matrice_1.displayReset(i);
}*/
GND
+5V
TEMP. EXT.
TEMP. INT.