Projet tutore IUT ORSAY 1219
Dependencies: mbed SDFileSystem
Revision 7:6355a3c4da53, committed 2019-12-11
- Comitter:
- Gigi913
- Date:
- Wed Dec 11 08:48:47 2019 +0000
- Parent:
- 6:4e6ec83d3c83
- Commit message:
- Projet tutore IUT ORSAY S3 2019
Changed in this revision
diff -r 4e6ec83d3c83 -r 6355a3c4da53 SDFileSystem.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDFileSystem.lib Wed Dec 11 08:48:47 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/teams/OptoLab1/code/SDFileSystem/#03009bdc6d6f
diff -r 4e6ec83d3c83 -r 6355a3c4da53 main.cpp --- a/main.cpp Wed Sep 13 11:30:50 2017 +0000 +++ b/main.cpp Wed Dec 11 08:48:47 2019 +0000 @@ -1,12 +1,104 @@ #include "mbed.h" +#include "SDFileSystem.h" +#include "FATFileSystem.h" + +Serial pc(USBTX, USBRX,9600); +Serial pms(PA_9, PA_10,9600); // le capteur est en fait un port série, on configure le port +SDFileSystem sd (PA_12, PA_11, PA_1, PB_0,"sd"); // creation du port de la carte sd +DigitalOut led (LED1); // led pouvant être pilotée en cas de besoin pour vérifier le bon déroulement du code + + +int b1 = 0; // variables dans lesquelles vontt être stockées les données +int b2 = 0; +int b3 = 0; +int b4 = 0; +int b5 = 0; +int b6 = 0; +int b7 = 0; +int b8 = 0; +int b9 = 0; +int b10 = 0; +int b11 = 0; +int b12 = 0; -DigitalOut myled(LED1); +unsigned long b13; // variables utilisées dans la conversion du texte +char b14[1000]= {0}; + +FILE *fp = NULL; // pointeur permettant d'ouvrir, de créer et d'écrire dans des fichiers + +int g = 0; // variables qui sont utilisées pour l'incrémentation de certaines boucles +int a = 0; +int gg = 0; +int buff[32] = {0}; +char buffer[32]; +int b = 0; +char check[4] = {0}; +char h; +int ggg = 0; + +int main() +{ + + b13 = 0; + set_time(1559752200);// réglage de l'horloge interne, il s'agit du temps écoulé en secondes depuis le 1er Janvier 1970 à 00:00:00 + sprintf(b14,"/sd/test_%d.csv",b13); // on écrit le texte qui va nous permettre de changer le nom du fichier et on le stocke dans le buffer b14 + + fp = fopen(b14,"r"); // on lit le fichier qui s'appelle test0, si et on stocke la 1ère lettre lue dans la variable ggg, si le fichier n'existe pas alors il sera créer + ggg = fgetc(fp); // si le fichier est vide alors ggg = 0 + fclose(fp); // on ferme le fichier + + while (ggg == 104) { // si il y a des données dans le fichier alors le 1er caractère est un h, ce qui équivaut à 104 -int main() { + b13++; // on incrémente la valeur de b13 pour changer le numéro du fichier + sprintf(b14,"/sd/test_%d.csv",b13); + fp = fopen(b14,"r"); + ggg = fgetc(fp); + fclose(fp); + } + + if(ggg != 104) { // si on le lit pas le h alors on écrit dans ce fichier et on enregistre nos données + sprintf(b14,"/sd/test_%d.csv",b13); + fp = fopen(b14,"w"); + fprintf(fp,"heure;PM1.0(microg/m3);PM2.5(microg/m3);PM10(microg/m3);PM1.0 EA(microg/m3);PM2.5 EA(microg/m3);PM10 EA(microg/m3);nb part >0.3microm;nb part >0.5microm;nb part >1.0microm;nb part >2.5microm;nb part >5.0microm;nb part >10microm"); + fclose(fp); + } else {} + while(1) { - myled = 1; // LED is ON - wait(0.2); // 200 ms - myled = 0; // LED is OFF - wait(1.0); // 1 sec + + time_t seconds = time(NULL); + strftime(buffer, 32, "%I:%M:%S %p", localtime(&seconds)); + gg = 0; + led = 0; + Serial pc(USBTX, USBRX,9600); + Serial pms(PA_9, PA_10,9600); + + while(gg <= 31) { // on range les octets dans les variables du tableau + if (pms.readable() == 1) { + buff[gg] = pms.getc(); // on lit des trames de données de 32 octets + gg++; + b1 = buff[4]<<8|buff[5]; // seuls les octets allant de 4 à 27 possèdes les données dont nous avons besoin + b2 = buff[6]<<8|buff[7]; + b3 = buff[8]<<8|buff[9]; + b4 = buff[10]<<8|buff[11]; + b5 = buff[12]<<8|buff[13]; + b6 = buff[14]<<8|buff[15]; + b7 = buff[16]<<8|buff[17]; + b8 = buff[18]<<8|buff[19]; + b9 = buff[20]<<8|buff[21]; + b10 = buff[22]<<8|buff[23]; + b11 = buff[24]<<8|buff[25]; + b12 = buff[26]<<8|buff[27]; + } else {} + } + + if (buff[0] == 0x42 and buff[1] == 0x4D and buff[2] == 0x00 and buff[3] == 0x1C) { // les 1er octets nous permettent de vérifier la conformité des données car il nous donne des informations sur la longueur de la trame en plus de des caratères de début de trame + + pc.printf("\n\rTime as a custom formatted string = %s", buffer); + fp = fopen(b14, "a"); // après vérification on écrit les données dans le fichier.csv et on utilise les points virgules en tant que séparateurs + fprintf(fp,"\r%s;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i;%i",buffer,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12); + fclose(fp); + pc.printf("\n\r,success !"); + led = 1; // on allume quand l'enregistrement a été effectué avec succès + } else {} } }
diff -r 4e6ec83d3c83 -r 6355a3c4da53 mbed.bld --- a/mbed.bld Wed Sep 13 11:30:50 2017 +0000 +++ b/mbed.bld Wed Dec 11 08:48:47 2019 +0000 @@ -1,1 +1,1 @@ -https://mbed.org/users/mbed_official/code/mbed/builds/a330f0fddbec \ No newline at end of file +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file