如何将数据写入Arduino上的文本文件

时间:2016-11-08 06:56:58

标签: string file text arduino creation

我有一些位置数据不断进入,我正在将其打印到序列中。

说我有字符串" 5"并希望将其打印到文本文件,#34; myTextFile",我需要做些什么来实现这一目标?为清楚起见,文本文件将保存在我的计算机上,而不是保存在Arduino上的SD卡上。

另外,在开始保存之前,他们是否可以在程序中创建文本文件?

2 个答案:

答案 0 :(得分:1)

你必须使用serial-lib来实现这个

Serial.begin(9600);

使用

将传感器值写入串行接口
Serial.println(value);
循环方法中的

处理方

使用PrintWriter将从串口读取的数据写入文件

import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
   mySerial = new Serial( this, Serial.list()[0], 9600 );
   output = createWriter( "data.txt" );
}
void draw() {
    if (mySerial.available() > 0 ) {
         String value = mySerial.readString();
         if ( value != null ) {
              output.println( value );
         }
    }
}

void keyPressed() {
    output.flush();  // Writes the remaining data to the file
    output.close();  // Finishes the file
    exit();  // Stops the program
}

答案 1 :(得分:1)

您可以创建一个python脚本来读取串口并将结果写入文本文件:

##############
## Script listens to serial port and writes contents into a file
##############
## requires pySerial to be installed 
import serial  # sudo pip install pyserial should work

serial_port = '/dev/ttyACM0';
baud_rate = 9600; #In arduino, Serial.begin(baud_rate)
write_to_file_path = "output.txt";

output_file = open(write_to_file_path, "w+");
ser = serial.Serial(serial_port, baud_rate)
while True:
    line = ser.readline();
    line = line.decode("utf-8") #ser.readline returns a binary, convert to string
    print(line);
    output_file.write(line);