親子IoTワークショップ

マイコンとクラウドを使ってIoTとプログラミングを学ぼう

[ トップ | 開催予定・概要 | 2024-12開催 | お知らせ | Facebook ]

音湿度センサー(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

気温の単位は摂氏で湿度の単位は%です。

自習プロジェクトの目次に戻る