注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
湿度・温度センサーモジュール
概要
このレッスンでは、湿度・温度センサーモジュールについて学びます。湿度と温度は、物理的な量から実際の人々の生活に至るまで密接に関連しています。 人間の環境の温度と湿度は、人体の体温調節機能と熱伝達効果に直接影響を与えます。 それはさらに、思考活動と精神状態に影響を与え、私たちの学習や仕事の効率に影響を及ぼします。
温度は国際単位系における7つの基本物理量の一つで、物体の熱さや冷たさを測るために使用されます。 摂氏は、世界でより広く使用されている温度スケールの一つで、「℃」の記号で表されます。
湿度は、空気中に存在する水蒸気の濃度です。 日常生活では、空気の相対湿度が一般的に使用され、%RHで表されます。相対湿度は温度と密接に関連しています。 一定体積の密閉されたガスにおいて、温度が高いほど相対湿度は低く、温度が低いほど相対湿度は高くなります。
このキットには、デジタル温度・湿度センサーであるdht11が提供されています。これは、周囲の空気を測定するために、容量性湿度センサーとサーミスターを使用し、データピンにデジタル信号を出力します。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全体のキットを購入すると便利です。以下がリンクです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
配線図
回路図
コード
注釈
elite-explorer-kit-main\basic_project\07-humiture_sensorのパスの下にあるファイル07-humiture_sensor.inoを直接開くことができます。または、このコードをArduino IDEにコピーします。
注釈
ライブラリのインストールには、Arduinoライブラリマネージャーを使用し、 「DHT sensor library」 と検索してインストールします。
1/*
2 This code reads the temperature and humidity values from a DHT11 sensor
3 connected to pin 11 and prints them to the serial monitor.
4 It also calculates and prints the heat index value in both Celsius and Fahrenheit.
5
6 Board: Arduino Uno R4
7 Component: Temperature and humidity module(DHT11)
8 Library: https://github.com/adafruit/DHT-sensor-library (DHT sensor library by Adafruit)
9*/
10
11#include <DHT.h>
12
13#define DHTPIN 11 // Define the pin used to connect the sensor
14#define DHTTYPE DHT11 // Define the sensor type
15
16DHT dht(DHTPIN, DHTTYPE); // Create a DHT object
17
18void setup() {
19 // Initialize the serial communication
20 Serial.begin(9600);
21 Serial.println(F("DHT11 test!"));
22
23 dht.begin(); // Initialize the DHT sensor
24}
25
26void loop() {
27 // Wait a few seconds between measurements.
28 delay(2000);
29
30 // Reading temperature or humidity takes about 250 milliseconds!
31 // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
32 float h = dht.readHumidity();
33 // Read temperature as Celsius (the default)
34 float t = dht.readTemperature();
35 // Read temperature as Fahrenheit (isFahrenheit = true)
36 float f = dht.readTemperature(true);
37
38 // Check if any reads failed and exit early (to try again).
39 if (isnan(h) || isnan(t) || isnan(f)) {
40 Serial.println(F("Failed to read from DHT sensor!"));
41 return;
42 }
43
44 // Compute heat index in Fahrenheit (the default)
45 float hif = dht.computeHeatIndex(f, h);
46 // Compute heat index in Celsius (isFahreheit = false)
47 float hic = dht.computeHeatIndex(t, h, false);
48
49 // Print the humidity, temperature, and heat index values to the serial monitor
50 Serial.print(F("Humidity: "));
51 Serial.print(h);
52 Serial.print(F("% Temperature: "));
53 Serial.print(t);
54 Serial.print(F("°C "));
55 Serial.print(f);
56 Serial.print(F("°F Heat index: "));
57 Serial.print(hic);
58 Serial.print(F("°C "));
59 Serial.print(hif);
60 Serial.println(F("°F"));
61}
コードが正常にアップロードされると、シリアルモニターに温度と湿度が継続的に表示され、プログラムが安定して実行されるにつれて、これらの2つの値はより正確になります。
コード解析
必要なライブラリのインクルードと定数の定義。 このコードの部分では、DHTセンサーライブラリを含め、このプロジェクトで使用されるピン番号とセンサータイプを定義します。
注釈
ライブラリのインストールには、Arduinoライブラリマネージャーを使用し、 「DHT sensor library」 と検索してインストールします。
#include <DHT.h> #define DHTPIN 11 // Define the pin used to connect the sensor #define DHTTYPE DHT11 // Define the sensor type
DHTオブジェクトの作成。 ここでは、定義されたピン番号とセンサータイプを使用してDHTオブジェクトを作成します。
DHT dht(DHTPIN, DHTTYPE); // Create a DHT object
Arduinoが起動したときに一度実行されるこの関数では、シリアル通信とDHTセンサーを初期化します。
void setup() { Serial.begin(9600); Serial.println(F("DHT11 test!")); dht.begin(); // Initialize the DHT sensor }
メインループ。 setup関数の後に継続的に実行される
loop()関数では、湿度と温度の値を読み取り、体感温度指数を計算し、これらの値をシリアルモニターに出力します。センサーの読み取りに失敗した場合(NaNを返す場合)、エラーメッセージを出力します。注釈
heat index は、外気温と湿度を組み合わせて外の暑さを測定する方法です。また「体感気温」または「見かけの温度」とも呼ばれます。
void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hif = dht.computeHeatIndex(f, h); float hic = dht.computeHeatIndex(t, h, false); Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.print(F("°C ")); Serial.print(f); Serial.print(F("°F Heat index: ")); Serial.print(hic); Serial.print(F("°C ")); Serial.print(hif); Serial.println(F("°F")); }