The description doesn't fit on one line -- but the code does!

This is a bash one-liner for logging data from the Arduino, and for processing (e.g. timestamping, reacting to sensor readings, etc.) and then redirecting data file.

I have tried this out on Mac Os X, but I'll verify it on the Raspberry Pi right away (as linux can perform nanosecond timestamping).


cat /dev/cu.usbmodem1421 | awk '{ for (i=0; i<NF; i++) printf $i + system("date +,%s")}'

To use with your arduino:

Just replace the /dev/cu.usbmodem1421 with your arduino's serial port (an easy way to find this is to see which is checked in the Tools -> Port  of the Arduino IDE menu)

(If you have both /dev/cu.usbmodem and /dev/tty.usbmodem, then use the /dev/cu.usbmodem one)

Real-Time Monitoring:

Real-time monitoring and command line reactions are simple to add-on, for these examples visit (and please star) the project's github.
<p>Hi</p><p>Thank you so much for this interesting project. But, did you manage to try it on raspberry? </p><p>And, if I want to to timestamp sensor readings using GPS synchronized timing do you know how it can be implemented?</p><p>Thank you,</p><p>Alireza, Geophysicist</p>
<p>Do you need an internet connection for the timestamp to work?</p>
<p>Hi Jsonius, </p><p>Thanks for the question: no internet connection is required for this method to work. It uses the system's own `date` utility, and can be used completely offline.</p><p>-- Greg</p>
<p>Good effort here - there's a lot to learn and use in Linux! </p><p>The command <strong>ts</strong> (in the Debian/Raspbian/Ubuntu package <em>moreutils</em>) might also do what I think you're trying to do here. Also, if you use gnu awk, it has a <a href="https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html" rel="nofollow">strftime</a> function, so you can avoid the system() call and do </p><p>gawk '{print strftime(&quot;%s &quot;) $0}'</p><p>You might also want to try <a href="https://github.com/tbird20d/grabserial" rel="nofollow">grabserial</a>.</p>

About This Instructable




More by jabberwocky1396:Raspberry Pi: Reading 7-Segment Displays Datalogging, timestamp, & Monitor Arduino Data with an incredible Bash-One-Liner 
Add instructable to: