diff --git a/src/main.cpp b/src/main.cpp index a97e3e3..f2bf86b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,6 +8,7 @@ #include "driver/pcnt.h" #include #include +//#include ///////////////////////////// /* DÉFINITIONS DU COMPTEUR */ @@ -18,7 +19,7 @@ #define PCNT_INPUT_CTRL_IO GPIO_NUM_2 // Control GPIO HIGH=count up, LOW=count down bool sem_compteur; // sémaphore pour le compteur int16_t count = 0; // variable de compteur -float vRotReel; // vitesse réelle mesurée du moteur +int vRotReel; // vitesse réelle mesurée du moteur ///////////////////////////////// /*NUMÉRO DE SÉRIE DE L'APPAREIL*/ @@ -39,9 +40,8 @@ RTC_DS3231 rtc; //déclaration de la rtc /* DÉFINITIONS DE LA CARTE SD */ //////////////////////////////// unsigned long freq_ecriture = 60000; // durée entre deux écritures sur la carte SD en micro secondes -int fichier = 0; -char horodatage[25]; //création du tableau pour contenir l'horodatage -char fileName[5]; +char horodatage[12]; //création du tableau pour contenir l'horodatage +char fileName[5]; //tableau pour le nom de fichier ////////////////////////////////// /* DÉFINITIONS DU DRIVER MOTEUR */ @@ -180,6 +180,7 @@ void writeFile(fs::FS &fs, const char * path, const char * message){ File file = fs.open(path, FILE_WRITE); if(!file){ Serial.println("Failed to open file for writing"); + errorCode(2); return; } if(file.print(message)){ @@ -257,14 +258,49 @@ void testFileIO(fs::FS &fs, const char * path){ file.close(); } -void sd_init(){ - writeFile(SD, fileName, horodatage ); +void sd_init() { + if(!SD.begin()){ + Serial.println("Card Mount Failed"); + errorCode(2); + return; + } + uint8_t cardType = SD.cardType(); + if(cardType == CARD_NONE){ + Serial.println("No SD card attached"); + errorCode(3); + return; + } + Serial.println("balise 01"); + DateTime now = rtc.now(); + fileName[1] = '/'; + fileName[2] = now.month(); + fileName[3] = now.day(); + fileName[4] = now.hour(); + fileName[5] = now.minute(); + char entete[64] = "fichier de data"; + writeFile(SD, fileName, entete); } void scribe_sd (){ + DateTime now = rtc.now(); + char buffer[64]; + snprintf(buffer, sizeof buffer, "%f", vRotReel); + horodatage[1] = now.year(); + horodatage[2] = '-'; + horodatage[3] = now.month(); + horodatage[4] = '-'; + horodatage[5] = now.day(); + horodatage[6] = '-'; + horodatage[7] = now.hour(); + horodatage[8] = ':'; + horodatage[9] = now.minute(); + horodatage[10] = ':'; + horodatage[11] = now.second(); + horodatage[12] = ' '; appendFile(SD, fileName, horodatage); + appendFile(SD, fileName, buffer); } //////////////////////////// @@ -293,8 +329,8 @@ void rtc_init() { Serial.println("RTC introuvable !"); // ligne de debug à commenter en prod delay(2000); errorCode(1); - ESP.restart(); - while (1); + // ESP.restart(); + //while (1); } if (rtc.lostPower()) { Serial.println("Veuillez régler l'heure et vérifier la pile du module RTC!"); // ligne de debug à commenter en prod @@ -302,7 +338,7 @@ void rtc_init() { } else { - DateTime now = rtc.now(); // mise à l'heure de l'esp, à partir de la rtc + DateTime now = rtc.now(); // Serial.println("mise à l'heure de l'esp, à partir de la rtc"); } @@ -380,7 +416,7 @@ void wifi_AP() { // ajouter menu vitesse et fréquence d'écriture /////////////// /* PAGE HTML */ /////////////// -// Peut-être extrnaliser la page html dans un fichier txt +// Peut-être externaliser la page html dans un fichier txt String html =" \ \ \ @@ -406,20 +442,17 @@ void vigie_Wifi () { } void setup() { - // serial just for feedback - Serial.begin(9600); - // RTC - rtc_init(); - // lecteur de carte SD - sd_init (); - // bouton wifi - pinMode(bouton_wifi, INPUT); - sem_wifi = false; // initialisation du sémaphore - // LED bouton wifi et erreurs - pinMode(LED, OUTPUT); - // moteur - start_moteur(); - // compteur de pulsations + Serial.begin(9600); // serial just for feedback + delay(3000); + Serial.println("balise 0"); + rtc_init(); // RTC + sd_init (); // initialisation de la carte SD + pinMode(bouton_wifi, INPUT); // bouton wifi + sem_wifi = false; // initialisation du sémaphore + pinMode(LED, OUTPUT); // LED bouton wifi et erreurs + start_moteur(); // moteur + + /* compteur de pulsations */ sem_compteur = false; // initialisation du sémaphore //pinMode(pulsePin,INPUT_PULLUP); start_compteur(); diff --git a/src/workspace.code-workspace b/src/workspace.code-workspace new file mode 100644 index 0000000..42c67f1 --- /dev/null +++ b/src/workspace.code-workspace @@ -0,0 +1,12 @@ +{ + "folders": [ + { + "path": "../../.." + }, + { + "name": "ifv_esp32", + "path": ".." + } + ], + "settings": {} +} \ No newline at end of file