SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

センサーとは何か?

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

 アナログ方式では電圧の変動によって値を表現します。ただし、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%

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
カンマ区切りで時間とセンサーデータを取得しよう

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Raspberry Pi Zeroではじめよう! おうちで楽しむIoTレシピ連載記事一覧

もっと読む

この記事の著者

平 愛美(タイラ マナミ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10562 2017/12/19 14:16

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング