Raspberry Pi 400にセンサーつないで温度・湿度・気圧を測定

Raspberry Pi 400にセンサーつないで温度・湿度・気圧を測定
Page content

本記事は次の記事の続編です。

1. センサー接続に初挑戦

私は特に用途を決めずに、キーボード一体型のRaspberry Pi 400を購入しましたが、それとは関係なしにいま手元には、「部屋の温度・湿度・気圧を自宅サーバ (Raspberry Pi 4) で計測したいな……」と考えて調達した、BME280というセンサーも届いている。

ちょうどいい。センサーの動作確認も兼ねて、Raspberry Pi 400での温度・湿度・気圧の取得に挑戦してみよう。ちなみにラズパイに電子部品をつなぐのは今回が初めてです。

2. 材料

BME280搭載 温湿度・気圧センサモジュール ピンヘッダ実装済

BME280搭載 温湿度・気圧センサモジュール ピンヘッダ実装済

ブランド: スイッチサイエンス(Switch Science)

サンハヤト テストワイヤー メス-メス(5色、10本入り) TTW-202

サンハヤト テストワイヤー メス-メス(5色、10本入り) TTW-202

ブランド: サンハヤト

今回はとりあえず配線のみ試せればいいやと考えて、ブレッドボードは仕入れていません。

3. 接続手順

Raspberry Pi 400には「Raspberry Pi OS」を導入してある想定です。

  1. ラズパイのI2C通信の機能を有効にする
    • GUI: ラズベリー印の [メニュー] > [設定] > [Raspberry Pi の設定] > [インターフェース] を開き、[I2C] を有効に切り替える → そのあと指示通りにOS再起動を行う
    • CUI: sudo raspi-config でGUIと同様に行えるらしい
  2. 安全のためラズパイの電源をOFFにして、次の2つのページを参考にラズパイとセンサー間の配線を行う
  3. 配線済みの状態で、ラズパイの電源をONにする
  4. 次のコマンドを実行して、「76」が表示されることを確認する。これは「I2Cアドレスは0x76」であることを意味するらしい
    $ sudo apt install i2c-tools
    $ sudo i2cdetect -y 1
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: -- -- -- -- -- -- 76 --                         
    
  5. 次のコマンドを実行して、python2環境にsmbus2モジュールを導入
    pip --version # python 2系のpipであることを確認
    sudo pip install smbus2
    
  6. 次のコマンドを実行して、スイッチサイエンス社提供のBME280用サンプルコードbme280_sample.pyを取得
    $ git clone https://github.com/SWITCHSCIENCE/samplecodes
    $ cd samplecodes/BME280/Python27
    $ ls -al
    合計 16
    drwxr-xr-x 2 pi pi 4096 11月 17 23:42 .
    drwxr-xr-x 4 pi pi 4096 11月 17 23:42 ..
    -rwxr-xr-x 1 pi pi 3873 11月 17 23:42 bme280_sample.py
    -rwxr-xr-x 1 pi pi   14 11月 17 23:42 requirements.txt
    
  7. 次のコマンドを実行して、温度・気圧・湿度が取得できることを確認する
    $ python bme280_sample.py 
    temp : 25.93  ℃
    pressure : 1026.02 hPa
    hum :  51.49 %
    

このように、センサーからの各種の値がラズパイで取得できれば、あとはサンプルのPythonスクリプトを参考に、煮たり焼いたり、お好みで加工すればいいですね。私はThingSpeakで、これら3つの測定値のグラフを描画することを次の目標にします。

P.S. 上の写真では、ラズパイで取得した値との比較対象として、iPadで「‎phyphox」というアプリを開き、気圧のグラフを表示しています。