実家の山の様子を定期的に親にみせたい。
- 山中なので、もちろん電源は無い。
- 遠方なので、自分は滅多に行けない。
- 親が高齢なので、メールで送るのが良い。
- Raspberry Pi Zero(電力消費低) + 太陽光発電でバッテリーを充電しながら・・・できたらいいな。
というための実験です。
準備
- Raspberry Pi Zero W
- ラズパイカメラ
- 固定IP付きSIMカード イプシム(無制限プラン)
- LTE対応 USBドングル PIX-MT110
- カメラを有効にする
- メール送信はExim4
写真撮影 + メール送信スクリプト
コード
#!/bin/sh
#ファイル名 パス 写真撮影・保存
ATTACH_FILE_NAME=$(date +%Y%m%d%H%M%S).jpg
ATTACH_FILE_PATH=/画像を一時的に書き出す場所/${ATTACH_FILE_NAME}
raspistill -w 640 -h 360 -o ${ATTACH_FILE_PATH}
#メール処理はここから
MAIL_BOUNDARY=`date +%Y%m%d%H%M%N`
/usr/sbin/sendmail -t << EOF
From: xxxxxx@xxxx.xx
To: xxxxxx@xxxx.xx
Cc: xxxxxx@xxxx.xx
Subject: メール添付テスト $(date +%Y-%m-%d) $(date +%H:%M:%S)
MIME-Version: 1.0
Content-type: multipart/mixed; boundary=${MAIL_BOUNDARY}
Content-Transfer-Encoding: 7bit
--${MAIL_BOUNDARY}
Content-type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
メール本文
メール本文
メール本文
--${MAIL_BOUNDARY}
Content-type: application/jpeg;
name=${ATTACH_FILE_NAME}
Content-Transfer-Encoding: base64
Content-Disposition : attachment;
filename=${ATTACH_FILE_NAME}
`cat ${ATTACH_FILE_PATH} | base64`
--${MAIL_BOUNDARY}--
EOF
#画像ファイル削除
rm -f ${ATTACH_FILE_PATH}
- Cronから実行の場合は絶対パス。
- 改行コードはLF。
実行権限付与
chmod +x 写真撮影 + メール送信スクリプト.sh
Cron
sudo crontab -e
毎日12時に実行の場合
0 12 * * * 写真撮影 + メール送信スクリプト.sh
省電力化
どのくらい効くかは未計測。
OSの動作を「powersave」モードへ
sudo sh -c "echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
HDMIポートへの電源供給を起動時にオフ
sudo vi /etc/rc.local
exit 0の上に追記
tvservice --off
停止確認
vcgencmd display_power
display_power=0 でOK
Wi-FiとBTを起動時に止める
sudo vi /boot/config.txt
追記
dtoverlay=pi3-disable-bt
dtoverlay=pi3-disable-wifi
起動確認
ifconfig
無線LANが表示されていないか確認
hciconfig
何も表示されないか確認
PIX-MT110のWi-Fiを止める
設定 → Wi-Fi設定 → 「Wi-Fiインターフェースを有効にする」のポチを外して[適用]押下。
試してみて
モバイルバッテリー(26800mAh)だけでも2~3日もちそうです。
飽きたり挫折したりしなければ製作を続けます。