我正在使用 OrangePI 板记录来自 arduino 的数据,该 arduino 每 10 秒通过串行输出提供一行。
20.0 / 12.0 V
这是记录由连接到 arduino 的温度传感器测量的温度和用于节省电池目的的电压。
我已经设法从网络上收集的片段和建议构建了一个脚本,这正是我所需要的。
#!/bin/bash
# Script will run at reboot.
echo "Beginning Temperature Log!"
NOW=$(date +"%Y-%m-%d")
LOGFILE="log-$NOW"
name=$LOGFILE
if [[ -e $name ]] ; then
i=2
while [[ -e $name-$i ]] ; do
let i++
done
name=$name-$i
fi
ts </dev/ttyUSB0>$name
每次我通过设置 cron @reboot 启动机器时,该脚本都会运行,效果很好。
现在我计划用“电池保护”扩展arduino代码,当电压低于一定水平时,它会向串行输出发送警告
20.0 / 9.0 V / BAT!
此时,OrangePI 应该停止/关闭并在其“安全关闭”时向 arduino 发送特定字母,以便 arduino 可以停用继电器并关闭整个系统。(和它本身)
所以我认为 OrangePI 应该始终观察 arduino 输出中字符串“BAT!”的最后一行。然后触发关机。
我对这个项目的硬件部分有一个概念,还有一个 arduino 代码的概念
但不知道如何在 Linux 上编写代码。也许现在的方法是错误的,整个事情应该用python或其他东西编码?
感谢您的任何建议。