🌡

温湿度センサの使い方

2023/01/01に公開約1,400字

部品

https://akizukidenshi.com/catalog/g/gM-07003/

こちらの部品のプルアップ抵抗が元からついているタイプを利用した
それがついていない場合は自分でなんとかしないといけないらしい

配線

足を上にしたとき左から GND VDD DATA の順になっている
DATA はどこでもいいが D7 に繋ぐとする

ライブラリ

低レベル層を自分で書くのは難しそうだったのでこちらのライブラリを使わせてもらう

https://github.com/adafruit/DHT-sensor-library

温度を取得する例

#include <DHT.h>

DHT dht(7, DHT11);

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

void loop() {
  delay(2000);

  float temperature = dht.readTemperature();
  if (!isnan(temperature)) {
    Serial.println(temperature);
  }
}

新しいデータが取れるまで最短2秒かかるので毎回2秒待っている

湿度を取得する例

float humidity = dht.readHumidity();
if (!isnan(humidity)) {
  Serial.println(humidity);
}

温度と同じようにすればライブラリのおかげで簡単に取得できる

2秒間隔を無視して取得するとどうなる?

項目
消費電流 0.3mA(測定時)、60μA(スタンバイ時)

同じ値が返ってくるだけでエラーにはならない

しかしスペックを見ると測定時だけ消費電力が上がるのが気になった
もしかすると無駄に電力を消費してしまうかもしれない
だとすると直近2秒間は守った方がよさそう

もっと言えばリアルタイム性は求められないので数分毎取得でもいいかもしれない
が、モジュールの方で直近2秒間はキャッシュを返す仕様であれば杞憂になる

応用

植物の栽培に活かせそうだがどうやってパーツを土に埋めるだろうと思ったら同じパーツを載せた土壌専用モジュールもあるらしい
https://ja.aliexpress.com/i/33052608123.html

参考

https://github.com/adafruit/DHT-sensor-library/blob/master/examples/DHTtester/DHTtester.ino
https://burariweb.info/electronic-work/arduino-learning/arduino-temperature-humidity-sensor-dht11.html
https://rb-station.com/blogs/article/dht11-arduino-sensor

Discussion

ログインするとコメントできます