音湿度センサー(SHT40)を使う
SHT40という音湿度センサーを使う方法を説明します。
準備
ラズパイとSHT40は、I2Cという仕掛け(通信メカニズム)を使ってデータをやりとりします。なので、まずラズパイがI2Cを使えるように設定します。ラズパイの画面左上にあるラズベリーのアイコンをクリックし、Preferencesを選択、さらにRaspberry Pi Configurationを選択します。小さなウィンドウが表示されるので、その中の「Interfaces」のタブを選択し、「I2C」をon/enabledにします。ラズパイをリブート(再起動)するかどうか聞かれたら、Yes/OKを選んでリブートしてください。
ラズパイとの接続
次に、ラズパイとセンサーボードをワイヤーで接続します。ラズパイの電源がオフになっている状態でやってください。ワイヤーの接続が終わったらラズパイの電源を入れます。ワイヤーをラズパイから外すときは、ラズパイの電源をオフにしてからやってください。
センサーボードには2つのコネクターが付いています。どちらにワイヤーを差し込んでも構いません。ラズパイ側(GPIOのピン)とワイヤーの接続方法は以下の図の通りにしてください。
ワイヤーの接続が終わったら、ラズパイのTerminalを開き、次のコマンドを実行します。
i2cdetect -y 1
その結果が以下の写真のようになることを確認してください。数字の44が表示されれば、センサーが正しくラズパイに接続されているということです(ラズパイとセンサーがI2Cで通信できる状態になっている)。
センサーの動作テスト
まず、「CircuitPythonをインストールする」に書いてある作業をやってください。次にラズパイのTerminalで以下のコマンドをひとつづつ実行:
sudo pip3 install adafruit-circuitpython-busdevice
sudo pip3 install adafruit-circuitpython-sht4x
センサーから気温と湿度のデータを読み取るプログラムがread-temp-humidity.pyです。このプログラムは、1秒に1回センサーから気温と湿度を読み取ってプリントします。これがずっと続くので、止めるにはCtrl-Cしてください。
関数adafruit_sht4x.SHT4x()
は、センサーとのやり取りをする「通信口」のようなものを返します。ここでは、それが変数sensor
に入っています。その通信口を使ってsensor.measurements
とすると気温と湿度が返されます。
temperature, humidity = sensor.measurements
気温の単位は摂氏で湿度の単位は%です。