¿Cómo puedo guardar los datos recuperados de un sensor en un archivo de texto en la computadora?
¿Cómo puedo guardar los datos recuperados de un sensor en un archivo de texto en la computadora?
puede escribir los datos del sensor en el puerto serie utilizando serial-lib y escriba un pequeño programa de procesamiento que lea los datos del puerto serie y los escriba en un archivo.
en el código arduino inicializa la biblioteca serial en el método de configuración
Serial.begin(9600);
y escriba los valores de sus sensores en la interfaz serial usando
Serial.println(value);
en tu método de bucle
en el lado de procesamiento use un PrintWriter para escribir los datos leídos desde el puerto serie a un archivo
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
}
Otra opción más es usar un lector / escritor de tarjetas SD y escribir su archivo en una tarjeta SD. Cuando haya terminado de recopilar datos, cambie las tarjetas SD con la computadora de su estación de trabajo. Este enfoque le permitirá ejecutar su proyecto desconectado de una computadora y proporcionará un almacenamiento no volátil de grandes cantidades de datos.
El programa gobetwino registrará los valores del sensor desde un Arduino a un archivo de texto u hoja de cálculo con un mínimo esfuerzo. También puede automatizar cosas en la computadora, agregar marcas de tiempo (por lo que no es necesario programarlas en el arduino), etc.
El método más simple es utilizar la biblioteca de serie y obtener resultados. A continuación, puede capturar la salida en un archivo de texto utilizando un programa de terminal. Hyperterminal está disponible en Windows, Teraterm en Linux y Z Term en OS X.
Melanie
Si desea escribir datos del sensor directamente en un archivo en su computadora sin tener que copiar y pegar la salida desde la ventana del monitor en serie, intente leer el flujo de datos directamente desde el puerto en serie (que es lo que hace el monitor en serie De todos modos, sospecho). En mac / linux haga algo como:
cat /dev/cu.usbmodem1d11
Dios sabe cuál es el equivalente en máquinas con Windows.
Puede crear una secuencia de comandos de Python para leer el puerto serie y escribir los resultados en un archivo de texto:
##############
## Script listens to serial port and writes contents into a file
##############
## requires pySerial to be installed
import serial
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);
El siguiente paso es usar el escudo de Ethernet o algo así como una placa WIZ810MJ e Internet para su arduino. A continuación, puede escribir datos y enviarlos a un servidor web para que los compagine. Hago esto en mi monitor de temperatura de vivarium .
Me pareció más fácil y seguro usar un script de Python. Usualmente uso este basado en la biblioteca de serie . Es muy común usar también el módulo datetime para agregar las marcas de tiempo:
import serial
from datetime import datetime
sensor = "DH11"
serial_port = '/dev/ttyACM0'
baud_rate = 9600
path = "%s_LOG_%s.txt" % (str(datetime.now()), sensor)
ser = serial.Serial(serial_port, baud_rate)
with open(path, 'w+') as f:
while True:
line = ser.readline()
f.writelines([line.strip(), " t = %s \n " % (datetime.now())])
Lea otras preguntas en las etiquetas arduino