SHT31デジタル温度および湿度センサーモジュールI2CGY-SHT31-D環境検出

1.はじめに

SHT31デジタル温湿度センサーモジュールは新世代の温湿度センサーで、2.4〜5.5Vの広電圧で駆動でき、IIC通信を採用し、通信速度は最大1MHz、湿度精度は±2%RH、温度精度は0.3℃、動作電流は800µAです。
ここに画像の説明を挿入

回路図
名前 説明
VCC 電源2.4〜5.5V
GND 接地
SCL IICシリアルクロックライン/SPIシリアルクロックポート
SDA IICシリアルデータライン/SPIシリアルデータ入力

2.使用前の準備

ここに画像の説明を挿入

SHT31デジタル温度および湿度センサーモジュールI2CGY-SHT31-D環境検出

ここに画像の説明を挿入

オリジナルのunor3開発ボードプログラミングAtmega328PAVR8ビットマイクロコントローラー

ここに画像の説明を挿入

USB2.0プリンタデータケーブル高速スクエアポート接続アダプタケーブルAオス-Bオス

ここに画像の説明を挿入

デュポンライン
SHT31デジタル温度および湿度センサーモジュールI2CGY-SHT31-D環境検出 1
オリジナルのunor3開発ボードプログラミングAtmega328PAVR8ビットマイクロコントローラー 1
USB2.0プリンタデータケーブル高速スクエアポート接続アダプタケーブルAオス-Bオス 1
デュポンライン 若干

3.試験方法

USB2.0プリンターデータケーブル高速スクエアポート接続アダプターケーブルAオスからBオスを使用して、元のunor3開発ボードプログラミングAtmega328PAVR8ビットマイクロコントローラーに接続します。以下に示すように、オリジナルのunor3開発ボードプログラミングAtmega328PAVR8ビットマイクロコントローラーとSHT31デジタル温度および湿度センサーモジュールの接続ここに画像の説明を挿入

5V-VCC
GND-GND
SCL-SCL
SDA-SDA
Arduino IDEをインストールし、Arduino IDEを開き、[プロジェクト]をクリックしてから[ライブラリのロード]をクリックし、ライブラリマネージャーでSHT31を検索して、[インストール]をクリックします。 、下図のようにここに画像の説明を挿入
ここに画像の説明を挿入
[ファイル]、[例]、[Adafruit SHT31ライブラリ]、[SHT31test]の順にクリックし、最後に[アップロード]をクリックします。
ここに画像の説明を挿入
ここに画像の説明を挿入
は次のとおりです。

/*************************************************** 
  This is an example for the SHT31-D Humidity & Temp Sensor

  Designed specifically to work with the SHT31-D sensor from Adafruit
  ----> https://www.adafruit.com/products/2857

  These sensors use I2C to communicate, 2 pins are required to  
  interface
 ****************************************************/
 
#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"

bool enableHeater = false;
uint8_t loopCnt = 0;

Adafruit_SHT31 sht31 = Adafruit_SHT31();

void setup() {
  Serial.begin(9600);

  while (!Serial)
    delay(10);     // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("SHT31 test");
  if (! sht31.begin(0x44)) {   // Set to 0x45 for alternate i2c addr
    Serial.println("Couldn't find SHT31");
    while (1) delay(1);
  }

  Serial.print("Heater Enabled State: ");
  if (sht31.isHeaterEnabled())
    Serial.println("ENABLED");
  else
    Serial.println("DISABLED");
}


void loop() {
  float t = sht31.readTemperature();
  float h = sht31.readHumidity();

  if (! isnan(t)) {  // check if 'is not a number'
    Serial.print("Temp *C = "); Serial.print(t); Serial.print("\t\t");
  } else { 
    Serial.println("Failed to read temperature");
  }
  
  if (! isnan(h)) {  // check if 'is not a number'
    Serial.print("Hum. % = "); Serial.println(h);
  } else { 
    Serial.println("Failed to read humidity");
  }

  delay(1000);

  // Toggle heater enabled state every 30 seconds
  // An ~3.0 degC temperature increase can be noted when heater is enabled
  if (loopCnt >= 30) {
    enableHeater = !enableHeater;
    sht31.heater(enableHeater);
    Serial.print("Heater Enabled State: ");
    if (sht31.isHeaterEnabled())
      Serial.println("ENABLED");
    else
      Serial.println("DISABLED");

    loopCnt = 0;
  }
  loopCnt++;
}

第四に、実験現象

ここに画像の説明を挿入

プログラムをダウンロードした後の気温は30℃、湿度は47%RHです。

V.まとめ

ボーレートは正しく選択する必要があります。そうしないと、測定値が表示されません。

おすすめ

転載: blog.csdn.net/qq_42250136/article/details/124156669