在openWRT中管理Linux cat命令到web

时间:2014-06-01 06:44:39

标签: shell curl serial-port arduino openwrt

我想从openWRT运行shell脚本。基本上它需要不断读取arduino串口,当它读取需要将其发送到基于Web的服务时。

目前这是我的脚本,只保存到文本文件:

cat /dev/ttyACM0  >> /www/home/log.txt & 

我想避免保存到文件并将输出字符串直接发送到基于Web的服务,该服务将读数存储在mySQL DB中。

所有数据保存Web服务都已设置并且正常工作:

http://my-service.com/?data=what-ever-the-arduino-spits

有没有办法用wget做到这一点?

可能是这样的:

cat /dev/ttyACM0 | xargs -n % wget http://ivardi.info?todb=%

请记住,openWRT位于32 RAM和4MB闪存上,因此只能使用shell脚本而不是Phyton / PHP。

此致

1 个答案:

答案 0 :(得分:0)

请注意,在某些情况下直接读取串行(/dev/ttyACM0)设备并将其直接传递给wget可能会有危险,以防因为某些原因导致读取被阻止(如果串行端口会发生什么情况)断开连接并重新连接?)

将输出路由到文件可能更安全;然后在循环中读取最新数据并使用wget“推送”。也许是这样的事情:

#!/bin/bash

while true; do
    tail -1 /www/home/log/txt | wget <...options...>
    sleep 60
done

实际上,您可能需要做一些更高级的事情,这样您就不会继续发送重复数据。

当然,在你自己的情况下,你提出的建议可能就足够了......