DHT11
NefryBT
NefryDay 12

DHT11でチョッパヤ室内環境可視化

ポキオ(@pokiiio)です。

Nefry Advent Calendar 2018の12日目ということで、簡単に室内環境を可視化できるモジュール(DHT11)について紹介をさせてください。(以前、私のブログでも紹介した内容な上に、kitazakiさんとダダ被りでした・・・)


神モジュールに神ライブラリ

とりあえず、なんとなく室内環境を可視化したいと思い、1つのモジュールで温度・湿度が取れるDHT11を買ってみました。

ポキオ Nefry BT DHT11

端子は3つ。5VとGNDと信号線。信号線ってことはいろいろ実装しなければならないのかなと思いきや、安心と信頼のAdafruitさんから素晴らしいライブラリが出ていたので、あとは間違えずに配線するだけです。


Good for 20-80% humidity readings with 5% accuracy

Good for 0-50°C temperature readings ±2°C accuracy


[https://learn.adafruit.com/dht:title]

精度はアレですが、非常に廉価なので問題ないでしょう。

今回は、センサーの値を直接確認できるように、ディスプレイ付きのNefry BTで動かしてみました。


実装はArduino IDEで

まずはライブラリをインストールします。

ポキオ Nefry BT DHT11

ライブラリマネージャーからDHT Sensor Library by Adafruitを探してインストール。これで実装・・・と思ったんですが、これだけではだめで、Adafruit Unified Sensor by Adafruitも必要になりますので、未インストールであればインストールしておきます。(これがないとコンパイルが通らない)

ポキオ Nefry BT DHT11

これこれ。このライブラリがあれば、信号線のピン番号で初期化して、あとはreadHumidity()だったりreadTemperature()を行うだけ。簡単すぎて逆に引きます。


Nefry BT向けのコードはこちら

#include <Nefry.h>

#include <NefryDisplay.h>
#include "DHT.h"

DHT dht(A0, DHT11);

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

void loop() {
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();

NefryDisplay.print("DHT11");

if ( isnan(humidity) || isnan(temperature) ) {
NefryDisplay.print("---[%]");
NefryDisplay.print("---[deg C]");
} else {
NefryDisplay.print(String(humidity) + "[%]");
NefryDisplay.print(String(temperature) + "[deg C]");
}

delay(1000);
}


いざ動作確認

動いてますねー。

ポキオ Nefry BT DHT11

たまにセンサー値がnanになるので、そのハンドリングはちゃんと実装しておいたほうが良さそうです。なにはともあれ、秒で実装できる素晴らしいモジュールでした。