2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nefry BTでGrove温湿度センサをサクッと扱う

Last updated at Posted at 2018-12-18

こんにちは、ちゃんとくです。この記事はNefry Advent Calendar 2018 3日目の記事です。

Nefry BTって?

Image from Gyazo

Nefry BTは「ESP-WROOM-32」というWi-Fi・BLE通信モジュールを搭載した、Arduinoと同じように開発できるマイコンボードです。

Groveという刺すだけで配線できるモジュール対応のコネクタを搭載していて、ハードウェアをあまり意識せずに開発できます。

この記事は下記のNefry BT環境構築・初期設定が済んでいる前提で進めます。

Groveって?

Image from Gyazo
中国のSeeed Studio社が開発・販売している刺すだけで配線できるモジュールです。電源、信号線がソケットにまとめられており、回路の知識があまりなくても配線を行えます。

温湿度センサ、照度センサ、磁気スイッチ、サーボモータなど基本のモジュールは大体網羅しており、現在は100種類以上あるようです。(中の人に聞いたところ「数を把握しきれていない」とのことでした…!)

Nefry BTでGroveモジュールを使った作例はたくさんあるのですが、意外と情報がまとまっていないのでこの機会に1日ずつサクッとまとめてみることにします。

何日やれるかは未定です。期待せずお待ちください。

温度・湿度を取得する

Image from Gyazo

温度・湿度を取得できる温湿度センサです。20〜90%範囲の湿度、0〜50℃の温度測定ができます。(公式Wiki

以前にもNefry BTでほぼノンプログラムな湿度管理したいで書いたのですが、エラーとか辿らずサクッとやる方法まとめです。

配線

connect.jpg

温湿度センサは「A0」というソケットに差し込みます。少し硬いですが、カチッと言うまで押し込めます。配線作業は常に電源オフの状態で行います。

温湿度センサを扱うライブラリを追加

download.png
下記リンク先のページで「Clone or Download」から「Download ZIP」を選択します(2つのページから両方ダウンロードしてください)。

library.png
Arduino IDEの**スケッチ > ライブラリをインクルード > .ZIP形式のライブラリをインストール**から、ダウンロードされたZIPファイルを2つとも追加して完了です。

プログラム

#include "DHT.h"
#incude "Nefry.h"

#define DHTPIN A0
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
	dht.begin();
	Nefry.println("温度・湿度をチェック");
}

void loop() {
	float t = dht.readTemperature();
	float h = dht.readHumidity();

	if (isnan(h) || isnan(t)) {
		Nefry.println("読み取りに失敗しました");
		return;
	}
	
	Nefry.println("湿度: " + h + " %\t");
	Nefry.print("温度: " + t + " *C");
  
	delay(2000);
}

シリアルモニタで確認

serial_monitor.png

メニューの**ツール>シリアルモニタ** を選択して開きます。

※シリアルポート接続(PCにUSB接続)できない人 → Nefryポータルの「Web Console」を見ましょう

bps.png
Nefry BTのデフォルトは115200bpsになっています。右下のbps設定を「115200bps」に変更します。

Image from Gyazo
2秒ごとに、シリアルモニタに温度と湿度が表示されて行きます。

あまり動きがないですが、息を吹きかけると湿度が上がることを確認できます。

温度・湿度が〜以上の時、な条件分岐

閾値を決めて条件分岐してみましょう。

プログラム

下記は「湿度が70%を超えた時」のサンプルです。冒頭のthreshold = 70の数字部分を任意の値に置き換えてください。

#include "DHT.h"
#incude "Nefry.h"

#define DHTPIN A0
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
const int threshold = 70;

void setup() {
	dht.begin();
	Nefry.println("温度・湿度をチェック");
}

void loop() {
	float t = dht.readTemperature();
	float h = dht.readHumidity();

	if (isnan(h) || isnan(t)) {
		Nefry.println("読み取りに失敗しました");
		return;
	}

	Nefry.println("湿度: " + h + " %\t");
	Nefry.print("温度: " + t + " *C");

	if (h > threshold) {
		Nefry.println("すごっく湿度が高いよ!");
	}

	delay(2000);
}

確認

湿度が70%以上になるとアラートメッセージが出ます。

その他

「アラートメッセージをメールやLINEに通知したい!」などという時はLINE NotifyIFTTTを使った連携が便利です。

サービス側の設定をすればLineNotify.send()IFTTT.send()といった関数でサクッと試せますので、ぜひご参照ください。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?