通过Ethernet Shield从Arduino SD卡读取文本文件

时间:2015-12-06 19:06:28

标签: arduino sd-card read-write

我正在研究Arduino项目,我已经完成了连接传感器,收集数据一周并保存数据的部分。我现在的问题是获取数据并将网站放到图表上。我必须通过以太网为项目发送数据,所以我想我会将SD卡上的文本文件中的信息发送到我的计算机,然后从那里开始。问题是我无法打开文本文件并在串行监视器中查看它。这是代码

    /*
  SD card read/write

 This example shows how to read and write data to and from an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop() {
  // nothing happens after setup
}

正如您所看到的,这只是示例库中的ReadWrite代码。它工作正常,它写入数据并正确读取。当我修改它以使用我的sampledata.txt时,会出现问题。它不读它。

以下是几行samplesatatxt的示例。

2015-11-25 12:16:10 758
2015-11-25 12:16:12 757
2015-11-25 12:16:14 757
2015-11-25 12:16:16 758

我是否错过了阅读数据的一些更精细的语义?数据读取的数据是否太大?它大约是66MB的文件。

任何方向都会很棒!

0 个答案:

没有答案