Запись в файл JSON на SD-карту с помощью Arduino

У меня есть проект Arduino, в котором мне нужно записать файл JSON на SD-карту.

Я использую библиотеку SD от arduino. Если я запишу свой контент в файл .txt, у меня не возникнет проблем, но если я изменю расширение на .json, я не смогу писать в файл.

Это рабочий тестовый код:

#include <SD.h>
const int chipSelect = 4;
void setup()
{
 Serial.begin(115200);
 Serial.print("Initializing SD card...");
 // make sure that the default chip select pin is set to
 // output, even if you don't use it:
 pinMode(10, OUTPUT);
 // see if the card is present and can be initialized:
 if (!SD.begin(chipSelect)) {
 Serial.println("Card failed, or not present");
 // don't do anything more:
 return;
 }
 Serial.println("card initialized.");
}
void loop()
{
 String dataString = "";
 File dataFile = SD.open("datalog.txt", FILE_WRITE);
 if (dataFile) {
   dataFile.println(dataString);
   dataFile.close();
   Serial.println(dataString);
 }
 else {
  Serial.println("error opening datalog.txt");
 }
}

Это код не работает:

#include <SD.h>
const int chipSelect = 4;
void setup()
{
 Serial.begin(115200);
 Serial.print("Initializing SD card...");
 // make sure that the default chip select pin is set to
 // output, even if you don't use it:
 pinMode(10, OUTPUT);
 // see if the card is present and can be initialized:
 if (!SD.begin(chipSelect)) {
 Serial.println("Card failed, or not present");
 // don't do anything more:
 return;
 }
 Serial.println("card initialized.");
}
void loop()
{
 String dataString = "";
 File dataFile = SD.open("datalog.json", FILE_WRITE);
 if (dataFile) {
   dataFile.println(dataString);
   dataFile.close();
   Serial.println(dataString);
 }
 else {
  Serial.println("error opening datalog.txt");
 }
}

Я понятия не имею, откуда взялась проблема

заранее спасибо

Томас


person Thomas Rollet    schedule 16.06.2016    source источник


Ответы (2)


Библиотека SD... использует для файлов короткие имена 8.3.

источник

person Ignacio Vazquez-Abrams    schedule 16.06.2016
comment
Могу ли я использовать другую библиотеку для этого или невозможно создать файл JSON? - person Thomas Rollet; 16.06.2016
comment
Проблема не в том, что вы пытаетесь создать файл JSON. - person Ignacio Vazquez-Abrams; 16.06.2016
comment
Так в чем проблема ? - person Thomas Rollet; 16.06.2016
comment
Проблема в том, что используемое вами имя файла не соответствует ограничениям 8.3. - person Ignacio Vazquez-Abrams; 16.06.2016
comment
Мой вопрос: есть ли способ использовать 8.4? - person Thomas Rollet; 16.06.2016
comment
Не с той библиотекой. - person Ignacio Vazquez-Abrams; 16.06.2016
comment
Знаете ли вы какую-нибудь библиотеку для этого? - person Thomas Rollet; 16.06.2016

Вы можете попробовать библиотеку SDFat. Он находится в стадии бета-тестирования и поддерживает длинные имена файлов.

person Phil Glau    schedule 17.06.2016