Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Raspberry Piでセンサーを使ってみよう ~温湿度センサーの値をSlackに通知するレシピ

Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/12/19 14:00

 この連載では、約650円で買えるマイコンボードRaspberry Pi Zeroを使って、ITエンジニアがIoTを学べたり、家族で楽しんだりできるIoTレシピをご紹介していきます。今回は、Raspberry Pi Zeroにセンサーを接続し、温湿度データをグラフに表示したりSlackに自動投稿したりしてみます。

目次

センサーとは何か?

 センサーとは、温度、湿度、気圧といった環境データや、傾き、速度などを検出するための装置のことを言います。センサーにはアナログ方式と、デジタル方式といった検出方式があります。

 アナログ方式では電圧の変動によって値を表現します。ただし、Raspberry Piにはアナログ入力ピンが用意されておらず、そのままではアナログ方式が利用できません。そこで、 A/Dコンバーター(アナログ・デジタル・コンバーター)といった、アナログ信号をデジタル信号に変換する変換器を、Raspberry Piを通して、一手間掛けて利用します。

 次に、デジタル方式のセンサーでは、I2CやSPI、1wireといった通信の仕組みをおこなう高度なものから、電圧の変化のみで状態を表現するものまでさまざまです。

 本稿で紹介するのは、Raspberry Piで扱いやすいデジタル方式のセンサーになります。

温湿度センサーの紹介

 今回はセンサーを使ったRaspberry Pi Zeroの活用方法を紹介します。

 温湿度センサー「AM2302」を使って、室内の値を計測してみましょう。AM2302は、温度と湿度を同時に測定する複合センサーモジュールで、独自の1wire通信方式を採用しています。

準備するもの
名称 型番 参考価格 販売元
温湿度センサー AM2302(DHT22) 950円 秋月電子通商
ブレッドボード EIC-801 270円 秋月電子通商
抵抗10kΩ 1本(4.7kΩでも可) RD16S 10K 100円(100個入) 秋月電子通商
ジャンパーケーブル(オス×メス 3本) - 549円 -

 あとは、お手元にRaspberry Piをご準備ください。Raspberry Pi ZeroやZero Wのほか、Raspberry Pi 2/3でも同様な手順です。

前提条件

  • 必要パーツが揃っている
  • インターネット環境がある
  • Raspbian Stretchのインストール、セットアップが完了している(まだの方は第1回の記事を参照してください)

配線する

 Raspberry Piの電源を切り、microUSBを外します。以下のように配線をします。

注意

 GPIOピン23番を使用しますので、挿し間違いに注意しながら作業しましょう。挿す場所を間違えてRaspberry Piの電源を入れると、パーツやRaspberry Pi 本体が故障するなどの影響が出ますのでご注意ください。

 配線ができたら microUSBの電源を接続して Raspberry Piの電源を入れます。

必要パッケージをインストールする

 次は、温湿度センサーを使ってお部屋の温湿度を測定してみましょう。

 まずは、パッケージアップデートと、Python開発ツールをインストールします。

$ sudo apt update
$ sudo apt install build-essential python-dev

 次に、温湿度センサーのライブラリをインストールします。

 まずは以下のgit cloneコマンドでライブラリをダウンロードします。

$ git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Cloning into 'Adafruit_Python_DHT'...
remote: Counting objects: 249, done.
remote: Total 249 (delta 0), reused 0 (delta 0), pack-reused 249
Receiving objects: 100% (249/249), 77.00 KiB | 0 bytes/s, done.
Resolving deltas: 100% (142/142), done.

 Adafruit_Python_DHTディレクトリに移動し、以下のコマンドでインストールを実行します。

$ cd Adafruit_Python_DHT/
$ sudo python setup.py install

 以下のようにインストールができていれば準備完了です。

Installed /usr/local/lib/python2.7/dist-packages/Adafruit_DHT-1.3.2-py2.7-linux-armv6l.egg
Processing dependencies for Adafruit-DHT==1.3.2
Finished processing dependencies for Adafruit-DHT==1.3.2

温湿度センサーのサンプルプログラムを実行する

 GPIOピン23番を使っているため、サンプルプログラムを以下のようにpin = 'P8_11'をコメントアウトし、pin = 23のコメントアウトを外します。

$ cd /home/pi/Adafruit_Python_DHT/examples
$ nano simpletest.py
pin = 'P8_11'
#pin = 23

↓

#pin = 'P8_11'
pin = 23

 サンプルプログラムを実行し、温湿度が出力されているか確認します。

$ python simpletest.py
Temp=26.4*C  Humidity=61.0%

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 平 愛美(タイラ マナミ)

     熊本県出身のITエンジニア。2児の母で、趣味は写真とグルメ。最近はRaspberry Pi、Arduinoを使った家庭内IoTについて日々研究するIT系母ちゃんとして活躍中。主な著書は、『改訂3版 Linuxエンジニア養成読本』(寄稿、技術評論社 刊)、『Linuxシステム管理標準教科書』(共著、...

バックナンバー

連載:Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5