ラズパイを使って僻地にモニターカメラを設置するまでの最終章、備忘録です。
「ソラコムキャンペーン植物観察キット」手順で概ねの手順は出来上がってるのですが、いつまでもソラコムのスペースを間借りしているわけにもいきません。
別途amazonのアカウントを設ける案もありますが、すでに使用しているレンタルサーバーに「FTPアップロードするが適当!」との結論に至りました。
ただしこの方式だと何らかの必要性で手動では遠隔で reboot したいときにできない。
ほぼ完成品、ラズパイにアクリルケースの下半分が取り付けられていて
電源ケーブル(上) USBカメラ(左下) ドングル(左中央) 上に少し見えるのがLCDとラズパイをMHDI接続する一体となったコネクタ
下辺のGPIOからの電源供給等のソケットを利用して支えの一部にしている
この目的だけの為には最終的にはディスプレイを外せる構成でもいいのですが、
メインテナンスの為には付けた状態で制作した
1.構成パーツ・準備等
ラズパイ: raspberry pi3 B これにGUI版のフルオプションのraspbian を入れたもの
画像撮影: バッファロー BSW13KM01H の古いやつに、ソラコム提供の take_picture.sh を改造使用(一部不具合あり:文字化けする)。
画像のアップロード: Karan Ingram 氏のドキュメントを参照して作ったレンタルサーバーへFTPする自作プログラム(upload_image_to_xxxx.sh)
自動アップロード: 定刻に撮影した画像をレンタルサーバーにアップロードを自動で行う。
5-19時の毎時 00 15 30 45 の60 コマ/日
これを crontab に設定した。
画像URLのパスワード設定: レンタルサーバのファイルマネージャのところにBasic認証のツールがあって、自動的に.htaccessが置けるようになっている、便利! ただしアクセス制限をかけるURLを間違えないように。
通信手段(画像のアップロード): AK-020 ドングルでソラコム通信。 ソラコム提供の connect_air を自動起動するようにする。
ただ~~し、reboot では自動接続しない時もあるようなので、ドングルの緑の点滅で確認する。電源ONで試す。
消費電力等: AK-020は待機電流50mA(通信時500mA)だそうです。ラズパイは待機電流400mA程度か。 それにしてもドングルは熱を持つから50mAと言うのは本当か? AK-020は仕様では待機時は1.5秒の点滅だそうだが、通信してなくても四六時中0.5秒の点滅をしている。 不良品を出してるみたいだけどどうでもいいか。
日立の車用ブースターバッテリーでも18000mAh(12V)。
要するにかなりの大型バッテリー動作でも1週間も持たないのでAC電源が必要。
2.設置
設置に持参するもの:
ラズパイ、USBカメラ、USBドングル、ワイアレス・マウス・キーボード
ディスプレイ(オソヨーの3.5インチLCDラズパイ用のを買いました (^^♪
バッテリー (ポータブルで試してみるときのため)
ノートパソコン (情報収集や結果確認)
スマホ (結果確認)
拡大鏡 (ディスプレイの文字が小さいため)
3.オソヨーの3.5インチLCDを使えるようにするまで
タッチドライバーをインストールしないとタッチスクリーンが使えないうえ、解像度が細かすぎて文字が見えない。
インストールは通常ディスプレイを使ってドライバーをダウンロードし、指示に従ってインストールするのがやりやすい。
http://urx2.nu/DSj9/ にアクセスして LCD_show_35hdmi.tar.gz ファイルをダウンロードする
/home/pi/ダウンロード に入ってるので /home/pi/ に移す
sudo chmod 777 LCD_show_35hdmi.tar.gz
tar -xzvf LCD_show_35hdmi.tar.gz で解凍
cd LCD_show_35hdmi 移動
sudo apt-get update
sudo ./LCD_backup
sudo ./LCD35_720*480
とすると2分後に自動再起動して使えるようになる。
その他の改造後の時は LCD_35_480*320 又はLCD35_810*540 から選べとの事。
OSをアップグレードするときの注意:
sudo apt-get-mark hold raspberrypi-kernel (コアとドライバーをロックして変更しないですださい)
sudo apt-mark hold raspberrypi-bootloader (解像度を変更しないでください)
sudo apt-get update
sudo apt-get upgrade
とやれというご託宣です。
4.障害対応
レッドランプ点灯(信号・サービス無し)がときたま発生、この場合は復帰する。
観察によると再起動で、USBドングル、これがグリーンランプ点灯(初期化中)のままになったりする。
LCDディスプレイのスイッチ(画面のみのスイッチと思うが)ONOFFにかかわらず、reboot で2回に1回以上ドングルがグリーンランプ点灯状態から脱出できない。
外来ノイズ等何らかの原因でシステムがフリーズする可能性がある。
夏場は雷で停電が起こる。 通電後の自動復帰はまれにできないことが想定される。
以上の瞬断停電対応に、root 権限のcrontab でプログラムしてみる:
深夜22時15分にreboot -i (OSの再起動+ドングル接続断)
22時15分にconnect_air.sh (ドングル再接続)
多分、長時間動きが無いとスリープ状態なのか定時のrebootがきかない様子(未確認)
たまにドングルが通信を停止していることがある。復帰するときと全く復帰しないときがある。(原因不明)
症状はドングルは待機状態(グリーンランプ点灯のまま)
上記の原因不明にの通信対応として:
カメラ撮影のみは24時間毎時撮影し、サーバーアップは5時から19時の毎時4回としてみる。
ドングルの再接続をreboot時以外に(未明に一度)追加する。
いや~~、あまり信頼できないんですよね。
調査結果の障害対応の最終案:
電源ON時に connect_air.sh (ソラコム提供)を自動実行
未明に一回システムを再起動、その時 reboot にオプション-i を入れる(これで再起動後にすべてのネットワークインターフェースがシャットダウンするようですね)
reboot 1分後に connect_air.sh で再接続する。
これで、停電時:復帰後に再起動しネットワークにつながった状態になるが、ならないときもある。
何らかの原因でシステムが正常動作してないときは、一日一度の再起動で復帰する。
ワイアレス・マウス・キーボードのUSBは設定後に抜いた状態で運用。
5:出来上がったもの、慣らし運転
画像撮影:5時から19時の毎時00分、15分、30分、45分にUP、撮影は24時間毎時。 サイズ640x480ピクセル
表示画像:その時点の最新の画像
再起動・再接続を毎日22時35分に行い日中の故障の復帰をする。
5-1:結論
通信が無いと通信を切られてしまう定量的情報がない状態で、障害対応でシステムの復旧が不安定で原因がどこにあるのか不明で、結果使い物にならなかった。
6.備忘録:crontab の書き方
ファイル起動 crontab -e
* * * * * /---
で、順に:
分 0~59
時 0~23
日 1~31
月 1~12
曜日 0~6 で0が日曜日(ここ不確か)
リスト:例えば毎時10分,20分,30分,40分 10,20,30,40 * * * *
範囲:例えば1時から5時の毎時10分 10 1-5 * * *
間隔:例えば5分間隔 */5 * * * *
コメントする