Run this, changing path to serial for your setup:
$ ruby read.rb /dev/cu.usbmodem1411
Output will be appended to serial.log
in the current directory. Use control-C to exit. Connection will also be terminated if Arduino resets.
#!/bin/env ruby -wKU | |
require 'date' | |
require 'serialport' | |
port = ARGV[0] | |
baud_rate = ARGV[1] || 9600 | |
file = "serial.log" | |
serial = SerialPort.new(port, baud_rate, 8, 1, SerialPort::NONE) | |
begin | |
while true do | |
while (i = serial.gets.chomp) do | |
date = DateTime.now.strftime("%Y-%m-%dT%H:%M:%S.%3N%z") | |
$stdout.puts "[" + date + "] " + i | |
File.write(file, "[" + date + "] " + i + "\n", { mode: 'a' }) | |
end | |
end | |
ensure | |
serial.close | |
end |