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

Page content
本記事は次の記事の続編です。
1. センサー接続に初挑戦
私は特に用途を決めずに、キーボード一体型のRaspberry Pi 400を購入しましたが、それとは関係なしにいま手元には、「部屋の温度・湿度・気圧を自宅サーバ (Raspberry Pi 4) で計測したいな……」と考えて調達した、BME280というセンサーも届いている。
ちょうどいい。センサーの動作確認も兼ねて、Raspberry Pi 400での温度・湿度・気圧の取得に挑戦してみよう。ちなみにラズパイに電子部品をつなぐのは今回が初めてです。
2. 材料

テストワイヤ
サンハヤト(Sanhayat)
今回はとりあえず配線のみ試せればいいやと考えて、ブレッドボードは仕入れていません。
3. 接続手順
Raspberry Pi 400には「Raspberry Pi OS」を導入してある想定です。
- ラズパイのI2C通信の機能を有効にする
- GUI: ラズベリー印の [メニュー] > [設定] > [Raspberry Pi の設定] > [インターフェース] を開き、[I2C] を有効に切り替える → そのあと指示通りにOS再起動を行う
- CUI:
sudo raspi-config
でGUIと同様に行えるらしい
- 安全のためラズパイの電源をOFFにして、次の2つのページを参考にラズパイとセンサー間の配線を行う
# 引用元: https://qiita.com/yukataoka/items/8f9046587c978e91f689 SDI (BME280) -> SDA P03 (Raspberry Pi) SCK (BME280) -> SCL P05 (Raspberry Pi) GND (BME280) -> GND P06 (Raspberry Pi) SDO (BME280) -> GND P09 (Raspberry Pi) Vio (BME280) -> 3.3v P01 (Raspberry Pi) CSB (BME280) -> 3.3v P17 (Raspberry Pi)
- 配線済みの状態で、ラズパイの電源をONにする
- 次のコマンドを実行して、「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 --
- 次のコマンドを実行して、python2環境に
smbus2
モジュールを導入
pip --version # python 2系のpipであることを確認 sudo pip install smbus2
- 次のコマンドを実行して、スイッチサイエンス社提供の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
- 次のコマンドを実行して、温度・気圧・湿度が取得できることを確認する
$ python bme280_sample.py temp : 25.93 ℃ pressure : 1026.02 hPa hum : 51.49 %
このように、センサーからの各種の値がラズパイで取得できれば、あとはサンプルのPythonスクリプトを参考に、煮たり焼いたり、お好みで加工すればいいですね。私はThingSpeakで、これら3つの測定値のグラフを描画することを次の目標にします。
P.S. 上の写真では、ラズパイで取得した値との比較対象として、iPadで「phyphox」というアプリを開き、気圧のグラフを表示しています。