Esta tarde estaba haciendo un trabajo con Arduino y después de acabarlo se me ocurrió la idea de dejarlo toda la noche ejecutándose para comprobar a la mañana siguiente que los valores que ha enviado por el puerto son coherentes. Esto puede aplicarse de la misma forma a cualquier placa que utilice puerto serial como Arduino, ESP8266, NodeMCU, Beaglebone…
Para ello lo adecuado es escribir en un fichero la salida completa que nos envía Arduino a través del puerto serie a nuestro ordenador y así tener guardado todo el log para consultar cómodamente más adelante. Para hacerlo, la forma más adecuada que he encontrado es la siguiente:
En una ventana de terminal configuramos el baudrate correcto para el puerto USB en el que está conectado el arduino, esto permite que la sesión que tenemos abierta en dicha terminal entienda correctamente los mensajes que envía el arduino en modo texto y los interprete correctamente y no con caracteres extraños.
stty -F /dev/ttyUSB0 raw speed 9600
Debes sustituir ttyUSB0 por el nombre del puerto en el que se encuentre tu arduino, que podria ser ttyACM0 u otro numero, y 9600 por la velocidad del puerto sería que está configurada en el sketch subido a Arduino.
Ahora simplemente con el comando cat podemos leer sin más en tiempo real lo que nos envía Arduino y podemos redireccionarlo a un fichero facilmente.
while true; do cat /dev/ttyUSB0 >> arduino.log; done
Obviamente debes sustiruir el nombre del puerto por el cual en el que se encuentre Arduino.
Todohacker by 4m1g0 is licensed under a Creative Commons.