ソラコムのサービスを使って遠隔のラズパイにUSB接続したwebカメラの画像を自宅パソコンやスマホで観るまでの試行錯誤の備忘録です。 「ラズパイxソラコムキャンペーン植物観察キット」ハンズオンドキュメントに従った試行の記録です。
1.ラズパイをSSHでパソコンから操作する:
ラズパイをSSHを有効にする:
ラズベリーアイコン > 設定 > Raspberry pi の設定 > インターフェース のところで「SSH」を「有効」にする。
パスワードを変える:
default はID:pi、 password:raspberry となっていて、「このままだと危険だたよ~ん」と言ってくるので変えた。
ラズベリーアイコン > 設定 > Raspberry pi の設定 > システム のところで新しいパスワードを入れる。 前のパスワードを入れなくて変えられるので、パスワード地獄にならない。
windowsパソコンに TeraTermを入れる:
これでLAN(無線LAN)内のパソコンからはアクセスできる。 LAN外からはこれから。
2.ラスパイでUSB接続のカメラを使う:
カメラは手持ちの古いやつを使う。 モデル名はバッファローのBSW13KM01H 古すぎるが使えた(^^♪
fswebcam というパッケージを入れる:
sudo apt-get update
sudo apt-get install -y fswebcam
写す時は:
fswebcam -S5 -r 640x480 sample.jpg
ここで:
-F5::?
-S5:オートフォーカスや自動露光の時間を取るためフレーム数だけ取り込みをスキップする。このカメラには 5~10位が適当か。
-r 640x480 取り込み画像サイズを決める。
3.windowsパソコンに取り込んで見るには:
パソコンにWinSCPをインストールしてファイル転送する。
WinSCPはウィンドウがPC側とリモート(ラズパイ)側と2つ開き、ドラッグ&ドロップできとても便利、お薦め。
4.apache2を入れてwebカメラにする:
ソラコムのテキストに従って以下の事をした:
apache2 のインストール
cgi.load の enable
CGIのプログラムはソラコムよりダウンロード:
sudo wget -O /usr/lib/cgi-bin/camera https://xxxxxxxxxxxxx
ここで-Oは-大文字のオーだった(*_*; このカメラファイル
camera にパーミッション x を追加
camera の中の記述は上記2.の結果に従い fswebcam のところに -S10 を追記した
ユーザー www-data をグループ video に所属させる(なんで必要?)
つまずいたところ:
apache2 のstart、restart でエラーが出た。 原因はcgi.loadのファイルがmods-enabledの方にうまくリンクできていなかった(*_*;。
wgetの-Oのオプション、oだか、0だか、Oだか、大文字のOってのがあるんですね、勉強になりました。
webカメラの確認は:
http://(ラズパイのIPアドレス)/cgi-bin/camera
実行するたびにその時のカメラ画像が出る。
5.ドングルAK-020を使う:
温度を測るのは後回しにして、ソラコムのスターターキットが来たので、AK-020でインターネットに繋げてみた。
結論、繋がったが大変~
せっかくラズパイが5W程度の小電力なのにAK-020は結構熱くなり、電力の使いまくりで、ラズパイの省エネが台無し!
実施したこと:
パッケージ wvdial usb-modeswitch のインストール
ソラコム提供のスクリプト connect_air.sh をダウンロード、パーミッションを変えて、/usr/local/sbin/ に移動する
curl -O http://soracom-files.s3.amazonaws.com/connect_air.sh (ソラコム提供)
chmod +x connect_air.sh (実行を追加)
sudo mv connectair.sh /usr/local/sbin/ (移動)
sudo で connect_air.sh の実行で接続できた、、、が、、、、
・disconnectする方法が分からない。
・AK-020はその都度(電源ONとかドングル差し込みとか)自動ではつながらない。
・AK-020接続したとき、ラズパイはwifiとどちらでつながってるのか不明。
・AK-020で接続しているときは パソコン側からターミナルとしてラズパイに(wifi経由)SSH接続できない。
・パソコンからターミナルとしてラズパイに(wifi経由)SSH接続して、AK-020の接続を試みると途中で通信が途切れる。
有線LANの場合はどうか、後の3項目は解消してるので多分にラズパイのwifiの又はドングルのどちらか、ラズパイの方が信用あるが、、
という事で今のところ(2017年9月27日現在)、AK-020の接続を必要とする作業は、ラズパイ+ディスプレイ+AK020の組み合わせまたはパソコン―ラズパイを有線LANて使う。
6.気温を測定する:
ここでは例題として温度センサーDS18B20+を使ってw1通信デバイスの使い方をハンズオン。
実施したこと:
/boot/config.txt ファイルに dtoverlay=w1-gpio-pullup,gpiopin=4 を追記
/etc/modules ファイルに
w1-gpio
w1-therm
を追記してreboot。 ラズパイ起動時に読み込まれるようになる。
DS18B20+ が認識されたかの確認は:
ls /sys/bus/w1/devices/ でここに28-で始まるデバイスw1_bus_master1 があればこれが温度センターという事らしい。
温度測定は:
cat /sys/bus/w1/devices/28-*/w1_slave で結果が出る。でた~!
7.fswebcamの問題点:
fswebcam は画面の下にキャプションを入れて日付とか気温を入れるなどできるのがいいんだけど、上記4のwebカメラにして使うときにはきちんと表示できるが、画像をアップロードするために定点観測撮影した画像では文字化けしてしまう。 未解決。
webカメラとして外部からapache2にアクセスして見るときには下辺のキャプションの温度と日付はきちんと出るが、
直接fswebcamを実行したときの画像はその部分が文字化けして□□□のようになって出てこない。
8. 結果:
ドングルAK-020使えた 接続はできるが切断はどうするか分からん かなり熱くなる
w1通信の温度センサー使えた
soracom beam を使ってデーターをクラウドに送る。 できたようだが確認ができない
自前のUSBカメラが使えた webカメラとしては完璧
fswebcamは何とか使えたが文字化けは未解決
crontabは使えた
soracom endorseは使えたようだ
コメントする