Go Down

Topic: error temp datalogger, saving on SD card (Read 74 times) previous topic - next topic

juanedo

Jun 16, 2019, 02:01 am Last Edit: Jun 16, 2019, 02:34 am by juanedo
hello, I have a problem, I'm making a datalogger for the temperature, however, when saving the data in the SD these are not saved, I create a file but without containing data in it.

i need help please!


Code: [Select]


#include <OneWire.h>
#include <virtuabotixRTC.h>      // Incluye la librería reloj
#include <Wire.h>                //incluye la libreria comunicacion 1 wire
#include <DallasTemperature.h> // incluye libreria sensor temperatura
#include <SD.h>
#include <SPI.h>
#define PIN 3 //pin digital conectado a S ky001


virtuabotixRTC myRTC(5, 6, 7);   // Define los pines de CLK, DAT y RST en ese
 //orden y nombra al RTC "myRTC" para llamarlo de esa manera luego


File archivo;
OneWire ourWire (PIN);
DallasTemperature sensors (&ourWire);

int datos[7];
float temp[1];
int min_ant;
int min_new;

void setup() {
Serial.begin(9600);
Serial.println("iniciando.......");
Serial.println("Fecha,Hora,Temperatura");
SD.begin(4);//inicia sd
delay(2000);
archivo = SD.open("datalog.txt",FILE_WRITE);
delay(2000);
archivo.println("Fecha,Hora,Temperatura");
delay(2000);
archivo.close();
min_ant=0;
}

void loop() {
myRTC.updateTime();
min_new=myRTC.minutes;

 if(min_ant!=min_new){
  fecha_hora();       //llamado funcion fecha_hora, llena el vector
  temperatura();      //llamado funcion temp, llena el vector
  guarda_datos();     //guarda datos
  imprime_serie();    //muestra por puerto serie el array
  min_ant=min_new;
  archivo.flush();

 }



}

  void fecha_hora(){
    myRTC.updateTime();
    datos[0]=myRTC.dayofmonth;
    datos[1]=myRTC.month;
    datos[2]=myRTC.year;
    datos[3]=myRTC.hours;
    datos[4]=myRTC.minutes;
    datos[5]=myRTC.seconds;
    }
  void temperatura(){
    sensors.requestTemperatures ();
    temp[0]=sensors.getTempCByIndex(0);
    }
  void imprime_serie(){
    Serial.print(datos[0]);
    Serial.print("/");
    Serial.print(datos[1]);
    Serial.print("/");
    Serial.print(datos[2]);
    Serial.print(",");
    Serial.print(datos[3]);
    Serial.print(":");
    Serial.print(datos[4]);
    Serial.print(":");
    Serial.print(datos[5]);
    Serial.print(",");
    Serial.println(temp[0]);
    }
  void guarda_datos(){
    SD.begin(4);//inicia sd
    delay(2000);
    archivo = SD.open("datalog.txt",FILE_WRITE);
    delay(2000);
    archivo.print(datos[0]);
    archivo.print("/");
    archivo.print(datos[1]);
    archivo.print("/");
    archivo.print(datos[2]);
    archivo.print(",");
    archivo.print(datos[3]);
    archivo.print(":");
    archivo.print(datos[4]);
    archivo.print(":");
    archivo.print(datos[5]);
    archivo.print(",");
    archivo.println(temp[0]);
    delay(2000);
    archivo.close();
   
    delay(5000);
  }
   







groundFungus

Read the how to use the forum-please read stickies (in bold at the top of each page) for advice on what information that we need to be able to help you.

Go Up