Cloud Piをつかってみました。(環境センサモジュール:前編)

投稿者:

 前回Cloud Piを使ってAndroid端末からRaspberry Piに接続することに成功しました。今回はもう少し具体的な例を用いてCloud Piを使ってみます。
env1

遠隔地にある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

detect
数字が出てるところがデバイスのアドレスです。
液晶・温湿度・気圧・明るさの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

pic652
するとこのように環境データが取得できます。
ここまでで環境センサが動作していることが確認できたので、いよいよCloud Piを使ってリモートで環境センサの値を取得しようと思うのですが…
ちょっと長くなってしまったのでここで一度区切りをつけます!
それではまた次回よろしくお願いします。

Cloud Piをつかってみました。(サーバ側設定)
Cloud Piをつかってみました。(クライアント側設定):前
Cloud Piをつかってみました。(環境センサモジュール:後編):次
Cloud Piをつかってみました。(カメラモジュール)