Arduinoで温度湿度センサDHT11を使ってみよう!

DHT11とArduinoの配線図

この記事では、Arduinoで温度湿度センサーモジュールのDHT11を使う方法を説明していく。

KKHMF DHT11 温度と湿度センサー デジタル出力
KKHMF DHT11 温度と湿度センサー デジタル出力

DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃

Amazon

開発環境

開発環境はこちら。

項目バージョン
ArduinoデバイスSeeeduino XIAO
温度湿度センサーDHT11
OLEDディスプレイDSP TECH 0.91インチディスプレイ
Arduino IDE1.8.10
パソコンmacOS Big Sur 11.0.1

「Seeeduino XIAOの使い方」はこちらを参考に

「OLCDディスプレイの使い方」はこちらを参考に

DHT11のピン端子役割

DHT11のピン端子役割
DHT11のピン端子役割

DHT11はデジタルセンサーとなっており、DATAピンでデータのやりとりをする。NCピンは使わないので、何も接続しない。

DHT11をもっと詳しく知りたい場合はこちらを参考に

Arduino IDEにDHT11ライブラリをインストールする

ArduinoプログラミングでDHT11を使いやすくするため、Adafruitの DHT sensor libraryAdafruit Unified SensorをArduino IDEインストールする

Arduino IDESketchInclude Library へ進み「dht」および「Adafruit Unified Sensor」で検索してライブラリをインストールする。

DHT sensor libraryのインストール
DHT sensor libraryのインストール

Adafruit Unified Sensorのインストール
Adafruit Unified Sensorのインストール

Adafruitのライブラリの詳細はこちら

DHT11とArduinoの配線

DHT11とArduinoの配線図
DHT11とArduinoの配線図

DHT11Seeeduino XIAO
VDD3.3V
DATAD1
NC--
GNDGND

Seeeduino XIAOではVDDを3.3Vに繋いでいるが、普通のArduinoであれば5Vに接続する。また、DHT11のDATAピンは4.7kΩの抵抗でプルアップする。

シリアルモニターに温度と湿度を表示してみよう

湿度と温度をシリアルモニターに表示させるプログラムがこちら。温度は摂氏温度となる。

/*
  Created by Toshihiko Arai.
  https://101010.fun/iot/arduino-dht11.html
*/

#include "DHT.h"
#define DATA_PIN 1 // D1

DHT dht(DATA_PIN, DHT11);

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

void loop() {

  delay(3000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed...");
    return;
  }

  int buf_size = 40;
  
  char buf_h[buf_size];
  char buf_t[buf_size];

  snprintf(buf_h, buf_size, "Humidity: %.1f", h);
  snprintf(buf_t, buf_size, "Temperature: %.1f", t);  

  Serial.println(buf_h);
  Serial.println(buf_t);  
}

今回使用した製品はこちら

KKHMF DHT11 温度と湿度センサー デジタル出力
KKHMF DHT11 温度と湿度センサー デジタル出力

DHTシリーズデジタル温湿度センサ、フル鳴ったキャリブレーション、デジタル出力、湿度測定範囲:20%~90%RH(0~50℃温度補償)、温度測定範囲:0~+50℃、湿度測定精度:±5.0%RH,温度測定精度:±2.0℃

Amazon
DSD TECH 2 PCS OLED 0.91インチディスプレイ IIC I2C シリアルポート Arduino ARM用
DSD TECH 2 PCS OLED 0.91インチディスプレイ IIC I2C シリアルポート Arduino ARM用

0.91インチのOLEDディスプレイ:解像度128 * 32、非常にクリア、黒の背景、青色のテキスト表示。 IIC(I2C)インタフェース:SPIインタフェース画面よりも4つのPIN(VCC、GND、SCL、SDA)だけが簡単です。 他のセンサーを接続するために、さらに多くのポートを残すことができます。

Amazon
Seeed Studio Seeeduino XIAO-Arduino IDE 互換ボード SAMD21 Cortex M0+搭載 ブレッドボード互換 USB Type-C(3pcs)
Seeed Studio Seeeduino XIAO-Arduino IDE 互換ボード SAMD21 Cortex M0+搭載 ブレッドボード互換 USB Type-C(3pcs)

Seeeduino XIAO開発ボードは、ARMCortex-M0+ 32ビット48MHzマイクロコントローラー(SAMD21G18)を搭載し、低消費電力です。クロック周波数は48MHzと、Arduino Uno、Arduino Nanoの3倍です。 又、このArduino IDE互換ボードには256KBのフラッシュメモリ、32KBのSRAMも搭載されています。

Amazon

Arduinoの参考書

電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版
電子部品ごとの制御を学べる! Arduino 電子工作実践講座 改訂第2版

電子パーツを自由自在に組み合わせて電子工作ができるように、Arduinoによる電子部品ごとの制御方法を詳しく解説。初心者や電子工作に躓いた人でも安心して取り組めるよう、豊富な図・写真で徹底解説。2018年発刊の「Arduino 電子工作 実践講座」の改訂版です。

KindleAmazon
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS)

本書では、開発者自らが、Arduinoの哲学、ハードウェア、ソフトウェアの基礎を解説、誰にでもできる簡単なチュートリアルを行います。

Amazon

最後まで読んでいただきありがとうございました。

「この記事が参考になったよ」という方は、ぜひ記事をシェアをしていただけるととても嬉しいです。

今後も有益な記事を書くモチベーションにつながりますので、どうかよろしくお願いいたします。↓↓↓↓↓↓↓

あなたにおすすめ