Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <DS1307.h>
- #include <SHT1x.h>
- #define updata_flag 0 // 1 : Mise à jour du temps ; 0 : Affiche l'heure
- // A modifier pour mettre "à l'heure"
- #define TIME_YR 20 // année sans "20" de 2000
- #define TIME_MTH 8 // numéro du mois de l'année
- #define TIME_DATE 13 // jour du mois
- #define TIME_DOW 4 // jour de la semaine (lundi : 1; mardi : 2; mercredi : 3; etc)
- #define TIME_HR 16 // heures
- #define TIME_MIN 10 // minutes
- #define TIME_SEC 0 // seconde
- #define dataPin 10 // pin digital de connexion data Sensor
- #define clockPin 11 // pin digital de connexion SCK Sensor
- SHT1x sht15(dataPin, clockPin); // instanciation de l'occurence sht15() de l'objet SHT1x
- char* jour[] = {"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"}; // nom du jour de la semaine
- char* mois[] = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"}; // nom du mois
- int rtc[7]; // tableau qui contiendra les valeurs du temps présent
- unsigned long cycle; // repère temporel pour l'affichage des secondes ("refresh" ou nouveau Serial.print())
- unsigned long cycleSensor; // repère temporel pour la lecture des senseur de température et humidité
- unsigned long MargeCycleSensor = 30000; // delais entre chaque lecture des senseurs
- float temp_c; // température en celsius
- float temp_f; // température en Fareneit
- float humidity; // taux d'humidité de l'air
- void showMeteo () { // fonction qui affiche la ltempérature et l'humidité
- Serial.print("Température : ");
- Serial.print(temp_c, 1);
- Serial.println("°C");
- Serial.print("Température : ");
- Serial.print(temp_f, 1);
- Serial.println("°F");
- Serial.print("Humidité : ");
- Serial.print(humidity);
- Serial.println("%");
- Serial.println("**********");
- }
- void showtime() { // fonction qui affiche l'heure
- RTC.get(rtc, true);
- {
- Serial.print( jour[rtc[3] - 1]); // jour de la semaine
- Serial.print(" "); // "espace"
- Serial.print( rtc[4]); // date mois année : numéro du jour
- if (rtc[4] < 2) {
- Serial.print("er"); // on rajouter "er" apres le numero du jour si on est le 1er du mois
- }
- Serial.print(" "); // "espace"
- Serial.print( mois[rtc[5] - 1]); // mois de l'année
- Serial.print(" "); // "espace"
- Serial.println( rtc[6]); // année avec "20" de 2000
- Serial.print( rtc[2]); // heures minutes secondes
- Serial.print(":"); // ":"
- if (rtc[1] < 10) {
- Serial.print("0"); // on rajoute un zéro si les minutes sont inférieures à 10
- }
- Serial.print( rtc[1]); // valeur des minutes
- Serial.print(":"); // ":"
- if (rtc[0] < 10) {
- Serial.print("0"); // on rajoute un zéro si les secondes sont inférieures à 10
- }
- Serial.println( rtc[0]); // valeur des secondes
- }
- }
- void setup() {
- Serial.begin(9600); // initialisation Serial
- Wire.begin(); // lancement connexion simplifiée
- if (updata_flag){ // si updata_flag 1
- Serial.println(" Ancienne heure : ");
- showtime();
- RTC.stop();
- RTC.set(DS1307_SEC, TIME_SEC); // Mise a jour du Temps
- RTC.set(DS1307_MIN, TIME_MIN);
- RTC.set(DS1307_HR, TIME_HR);
- RTC.set(DS1307_DOW, TIME_DOW);
- RTC.set(DS1307_DATE, TIME_DATE);
- RTC.set(DS1307_MTH, TIME_MTH);
- RTC.set(DS1307_YR, TIME_YR);
- RTC.start();
- Serial.println(" Heure mise à jour : ");
- showtime();
- } else {
- cycle = millis(); // marquage temporel pour les secondes
- cycleSensor = millis() + MargeCycleSensor; // marquage plus marge pour les senseurs (1 seule fois)
- }
- }
- void loop() {
- if (millis() - cycleSensor >= MargeCycleSensor) { // toutes les 30s
- temp_c = sht15.readTemperatureC(); // lecture température celsius
- temp_f = sht15.readTemperatureF(); // lecture température Farenheit
- humidity = sht15.readHumidity(); // lecture taux d'humidité
- cycleSensor = millis(); // réinitialisation du repère temporel des senseurs
- }
- if (millis() - cycle >= 500) { // toutes les secondes
- if (updata_flag == 0) { // si updata_flag 0
- showtime(); // affiche l'heure
- showMeteo(); // affiche la météo
- }
- cycle = millis(); // réinitialisation du repère temporel de l'heure (seconde)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement