【发布时间】:2015-11-02 18:46:44
【问题描述】:
我的 Arduino 正在记录温度数据(数据类型浮点数),我正试图将其登录到我的 Linux 机器上。最大的问题是这种记录的速度。 Arduino 使用 DS1822 读取温度,然后我使用
Serial.print(temp);
命令,其中 temp 是保存温度数据的浮点数。在 Linux 机器上,我使用以下 shell 脚本来收集数据:
#!/bin/sh
while [ 1 ]; do
val=$(cat /dev/ttyUSB0);
echo "$val,$(date "+%Y-%m-%d %H:%M:%S")" >> ~test.txt;
sleep 10;
done
这样做的主要问题是睡眠(延迟)必须非常大;如果我使用sleep 1;,计算机将无法接收任何数据。
当我使用screen /dev/ttyUSB0 时,我可以看到数据接收得非常快。
使用我当前的脚本,似乎 Arduino 在发送数据时以某种方式冻结。我还尝试通过电阻测量构建一个更简单的脚本(因为 DS1822 数据转换也需要一些时间),但是当我使用上述 shell 脚本时,这也需要很多时间。
因此,我的问题是:如何优化我的 Arduino / shell 脚本,以便像 Arduino 发送数据一样快地记录数据?
【问题讨论】:
标签: linux shell logging arduino