Respuestas:
puede escribir los datos del sensor en el puerto serie usando serial-lib y escribir un pequeño programa de procesamiento que lea los datos del puerto serie y los escriba en un archivo.
en el código de arduino, inicialice la lib en serie en el método de configuración
Serial.begin(9600);
y escriba los valores de su sensor en la interfaz serial usando
Serial.println(value);
en su método de bucle
en el lado del 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 termine 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 método más simple es usar la biblioteca de serie y la salida a eso. Luego puede capturar la salida a un archivo de texto usando 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 de 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). sospechar). En mac / linux, haga algo como:
cat /dev/cu.usbmodem1d11
Dios sabe cuál es el equivalente en las máquinas con Windows.
cat
comando con algún tipo de secuencia de comandos.
Puede crear un script 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);
Encontré más fácil y seguro usar un script de Python. Usualmente uso este basado en la biblioteca serial . Es muy común usar también el módulo de fecha y hora 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())])
El siguiente paso es usar el escudo de ethernet o algo así como una placa WIZ810MJ e internet habilitan su arduino. Luego puede escribir datos en eso y enviarlo a un servidor web para clasificarlo. Hago esto en mi monitor de temperatura de vivario .