Software of my humidity rate controller internship project

Dependencies:   DS1307 TextLCD mbed

Fork of HRController by Théo Rostaing

Revision:
3:e800a8237746
Parent:
2:37cf942d5ee6
Child:
5:438327c39586
--- a/main.cpp	Tue Jun 19 07:57:28 2018 +0000
+++ b/main.cpp	Fri Jun 29 08:49:58 2018 +0000
@@ -1,16 +1,16 @@
 #include "mbed.h"
 #include "TextLCD.h"
+#include "ds1307.h"
 
 Serial pc(USBTX, USBRX); // tx, rx
 TextLCD lcd(PA_10,PB_3,PB_5,PB_4,PB_10,PA_8); // rs, e, d4-d7
+DS1307 my1307(D14,D15);
 AnalogIn capteur(PA_5);
 DigitalIn bouton(USER_BUTTON);
 DigitalOut myled(LED1);
-DigitalOut alarme(D9);
+DigitalOut alarme(PB_8);
 DigitalOut ledverte(PB_9);
 
-I2C i2c(PC_1, PC_0);
-const int DS3231_ADDR = 0xd0;
 
 FILE *fp;
 char a='%';
@@ -25,30 +25,14 @@
 
 void ecritureSD(double valhum)
 {
-    fp =fopen ("/sd/test.txt","a");
+    fp =fopen ("/sd/sauvegardes.txt","a");
     if (fp == NULL) { // Si on n'arrive pas a ouvrir le fichier dans la carte SD
         lcd.cls();
         lcd.printf("Erreur carte SD"); // On affiche sur l'ecran LCD qu'il y a une erreur
-    } else { // code d'après : https://os.mbed.com/users/zhouer/code/NUCLEO-DS3231/file/7e3176a65913/main.cpp/
-//       int ret; Car on en a pas besoin
-//       int sec, Car on en a pas besoin
-        int min, hour, day, date, month, year;
-        char data_write[2];
-        char data_read[8];
-        data_write[0] = 0;
-        i2c.write(DS3231_ADDR, data_write, 1, 0);
-
-//        ret = i2c.read(DS3231_ADDR, data_read, 7, 0);
-//        sec = (data_read[0] >> 4) * 10 + (data_read[0] & 0x0f);
-        min = (data_read[1] >> 4) * 10 + (data_read[1] & 0x0f);
-        hour = (data_read[2] >> 5 & 0x01) * 20 + (data_read[2] >> 4 & 0x01) * 10 + (data_read[2] & 0x0f);
-
-        day = data_read[3] & 0x07;
-
-        date = (data_read[4] >> 4) * 10 + (data_read[4] & 0x0f);
-        month = (data_read[5] >> 4 & 0x01) * 10 + (data_read[5] & 0x0f);
-        year = 2000 + (data_read[6] >> 4) * 10 + (data_read[6] & 0x0f);
-        fprintf(fp,"%d-%02d-%02d %d %02d:%02d %.2f\n\r", year, month, date, day, hour, min, valhum); // Date = lundi, mardi, mercredi,... ?
+    } else {    
+        int sec,min, hour, day, date, month, year;
+        my1307.gettime( &sec, &min, &hour, &day, &date, &month, &year);
+        fprintf(fp,"%d %d-%d-%d %d:%d %.2f\n\r", date, day, month, year, hour, min, valhum); // Date = lundi (1) , mardi (2) , mercredi (3),...
         fclose(fp);
     }
 }
@@ -56,7 +40,7 @@
 void affichageini (void)
 {
     //On affiche sur le LCD le message lié au taux supérieur à 5%Hr
-    lcd.cls();            //On récupère le nombre des dizaines
+    lcd.cls(); //On récupère le nombre des dizaines
     lcd.printf("INITIALISATION"); //On récupère le nombre des unités
     lcd.locate(0,1);
     lcd.printf("DU SYSTEME .");
@@ -90,7 +74,7 @@
 void affichageinf (double valhum)
 {
     //On affiche sur LCD le message d'initialisation
-    lcd.cls();           //utile pour signlé qu'un reset manuel (boutton) a été effectué
+    lcd.cls(); //utile pour signlé qu'un reset manuel (boutton) a été effectué
     lcd.locate(0,0);
     lcd.printf("HUMIDITE MESUREE");
     lcd.locate(0,1);
@@ -115,7 +99,7 @@
         affichageini(); // On affiche sur l'ecran LCD le message d'initialisation
 
         while(1) { // Boucle infini
-            double valcapteur = capteur.read()*3.3f;  //Récupération de la tension d'entrée du capteur,
+            double valcapteur = capteur.read()*3.3f; // Récupération de la tension d'entrée du capteur,
 // qui est multipliée par la tension d'alimentation. Car la tension relevée est un pourcentage de
 // la tension d'alimentation (vout est comprise entre 0 et 1).
             double valhum = (valcapteur-3.3*0.1515)/(0.00636*3.3); // Conversion de la tension en taux d'humidité