センサーとは何か?
センサーとは、温度、湿度、気圧といった環境データや、傾き、速度などを検出するための装置のことを言います。センサーにはアナログ方式と、デジタル方式といった検出方式があります。
アナログ方式では電圧の変動によって値を表現します。ただし、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%