Arduino:
CSVとの作業
方法:
ArduinoにはCSVファイルを処理するための組み込みライブラリはありませんが、SD
およびSPI
ライブラリを使用してSDカード上のファイルにアクセスし、基本的な文字列操作技術を使用してCSVデータを解析または生成することができます。より複雑なCSVの操作を扱う場合には、第三者のライブラリArduinoCSV
が解析と書き込みを容易にするために利用可能です。
SDカードからのCSVデータの読み取り:
#include <SPI.h>
#include <SD.h>
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("Initialization failed!");
return;
}
File dataFile = SD.open("data.csv");
if (dataFile) {
while (dataFile.available()) {
String dataLine = dataFile.readStringUntil('\n');
Serial.println(dataLine); // CSVラインを印刷
}
dataFile.close();
} else {
Serial.println("Error opening data.csv");
}
}
void loop() {
// この例では使用されない
}
サンプル出力:
SensorID, Timestamp, Value
1, 1597840923, 23.5
2, 1597840987, 22.4
SDカードへのCSVデータの書き込み:
#include <SPI.h>
#include <SD.h>
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("Initialization failed!");
return;
}
File dataFile = SD.open("output.csv", FILE_WRITE);
if (dataFile) {
dataFile.println("SensorID, Timestamp, Value"); // CSVヘッダー
dataFile.println("1, 1597840923, 23.5"); // 例のデータ行
dataFile.close();
Serial.println("Data written");
} else {
Serial.println("Error opening output.csv");
}
}
void loop() {
// この例では使用されない
}
サンプル出力:
Data written
ArduinoCSVを使用した解析:
複雑なCSVファイルを扱う場合、ArduinoCSV
ライブラリは解析作業を大幅に簡略化することができます。この例ではすでにArduinoCSV
ライブラリをインストールしていることを前提としています。
#include <SPI.h>
#include <SD.h>
#include <ArduinoCSV.h>
void setup() {
Serial.begin(9600);
if (!SD.begin(4)) {
Serial.println("Initialization failed!");
return;
}
File dataFile = SD.open("data.csv");
if (dataFile) {
CSVParser parser;
while (dataFile.available()) {
String dataLine = dataFile.readStringUntil('\n');
if (parser.parseLine(dataLine)) {
for (int i = 0; i < parser.count(); i++) {
Serial.print(parser.getField(i)); // 各フィールドを印刷
if (i < parser.count() - 1) {
Serial.print(", ");
}
}
Serial.println();
}
}
dataFile.close();
} else {
Serial.println("Error opening data.csv");
}
}
void loop() {
// この例では使用されない
}
サンプル出力:
SensorID, Timestamp, Value
1, 1597840923, 23.5
2, 1597840987, 22.4
これらの例では、SDカード上のCSVファイルから読み取りと書き込みを行うことで、Arduinoプロジェクトは簡単にデータを収集し、設定を保存し、または他のアプリケーションとデータを交換できます。これは、広くアクセス可能な形式で行うことができます。