前回Cloud Piを使ってAndroid端末からRaspberry Piに接続することに成功しました。今回はもう少し具体的な例を用いてCloud Piを使ってみます。
遠隔地にあるRaspberry Piを操作するシチュエーションとして、例えば
・外出先からエアコンをつける。
・カメラを使ってペットの様子を見る。
・部屋の温度を調べる。
など、考えればいろいろと出てきそうです。
今回はその中から環境情報の取得を選んでみました。
写真の基板はスイッチサイエンスから発売予定のRaspberry Pi環境センサモジュール(試作品)です。この基板上には温度・湿度・気圧・明るさの4つの環境情報を得るためのセンサと、それを表示するための小型キャラクタ液晶が搭載されています。
GitHubに環境センサモジュールを使うためのライブラリがありますので、これを使います。ライブラリは Python3 + Quick2wireライブラリの環境で動作します。
環境センサはI2C接続なのでまず最初にI2Cの使用準備をしましょう。
pi@raspberrypi ~$ sudo nano /etc/modules
/etc/modulesの中身を編集して次の2文を追加します。
i2c-bcm2708 i2c-dev
次に/etc/modprobe.d/raspi-blacklist.confを編集して、blacklist i2c-bcm2708の頭に#をつけてコメントアウトします。
pi@raspberrypi ~$ sudo nano /etc/modprobe.d/raspi-blacklist.conf
blacklist spi-bcm2708 #blacklist i2c-bcm2708
ここで一度Raspberry Piを再起動させます。
pi@raspberrypi ~$ sudo reboot
再起動したところで、i2c-toolsをインストールします。
pi@raspberrypi ~$ sudo apt-get install i2c-tools
ここで、接続されているI2Cデバイスのアドレスを確認してみましょう。
pi@raspberrypi ~$ sudo i2cdetect -y 1
数字が出てるところがデバイスのアドレスです。
液晶・温湿度・気圧・明るさの4つのセンサを搭載しているので数字が4ヶ所確認できます。
次に、環境センサモジュールのライブラリの準備をしましょう。
まずQuick2wireライブラリをインストールします。Quick2wireライブラリは仮想環境での使用が推奨されているので、仮想環境の構築から始めます。
pi@raspberrypi ~$ sudo apt-get install python-pip pi@raspberrypi ~$ sudo apt-get install python-vertualenv pi@raspberrypi ~$ virtualenv -p python3 cloudpiEnv pi@raspberrypi ~$ cd cloudpiEnv pi@raspberrypi ~/cloudpiEnv $ source bin/activate (cloudpiEnv)pi@raspberrypi ~/cloudpiEnv $
これで仮想環境が起動しました。 Quick2wireのインストールを行います。
長くなってしまうのでコマンド部分のみ表示します。
$ git clone https//github.com/quick2wire/quick2wire-gpio-admin.git $ cd quick2wire-gpio-admin $ make $ sudo make install $ cd .. $ git clone https://github.com/quick2wire/quick2wire-python-api.git $ cd quick2wire-python-api $ export QUICK2WIRE_API_HOME='pwd' $ export PYTHONPATH=$PYTHONPATH:$QUICK2WIRE_API_HOME $ git checkout $ python3 setup.py install $ cd ..
Quick2wireを使うためにはユーザがgpioグループとi2cグループに属していなければなりません。所属しているか確認するためには groupsコマンドを実行してi2cとgpioがリストに表示されるかを確かめます。
所属していない場合は次のコマンドを実行して再起動します。
(cloudpiEnv)pi@raspberrypi ~/cloudpiEnv $ sudo adduser $USER gpio (cloudpiEnv)pi@raspberrypi ~/cloudpiEnv $ sudo adduser $USER i2c
再起動した場合仮想環境から抜けてしまっているので、次のコマンドで仮想環境を起動します。
pi@raspberrypi ~$ ~/cloudpiEnv/bin/activate (cloudpiEnv)pi@raspberrypi ~$
次に環境センサ用のライブラリをダウンロードします。
$ git clone https://github.com/SWITCHSCIENCE/RPi_EnvSensor
ダウンロードしたRPi_EnvSensorの中のPython_RPiの中にi2c_Sensor3.pyというファイルがありますので試しにそれを実行すると
$ cd RPi_EnvSensor/Python_RPi $ python3 i2c_Sensor3.py
するとこのように環境データが取得できます。
ここまでで環境センサが動作していることが確認できたので、いよいよCloud Piを使ってリモートで環境センサの値を取得しようと思うのですが…
ちょっと長くなってしまったのでここで一度区切りをつけます!
それではまた次回よろしくお願いします。
Cloud Piをつかってみました。(サーバ側設定)
Cloud Piをつかってみました。(クライアント側設定):前
Cloud Piをつかってみました。(環境センサモジュール:後編):次
Cloud Piをつかってみました。(カメラモジュール)