Guardando datos del puerto serial

Jugando con mi Arduino UNO y algunos sensores, me vi en la necesidad de guardar los datos proveniente del puerto serial. Y aunque existen algunos programas disponibles en la internet pensé que sería un buen ejercicio crearlo desde 0 en Ruby.

El Código

require 'serialport'

filename = 'log.txt'

port_str  = 2
baud_rate = 9600
data_bits = 8
stop_bits = 1
parity    = SerialPort::NONE
 trap("INT") { puts "Apagando."; exit}
target = File.new(filename, 'w')
sp = SerialPort.new(port_str, baud_rate, data_bits, stop_bits, parity)
while(true) do
  message = (sp.gets)
   print message
  target.write(message)
 end

El código es bien sencillo y bastante directo. El programa genera un archivo de texto llamado log.txt, con los datos provenientes del puerto de serial. El registro de los datos se hace desde que se inicia el programa hasta su cierre.

Para que funcione correctamente se debe escribir el numero correcto del puerto del Arduino en port_str y la frecuencia en baud_rate. Para el caso del puerto se debe restar 1 al número COM de puerto, es decir, si es COM3 se debe poner 2 en port_str y listo.

Cualquier consulta o comentario más abajo !

comments powered by Disqus