このチュートリアルはの一部です: デジタル相対湿度・温度センサー HTU21D
デジタル相対湿度・温度センサー HTU21D に関する動画。他の動画へのリンクはこの記事の下にあります。
レッスン35: ArduinoでHTU21D温度センサーを使う
このプロジェクトでは、Arduinoを使ってHTU21D-Fセンサーから温度と湿度のデータを読み取る方法を案内します。このセンサーは安価で入手しやすく、さまざまなプロジェクトに最適です。センサーは一般的なデジタル通信プロトコルであるI2Cでデータを出力します。このセンサーとI2Cの使い方を学ぶことで、プロジェクトの可能性が大きく広がります。

実用例:
- スマートホーム向け環境モニターの構築
- 気象観測所を作る
- 敏感な電子機器向けの温湿度制御型筐体の開発
- 温室やテラリウム内の温度と湿度の監視
ハードウェア/コンポーネント
以下の部品が必要です:
- Arduinoボード(例:Uno、Nano)
- HTU21D-F 温湿度センサー(動画の00:22で)
- 接続用ワイヤー
- ブレッドボード(任意だが推奨)
配線ガイド
配線は簡単です。センサーを次のようにArduinoに接続してください (動画の02:28で):
- センサーのVCCをArduinoの3.3Vに接続
- センサーのGNDをArduinoのGNDに接続する
- センサーのSDAをArduinoのA4に接続
- センサーのSCLをArduinoのA5に接続

コードの説明
提供されたコードは、センサーとやり取りするために Adafruit HTU21D-F ライブラリ(動画の03:03で)を使用しています。重要な部分は次のとおりです:
// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change
inPin: 温度センサーに接続されているアナログピンを指定します。配線に合わせて変更できます。
iterationこの変数は温度を平均化するために行う読み取り回数を制御します。増やすと精度は向上しますが、読み取りは遅くなります(動画の00:22)。
そのgetHTU()動画の08:46で示された関数は、文字('C'、'F'、'K'、または 'H')を引数として渡すことで、摂氏・華氏・ケルビンの温度、または湿度を取得できます。コードはこの関数を使ってシリアルモニタにデータを表示します。
float getTemperature(char type) {
// ... (code to read temperature and humidity) ...
if (type == 'F') {
value = averageTemperature * 9 / 5 + 32; // Fahrenheit
} else if (type == 'K') {
value = averageTemperature + 273.15; // Kelvin
} else {
value = averageTemperature; // Celsius
}
return value;
}
ライブプロジェクト/デモンストレーション
動画の07:34でセンサーの機能が示されています。シリアルモニターには温度と湿度の測定値が表示されます。動画の06:45では、プレゼンターがコードで温度の閾値に応じて動作を実行する方法も示しています。
章
- [00:00] はじめに
- [00:22] センサーの概要
- [01:22] データシートレビュー
- [02:28] 配線
- [03:03] ライブラリのインストール
- [04:05] コードの解説 (パート1)
- [08:33] コードの解説(パート2)
- [07:34] ライブ実演
このチュートリアルはの一部です: デジタル相対湿度・温度センサー HTU21D
++
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These module use I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test for two modules");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//get value for sensor 1
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
//get value for sensor 2
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
//get value for sensor 3
float temp3 = htu3.readTemperature();
float rel_hum3 = htu3.readHumidity();
//print values for sensor 1
Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
//print values for sensor 2
Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
//print values for sensor 3
//Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
//Serial.print("\t\t");
//Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");
delay(500);
}
必要かもしれないもの
-
アマゾンAmazonでHTU21Dモジュールを購入するamzn.to
-
イーベイeBayからHTU21Dを購入してください。ebay.us
-
アリエクスプレスAliExpressでHTU21DまたはSHT21を購入してください。s.click.aliexpress.com
リソースと参考文献
-
外部Adafruit HTU21Dライブラリ(GitHub)github.com
-
外部Arduinoを使用してHTU21DからLCDに温度をバーグラフとして表示するrobojax.com
-
外部HTU21D データシート (PDF)cdn-shop.adafruit.com
-
外部HTU21DFとHTU21Dの違い(画像)robojax.com
ファイル📁
Arduinoライブラリ(zip)
-
Adafruit HTU21DFライブラリ(Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB