Jawaban:
Anda dapat menulis data sensor ke port serial menggunakan serial-lib dan menulis sebuah program pemrosesan kecil yang membaca data dari port serial dan menulisnya ke file.
dalam kode arduino, litali lib serial dalam metode pengaturan
Serial.begin(9600);
dan tulis nilai sensor Anda ke antarmuka serial menggunakan
Serial.println(value);
dalam metode loop Anda
di sisi pemrosesan gunakan PrintWriter untuk menulis data yang dibaca dari port serial ke file
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
}
Namun pilihan lain adalah menggunakan pembaca / penulis Kartu SD, dan menulis file Anda ke kartu SD. Setelah selesai mengumpulkan data, tukar kartu SD dengan komputer workstation Anda. Pendekatan ini akan memungkinkan Anda untuk menjalankan proyek Anda terputus dari komputer, dan akan menyediakan penyimpanan data dalam jumlah besar yang tidak mudah menguap.
Metode paling sederhana adalah dengan menggunakan perpustakaan Serial dan output untuk itu. Anda kemudian dapat menangkap output ke file teks menggunakan program terminal. Hyperterminal tersedia di Windows, Teraterm di Linux dan Z Term di OS X.
Melanie
Jika Anda ingin menulis data sensor langsung ke file di komputer Anda tanpa harus menyalin dan menempelkan output dari jendela monitor serial, maka cobalah membaca aliran data langsung dari port serial (yang memang dilakukan oleh monitor serial, saya tersangka). Di mac / linux, lakukan sesuatu seperti:
cat /dev/cu.usbmodem1d11
Tuhan tahu apa yang setara di mesin windows.
cat
perintah itu dengan semacam skrip.
Anda dapat membuat skrip python untuk membaca port serial dan menulis hasilnya menjadi file teks:
##############
## 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);
Saya menemukan lebih mudah dan lebih aman untuk menggunakan skrip Python. Saya biasanya menggunakan ini berdasarkan perpustakaan serial . Sangat umum untuk menggunakan juga modul datetime untuk menambahkan cap waktu:
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())])
Langkah selanjutnya adalah menggunakan perisai ethernet atau sesuatu seperti papan WIZ810MJ dan internet memungkinkan Arduino Anda. Anda kemudian dapat menulis data untuk itu dan mengirimkannya untuk mengatakan server web untuk menyusunnya. Saya melakukan ini di monitor suhu vivarium saya .