余っているスマホを使って自動録音システム作成

隣の住人があまりにうるさい時があるので、どれだけの騒音かを証明するために作成しておこうかと。

2022-09-01(TH)楽天miniを設定して自動録音

 

録音ファイルは正常に転送されているようです。

なので、転送されたファイルをスマホから削除、かつ、一定期間回収されなかったファイルは自動で削除というスクリプトを作ることにします。

Windowsですが、bashで動かした方が、私が慣れていますので、Windows上のLinuxで動かします。

record_data_control_start.bat


cd /d %~dp0
wsl ./record_data_control_start.sh
pause

 

タスクスケジューラー登録

作っていていくつか注意点。

改行コードはLFで。そりゃLinuxだからそうだけど。

 

作る内容

ターゲットフォルダ内のファイルについて最終更新時刻が24時間以上前のファイルについて、別フォルダにコピー。

これにより、resiliosyncをつ使っているので、自動的に同期されて、スマホ側のファイルも削除される。(PC側は別フォルダにコピーされて残る。)

別フォルダのファイルは一定期間が過ぎたら削除。

必要そうなファイルは手動でどこかにコピーしておかないと消える運用。

record_data_control_start.sh


#!/bin/bash
TARGET_PATH=/mnt/d/*****dir***
DESTINATION_PATH=/mnt/d/*******savedir****
#move,remove期間判定
TARGET_MV_DATE=`date +%Y-%m-%dT%H:%M:%S --date '1 days ago'`
TARGET_RM_DATE=`date +%Y-%m-%dT%H:%M:%S --date '30 days ago'`

cd $TARGET_PATH
#比較用UnixTimeに変換
TARGET_MV_DATE_UNIX_TIME=`date +%s --date $TARGET_MV_DATE`
TARGET_RM_DATE_UNIX_TIME=`date +%s --date $TARGET_RM_DATE`

#移動(同期処理でスマホ側からも削除されるはず)
while read -r f; do
  TARGET_FILE_DATE_UNIX_TIME=`date -r "$f" +%s`
	if [ $TARGET_MV_DATE_UNIX_TIME -gt $TARGET_FILE_DATE_UNIX_TIME ] ; then
		echo "move_file: $f"
		date -r "$f"
	  	mv -f "$f" "$DESTINATION_PATH"
	else
	  echo "new file save: $f"
	fi
done < <(find ./ \( -name '*.3gp' -or -name '*.mp4' -or -name '*.m4a' \) -mindepth 1 -maxdepth 1)

#PC側のデータを削除容量を開ける
cd $DESTINATION_PATH
while read -r f; do
  TARGET_FILE_DATE_UNIX_TIME=`date -r "$f" +%s`
	if [ $TARGET_RM_DATE_UNIX_TIME -gt $TARGET_FILE_DATE_UNIX_TIME ] ; then
		echo "DEL_file: $f"
		date -r "$f"
	  	rm "$f"
	else
	  echo "new file save: $f"
	fi
done < <(find ./ \( -name '*.3gp' -or -name '*.mp4' -or -name '*.m4a' \) -mindepth 1 -maxdepth 1)

 

android側録音は簡単ボイスレコーダーProを使う事にします。

設定、ファイル名に端末名などを追加しました。

Tasker機能を有効にしてMacrodoridから操作可能とします。

一番軽そうなフォーマットにしました。

 

アンドロイド端末操作自動化のためMacrodroidを使います。

ボイスレコーダーを起動します。何らかのエラーで止まっていたら再度開始しないといけないので2分ごとに起動しています。

既に起動している場合は何も起こらないみたいなのでこれで良いかなと。

一定間隔で録音停止します。

ようは一定時間ごとに適当なサイズのファイルになってほしいからあえてここでは2時間ごとに1ファイルとしています。

停止した後に自動でしばらくしてまた起動するはず。

デバイス間のデータ同期にはResilio Syncを使う事にします。

一日一回くらい起動してアンドロイドで録音したデータをPCに同期することにしようかな。

あとはSyncの同期設定で、スクリプトフォルダを指定する感じです。

ずっと取っておきたいファイルは手動でどこか別で保存しておくといいはずです。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です