OrangePIボードを使用して、10秒ごとにシリアル出力でラインを提供するarduinoからのデータをログに記録しています。
20.0 / 12.0 V
これは、arduinoに取り付けられた温度センサーによって測定された温度と、バッテリー節約のための電圧のloggigです。
Web で収集されたスニペットと提案から、必要なことを正確に実行するスクリプトを作成することができました。
#!/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 は、文字列「BAT!」の arduino 出力の最後の行を常に監視する必要があると想定しています。その後、シャットダウンをトリガーします。
このプロジェクトのハードウェア部分のコンセプトがあります arduino コードのコンセプトもあります
しかし、これを Linux でコーディングする方法がわかりません。たぶん、現在のアプローチは間違っていて、すべてをpythonか何かでコーディングする必要がありますか?
提案をありがとう。