Anuncio TOP B1 Mensaje

Colapsar

Anuncio TOP B4 Mensaje (Mobile)

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.

Arduino Yun

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • #16
    No funciona, sigue sin crearme el archivo .txt. No lo entiendo, si sigo todas las instrucciones y conecto todo bien, porque no va?

    Comentario


    • #17
      ¿Eliminaste toda la parte de comunicación serial, sin que quede ninguna sentencia?

      Repasando el código, ¿Has comprobado que la ruta de la tarjeta sd sea "/mnt/sd/"?
      Editado por última vez por darioFdez; https://www.infoplc.net/foro/member/47827-dariofdez en 05 may 14, 12:07:44.

      Comentario


      • #18
        Como se mira eso?

        Comentario


        • #19
          me podias decir que es lo que tengo que quitar de este codigo

          #include <FileIO.h>

          void setup() {
          // Initialize the Bridge and the Serial
          Bridge.begin();
          Serial.begin(9600);
          FileSystem.begin();

          while (!Serial); // wait for Serial port to connect.
          Serial.println("Filesystem datalogger\n");
          }


          void loop () {


          // make a string that start with a timestamp for assembling the data to log:
          String dataString;
          dataString += getTimeStamp();
          dataString += " = ";

          // read three sensors and append to the string:
          for (int analogPin = 0; analogPin < 3; analogPin++) {
          int sensor = analogRead(analogPin);
          dataString += String(sensor);
          if (analogPin < 2) {
          dataString += ","; // separate the values with a comma
          }
          }

          // open the file. note that only one file can be open at a time,
          // so you have to close this one before opening another.
          // The FileSystem card is mounted at the following "/mnt/FileSystema1"
          File dataFile = FileSystem.open("/mnt/sd/www/datalog.txt", FILE_APPEND);

          // if the file is available, write to it:
          // if the file isn't open, pop up an error:


          delay(2000);

          }

          // This function return a string with the time stamp
          String getTimeStamp() {
          String result;
          Process time;
          // date is a command line utility to get the date and the time
          // in different formats depending on the additional parameter
          time.begin("date");
          time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy
          // T for the time hh:mm:ss
          time.run(); // run the command

          // read the output of the command
          while (time.available() > 0) {
          char c = time.read();
          if (c != '\n')
          result += c;
          }

          return result;
          }

          Comentario


          • #20
            (Cojo el codigo original porque en el que has puesto te faltan cosas de la escritura en el fichero)
            Para comprobar que no se quede esperando por la comunicación serial, te pongo como comentarios lo que son:

            #include <FileIO.h>

            void setup() {
            // Initialize the Bridge and the Serial
            Bridge.begin();
            //Serial.begin(9600);
            FileSystem.begin();

            //while (!Serial); // wait for Serial port to connect.
            //Serial.println("Filesystem datalogger\n");
            }


            void loop () {
            // make a string that start with a timestamp for assembling the data to log:
            String dataString;
            dataString += getTimeStamp();
            dataString += " = ";

            // read three sensors and append to the string:
            for (int analogPin = 0; analogPin < 3; analogPin++) {
            int sensor = analogRead(analogPin);
            dataString += String(sensor);
            if (analogPin < 2) {
            dataString += ","; // separate the values with a comma
            }
            }

            // open the file. note that only one file can be open at a time,
            // so you have to close this one before opening another.
            // The FileSystem card is mounted at the following "/mnt/FileSystema1"
            File dataFile = FileSystem.open("/mnt/sd/datalog.txt", FILE_APPEND);

            // if the file is available, write to it:
            if (dataFile) {
            dataFile.println(dataString);
            dataFile.close();
            // print to the serial port too:
            //Serial.println(dataString);
            }
            // if the file isn't open, pop up an error:
            //else {
            //Serial.println("error opening datalog.txt");
            //}

            delay(15000);

            }

            // This function return a string with the time stamp
            String getTimeStamp() {
            String result;
            Process time;
            // date is a command line utility to get the date and the time
            // in different formats depending on the additional parameter
            time.begin("date");
            time.addParameter("+%D-%T"); // parameters: D for the complete date mm/dd/yy
            // T for the time hh:mm:ss
            time.run(); // run the command

            // read the output of the command
            while (time.available() > 0) {
            char c = time.read();
            if (c != '\n')
            result += c;
            }

            return result;
            }
            Editado por última vez por darioFdez; https://www.infoplc.net/foro/member/47827-dariofdez en 05 may 14, 13:01:48.

            Comentario


            • #21
              Para comprobar lo de si la tarjeta sd se encuentra en esa ruta, ¿al arduino yun te puedes conectar por medio de una terminal?

              Comentario


              • #22
                Ya me ha creado el archivo en la SD guardando los valores de las entradas analogicas.
                Muchas gracias.
                Hay alguna manera de que el archivo datalog.txt lo cree en SD/arduino/www?

                Comentario


                • #23
                  supongo que si le cambias la ruta te lo guardará donde quieras:
                  File dataFile = FileSystem.open("/mnt/sd/arduino/www/datalog.txt", FILE_APPEND);

                  Comentario


                  • #24
                    Ahora me funciona perfectamente, muchas gracias por todo.
                    Ya he avanzado un poquito mas.

                    Comentario


                    • #25
                      Ya se que soy pesado, culpa de que soy nuevo en esto de Arduino Yun, pero hay alguna manera de que la carpeta de datalog.txt se elimine cada X tiempo? es para que no se llene mucho la carpeta.

                      Comentario


                      • #26
                        Mira aquí tienes la referencia a la librería que usas, con todas las funciones que tiene disponibles:
                        http://arduino.cc/en/Reference/YunFileIOConstructor

                        Tiene una función remove() para eliminar archivos o carpetas:
                        Filesystem.remove("/mnt/sd/arduino/www/datalog.txt");

                        También hay una función para comprobar que el archivo existe, yo comprobaría que existe y luego lo borraría:
                        IF FileSystem.exists("/mnt/sd/arduino/www/datalog.txt") {
                        Filesystem.remove("/mnt/sd/arduino/www/datalog.txt");
                        }

                        Con esto le haces una función cíclica que ejecute estas líneas cada X tiempo y ya está. para mí la forma correcta de hacerlo sería crear un archivo nuevo antes de eliminar el anterior ya que así te aseguras continuar escribiendo sin problemas, para ello también tienes la función openNextFile en esa librería.

                        Comentario


                        • #27
                          Lo que me gustaría hacer seria borrarlo mensualmente.

                          Comentario


                          • #28
                            Supongo que con el arduino yun podrás acceder a la fecha y hora si tienes acceso a internet, y hacer una función que se ejecuta un día y una hora determinadas del mes fácilmente.

                            Comentario

                            Anuncio Footer B3 Mensaje

                            Colapsar

                            Anuncio Footer B5 Mensaje (Mobile) 300x600

                            Colapsar
                            Trabajando...
                            X