温度・湿度計測用センサーモジュールのDHT を使ってみます。
DHT11 | DHT22 |
温度(範囲-20~+60℃ 、精度 ±2℃) 湿度(範囲 5~95% 、精度 25℃で±5%) |
温度(範囲 -40~+80℃ 、 精度 max ±1℃) 湿度(範囲 0~99.9% 、 精度 25℃で±2%) |
母艦としてラズパイ4。
開発環境は、Raspberry Pi OS にデフォルトでインストールされているThonny IDE。
MicroPython をインストールしておきます。
結線
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import dht import machine import time # Initialize DHT11 sensor on GPIO 16 d = dht.DHT11(machine.Pin(16)) # Continuously read and print temperature and humidity while True: d.measure() print("Temperature:" ,d.temperature()) # Print temperature print("Humidity:" ,d.humidity()) # Print humidity time.sleep_ms(1000) # Read every second |
同様に、pin番号がGP16でモジュールがDHT22の場合、コードは以下のようになります。
d = dht.DHT22(machine.Pin(16))
温度・湿度・気圧計測用センサーモジュールのAE-BME280 を使ってみます。
Pico とはI2C 接続する場合は、J3 に半田を流し込んでジャンパーしておきます。
結線
上記と同様に母艦はラズパイ4、開発環境はThonny IDE です。
以下を実行して接続を確認します。
1 2 3 4 5 |
import machine sda=machine.Pin(16) scl=machine.Pin(17) i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000) print(i2c.scan()) |
[118]が表示されば正解。もし何も表示されない場合は、接続が間違っているか、USBケーブルを抜き差しして実行してみてください。
メニュのToolsのManage packages…を選択。
メニュが非表示の場合は、右端のSwitch to regular mode の文字リンクをクリックしてThonnyを再起動。元に戻す場合は、Tools ->Options…->UI mode -> simple で再起動。
フィールドにbme280と入力して、Search on PyPI をクリック。
インデックス画面からmicropython-bme280 を選択
installをクリック。
以下のコードを実行。
1 2 3 4 5 6 7 8 |
from machine import Pin, I2C from time import sleep from bme280 import BME280 i2c = I2C(0, sda = Pin(16), scl = Pin(17), freq = 40000) bme = BME280(i2c = i2c) while True: print(bme.values) sleep(2) |
このコードなら、2秒間隔で、温度・気圧・湿度の順で表示されます。
温度:bme.values[0]
気圧:bme.values[1]
湿度:bme.values[2]
Appendix
AE-BME280をラズパイで使う場合
第39回「ラズベリーパイ(ラズパイ)で温度・湿度・気圧をまとめて取得!AE-BME280でIC2通信」
あるいは、BME280 搭載のSwitchScience のセンサーモジュールをラズパイで使ってみる
Leave a Reply