我想从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。
此致
答案 0 :(得分:0)
请注意,在某些情况下直接读取串行(/dev/ttyACM0
)设备并将其直接传递给wget
可能会有危险,以防因为某些原因导致读取被阻止(如果串行端口会发生什么情况)断开连接并重新连接?)
将输出路由到文件可能更安全;然后在循环中读取最新数据并使用wget
“推送”。也许是这样的事情:
#!/bin/bash
while true; do
tail -1 /www/home/log/txt | wget <...options...>
sleep 60
done
实际上,您可能需要做一些更高级的事情,这样您就不会继续发送重复数据。
当然,在你自己的情况下,你提出的建议可能就足够了......