logo
Published on

Arduinoに「SHT31」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoを利用することで、様々なセンサーやモジュールを組み込んだプロジェクトを手軽に開発することができます。この記事では、温湿度センサー「SHT31」をArduinoに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. SHT31温湿度センサーの概要

SHT31は、高精度で信頼性のある温湿度センサーです。I2C通信を利用してデータを取得し、広い温湿度範囲で正確な計測が可能です。Arduinoとの組み合わせにより、室内環境のモニタリングや自動制御システムの構築などに利用されます。

2. SHT31の接続

SHT31は、通常、4つのピン(VCC、GND、SCL、SDA)を持っています。

  • VCC: 3.3Vまたは5Vの電源
  • GND: 接地
  • SCL: I2Cクロックライン
  • SDA: I2Cデータライン

これらのピンを対応するArduinoのピンに接続します。通常、Arduino UnoではA4をSDA、A5をSCLに使用します。

3. Arduinoライブラリの導入

SHT31をArduinoで使用するためには、専用のライブラリをArduino IDEに導入する必要があります。ライブラリは「Adafruit SHT31」として知られています。

  1. Arduino IDEを開き、メニューバーから「スケッチ」→「ライブラリを管理」を選択します。
  2. 検索バーに「Adafruit SHT31」を入力し、該当するライブラリを選択してインストールします。

4. Arduinoコードの作成

SHT31を制御するための基本的なコード例を以下に示します。

#include <Wire.h>
#include <Adafruit_SHT31.h>

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
  Serial.begin(9600);
  
  if (!sht31.begin(0x44)) {   // SHT31のI2Cアドレスが0x44の場合
    Serial.println("Couldn't find SHT31");
    while (1) delay(1);
  }
}

void loop() {
  float temperature = sht31.readTemperature();
  float humidity = sht31.readHumidity();
  
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print(" °C, Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  delay(1000);
}

このコードは、SHT31から温度と湿度のデータを読み取り、シリアルモニターに表示するものです。

5. コードのアップロードと動作確認

書いたコードをArduinoにアップロードし、シリアルモニターで温度と湿度のデータが正しく表示されるか確認します。

これで、ArduinoにSHT31を接続し、温湿度のモニタリングができるようになりました。利用する際は、プロジェクトの要件に合わせてセンサーデータを活用し、自動制御やデータ収集などのアプリケーションを構築することができます。