Groveセンサを使った環境チェックデバイスをつくる
第1回:ラズパイZeroとラズパイHatで電子工作を簡単に!
こんにちは、ヨシケンです!
ラズパイZeroを使った工作、第2回はSeeedのGroveという簡単にセンサが追加できる仕組みを使っていきたいと思います。差すだけで色々なセンサが使えて、それをラズパイからコントロールできる小型環境チェックデバイスをつくります。
今回の記事で必要な物一覧
・小型リチウムポリマーバッテリー
(※注意:取り扱いに十分気をつけて自己責任でお使いください)
・ラズパイZero用ケース(ラズパイStarter Kitだと、ケースも同梱されていてすぐに始められます。)
今回の記事の流れ
1. Groveセンサを使う
2. 4桁ディスプレイを使う
3. 小型環境チェックデバイスにする
4. まとめ
1.Groveセンサを使う
今回もラズパイHatとして、Seeed ReSpeakerを使っていきます。まだドライバのセットアップが済んでいない方は、Seeedのページを参照するか、前回の記事を見て設定しておいて下さいね。
ReSpeakerには、Grove端子と呼ばれるものが2つ付いています。Groveとは、Seeed社が出しているはんだ付けなしでも端子に差すだけですぐ使えるセンサ群です。
Seeedからは、このGrove端子が付いたセンサが100種類以上出ており、大抵のセンサがカバーされています。
[日本国内で販売されているGroveセンサの一部]
その中でもラズパイで使いやすい、いくつかのセンサを選んで使っていきます。まずは定番、温湿度センサを使ってみます。これは、温度と湿度の計測にDHT11というセンサを使っており、その四角いブルーのセンサが基板に付いています。基板からは4本のGrove端子が出ています。
通常、温湿度センサを使う場合は、抵抗や回路を組み、電源、GND 、出力をそれぞれ接続する必要がありますが、これは統一された4本のGrove端子に差し込めば良いだけなので、とても手軽ですね。
ではこの温湿度センサを、以下写真のように向かって左側のGrove端子に差し込みます。
このセンサをラズパイで扱うためのソフトウェアも、Seeedから提供されています。ラズパイの電源を入れ、SSHでラズパイに接続します。Seeed社のGithubページを参照し、以下赤枠の部分を参考にgrove.pyをインストールします。
ここではPython3でgrove.pyプログラム群をラズパイにインストールしています。
$ cd grove.py
$ sudo pip3 install .
$ cd grove
インストールが完了すると、groveというフォルダの中に様々なプログラムが格納されているのが分かります。ここでは、その中のgrove_temperature_humidity_sensor.pyを使います。以下のような簡単なプログラムを書いて、DHT11を使った温度と湿度の計測を行います。ReSpeakerの左側のGrove端子はGPIO3とつながっているので、それを指定します。
[サンプルプログラム grove_temp.py]
それでは、python3コマンドでこのプログラムを流してみます。
どうでしょうか?数秒に1回、温度と湿度を計測して、画面に表示してくれたのではないかと思います。
このようにGroveを差してサンプルプログラムを流用するだけで、簡単に温湿度が測れてしまうのが分かってもらえたでしょうか?
2.4桁LCDディスプレイを使ってみる
温度と湿度が測れたので、それを表示してみたいと思います。簡単に数値などが表示できる4桁LCDディスプレイもGroveから出ています。
こちらも同様にGroveの4本端子が出ています。これをReSpeakerの真ん中の端子に接続します。
4桁ディスプレイもサンプルプログラムがありますので、それを使っていきます。以下のようなサンプルプログラムをつくります。
[grove_4d.py]
そしてこのプログラムを流すと、現在時刻を表示してくれるようになりました。データ表示の方も、簡単に接続するだけで使えるようになって、本当に手軽ですね!
[時間(19:57)を表示]
それでは先ほど計測した温湿度を、このディスプレイに表示出来るようにしましょう。
先ほどつくったgrove_temp.pyとgrove_4d.pyを合わせた形のgrove_temp_4d.pyプログラムをつくります。
[grove_temp_4d.py]
このプログラムを流してみます。時間と交互に温湿度が表示されたのではないでしょうか。
[時間(19:58)、湿度 35 P(パーセント)と室温 25 C(度)を交互に表示]
3.環境チェック・デバイスにする
最後に、首からぶら下げたり、パソコンの横に置けるよう小さくまとめたデバイスにします。
また、定期的に計測結果をGoogle Spreadsheetに記録して、1日どんな状況(温度と湿度)で過ごしているかを見れるようにします。普段の部屋の中の状況を見直す良い機会になるかもしれませんね!
まず、ラズパイZeroに小型のリチウムイオンバッテリーを接続出来るようにします。この辺は前回のダッシュボタンと同じつくりです。
そして、Groveの温湿度センサとLCDが上手く収まるように配置します。
100均などで手に入れたケースに収納しました。これで後ろにゼムクリップなどを付けて、環境チェックデバイスの出来上がりです!
それでは最後に、計測結果を定期的にGoogle Spreadsheetにアップロードする機能を付けます。ラズパイからGoogle Spreadsheetへのアップロードは、IFTTTの仕組みを使うと簡単です。
IFTTT.comのサイトに行って、新規Appletをつくります。
トリガーとしてWebhooksを選びます。そこに適当なEvent Name(rpzero_temp)をセットします。
次にActionとして、Google Spreadsheetsを選びます。
“Add row to spreadsheet”を選んで、温湿度を計測毎に、スプレッドシートに行を追加していくようにします。
データ定義はとりあえず、以下のようなデフォルトで入る設定のままでも大丈夫です。
それでは、ラズパイから“rpzero_temp”というイベントを受け取ると、スプレッドシートにデータを書き込む、というようなAppletができました。
Webhooksの所を押して、自分のAccount Key(以下黒塗りの部分)をコピーしておいて下さい。この後このKeyをラズパイにセットしていきます。
ではこの接続情報を、IFTTT_URL、IFTTT_KEYとして、ラズパイのプログラムの中に組み込みます。
温湿度計から取ったデータは、受け渡しデータのValue1、2、3にセットします。
[grove_temp_4d_sheet.py]
これでプログラムを流しておくと、定期的にGoogle Spreadsheetにもデータが保持されるようになります。
パソコンの横などに付けて、部屋や自分の身の回りの温湿度をチェックしてみて下さい!
1日使ってみての結果はこのようになりました。データはGoogle Spreadsheet上にありますから、簡単にグラフなども表示できて、状況をチェックするのに最適です。
4.まとめ
ラズパイZeroとReSpeaker Hatに、Groveセンサを接続して使ってみました。
温湿度センサやLCDなど簡単に接続できて、サンプルプログラムもあるので、手軽に環境計測、表示ができたと思います。
Groveセンサはこれ以外にも、例えば音センサや明かりセンサ、空気清浄度センサなどもありますので、測ってみたいものに合わせて使ってみて下さい。
次回は、小型デバイスを部屋の中で使って、エアコンやテレビなどを操る、もっと便利なものにしていきますよ。
お楽しみに!
(ヨシケン)
今回の連載の流れ
第1回:ラズパイZeroとラズパイHatで電子工作を簡単に!
第2回:Groveセンサを使った環境チェックデバイスをつくる(今回)
第3回:声で操作するマルチリモコンをつくる!
第4回:小型ディスプレイを付けてスマートウォッチをつくる!