Bonjour,
J'ai un projet de bac qui consiste à améliorer un odomètre et ma partie et d'enregistrer les 100 dernières données avec horodatage, le soucis c'est que j'arrive à enregistrer les données mais je ne sais pas comment les enregistrer avec la date et l'heure,
Mon programme pour avoir l'heure :
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
int second;
char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
void setup () {
while (!Serial); // for Leonardo/Micro/Zero
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (!rtc.isrunning()) {
Serial.println("RTC is NOT running!");
}
rtc.adjust(DateTime(__DATE__, __TIME__));
}
void loop () {
DateTime now = rtc.now();
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(" | ");
//Serial.print('0'); // a griser le 10 du mois
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print('0'); // a griser le 10eme mois de l'année
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(" | ");
if(now.hour() <= 9)
{
Serial.print("0");
Serial.print(now.hour(), DEC);
Serial.print(':');
}
if(now.hour() >= 10)
{
Serial.print(now.hour(), DEC);
Serial.print(':');
}
if(now.minute() <= 9)
{
Serial.print("0");
Serial.print(now.minute(), DEC);
Serial.print(':');
}
if(now.minute() >= 10)
{
Serial.print(now.minute(), DEC);
Serial.print(':');
}
if(now.second() <= 9)
{
Serial.print("0");
Serial.print(now.second(), DEC);
}
if(now.second() >= 10)
{
Serial.print(now.second(), DEC);
}
Serial.println();
delay(1000);
}
Mon programme pour enregistrer une donnée en .csv (il y a du .txt mais je le changerai par la suite) :
#include <SD.h>
#include <SPI.h>
File monFichier;
void setup() {
Serial.begin(9600);
Serial.println("Initialisation de la carte SD...");
if (!SD.begin(4)) {
Serial.println("L'initialisation de la carte SD a echoue !");
return;
}
Serial.println("L'initialisation de la carte SD a reussie !");
monFichier = SD.open("test.txt", FILE_WRITE); //on peut en ouvrir qu'un à la fois //
if (monFichier) { //si le fichier a bien été ouvert :
Serial.println("En train d ecrire dans le fichier test.txt");
monFichier.println("Abonnez vous à la chaine de PiewDiePie !");
monFichier.close();
Serial.println("Fait");
} else { // sinon :
Serial.println("Erreur lors de l'ouverture de test.txt");
}
}
void loop() {
}
PS : j'utilise un shield pour la carte sd (je n'ai pas la réf) et une horloge temps réel
Merci d'avance pour l'aide
edit : j'ai oublié de le préciser mais j'ai une carte Arduino Uno avec deux shield, un pour la carte sd (j'ai trouvé le lien) et un shield grove