趣味のログ

自分用の作業ログ。。

RaspberryPi3にGrovePi+とセンサーを接続し、センサー情報を取得

GrovePi+とは、Groveシステムの各種センサーを簡単に使うための、RaspberryPi用シールド。
Groveシステムのセンサーは100種類以上あり、パーツ屋や、amazon公式から購入できる。

環境構築は、公式のクイックスタートを参考に行った。

ソフトウェアのセットアップ

今回は、既にNOOBSからRasbianをインストール済みのSDカードを利用しているため、下記のセットアップ作業を行う※1。

1. RaspberryPi3の電源を入れ、ターミナルを立ち上げる

2. Desktopディレクトリへ移動し、githubリポジトリをcloneする

$ cd /home/pi/Desktop
$ sudo git clone https://github.com/DexterInd/GrovePi

Desktopディレクトリ配下に、GrovePiディレクトリができる。

3. スクリプトが格納されているディレクトリへ移動する

$ cd /home/pi/Desktop/GrovePi/Script

4. スクリプトパーミッションを修正する

$ sudo chmod +x install.sh

5. スクリプトを実行する
必ず、sudoで実行すること!

$ sudo ./install.sh

途中、アーカイブのダウンロードをしてよいか確認されるので、その際は「y」を押して許可する。
インストールが完了すると、勝手に再起動する。

6. 再起動後、一旦シャットダウンする

$ sudo shutdown -h now

7. GrovePi+本体をRaspberryPi3にマウントし、RaspberryPi3を起動する

8. ターミナルを開き、スクリプトが正常に実行されたか確認する

$ sudo i2cdetect -y 1

「00:」行、「4」列に、「04」の数字が表示されていれば、インストールは正常に完了している。

9. テスト Grove ledをD4ポートにつなぎ、サンプルを実行

$ cd /home/pi/Desktop/GrovePi/Software/Python
$ sudo python grove_led_blink.py

LEDが点滅すれば成功

以上でセットアップは完了。

※1. ここからソフトウェアセットアップ済みのRasbianが入ったMicroSDカードを購入したり、ここからイメージファイルをダウンロードし、手持ちの空MicroSDカードにインストールする場合は、セットアップ作業は不要。

センサー情報の取得

pythonでコードを書いてセンサー情報を取得する事ができる。
セットアップ後、「/home/pi/Desktop/GrovePi/Software/Python/」ディレクトリにライブラリが配置されるので、これを利用する。
今回は、センサーとして、温湿度センサーを使用。
センサーの使い方は、製造元のwikiを見ると大体書いてあるので参考にするとよい。

#!/usr/bin/env python
import sys
sys.path.append('/home/pi/Desktop/GrovePi/Software/Python/')
import time
import datetime
from grovepi import *
import serial

# 温湿度センサーはD3ポートに差した
ptemperature = 3

# D3ポートをINPUTモードにする
pinMode(ptemperature,"INPUT")

# ライブラリを使えば、簡単に温湿度情報を取得できる
[temperature, humidity] = dht(ptemperature, 1)

print(temperature, humidity)

上のpythonファイルを実行すると、以下のような結果を得られる。

(28.1, 43.5)

他のセンサーも同じ要領で使用できる。
今回はデジタルポートを使うセンサーを使用したが、他のポートを使用するものもある。
ちなみにGrovePi+のポートには、デジタルポート、アナログポート、I2Cポート、RaspberryPiシリアル、GrovePiシリアルがある。

ポート情報は、ここに詳しく書いてある。