Raspberry Pi Picoで、温度・気圧・湿度センサーBME280のテストをします。
BME280は、秋月電子のAE-BME280モジュールを使います。I2C接続で温度・気圧・湿度の測定データを読み出すことができます。I2Cアドレスは、SDOをGNDに接続した場合0x76、VDDに接続した場合は、0x77です。
接続回路図です。
Raspberry Pi PicoのI2Cは、id=0、sda=GP16、scl=GP17に設定します。
BME280の測定値から実際の温度、気圧、湿度を求めるには、補償値も含め複雑な計算が必要です。そこで、利用できるライブラリを探してみます。
Thonny IDEにおいて、ツール→Manage packages MicroPython deviceを開き、BME280で検索します。
ESP8266/ESP32用ですが、「micropython-bme280」が使えそうです。Picoにインストールします。
次のスクリプトでテストしてみました。bme.valuesで温度、気圧、湿度の測定値を読み出すことができます。
1secごとにshellに表示させてみると、測定値が小数点以下は細かく変動することが分かります。
このままでも利用できますが、生データを保証した値も読み出すことができます。bme.read_compensated_data()で、温度、気圧、湿度の順に補正後の値を読み出すことができます。
温度tは、t/100で実際の温度になります。
気圧pは、p/256/100で実際の気圧になります。
湿度hは、h/1024で実際の湿度になります。
次は、OLED表示器と組み合わせて、温度・気圧・湿度計を作ってみます。