概要
NefryでGrouve温湿度センサー(Temperature&Humidity Sensor)を使うときのメモです。
環境
- Windows 10 Pro 64bit Build 1607
- Arduino IDE 1.8.1
- Nefry V2.0
環境構築
Arduino IDEにライブラリを追加
Adafruitのライブラリを利用します。GitHubから次の2つのライブラリをダウンロードし、Arduino IDEに追加します。
- Adafruit Unified Sensor Driver(Adafruit_Sensor-master.zip)
- Adafruit DHT Humidity & Temperature Unified Sensor Library(DHT-sensor-library-master.zip)
コーディング
今回は、スケッチ例の[DHT sensor library]→[DHTtester]を利用します。
まずは元コード(コメントは適宜削除)
#include "DHT.h"
#define DHTPIN 2 // what digital pin we're connected to
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
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("Failed to read from DHT sensor!");
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
これをNefry用に書き換えます。
#include <Nefry.h> // Nefryのライブラリをインクルード
#include "DHT.h"
#define DHTPIN D4 // 値をD4に変更(接続するピンに応じて変更)
#define DHTTYPE DHT11 // DHT 11に変更
DHT dht(DHTPIN, DHTTYPE);
void setup() {
//Serial.begin(9600); 削除
Nefry.println("DHTxx test!"); // SerialをNefryへ変更
dht.begin();
}
void loop() {
Nefry.ndelay(2000); // Serial.delayをNefry.ndelayへ変更
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Nefry.println("Failed to read from DHT sensor!"); // SerialをNefryへ変更
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Nefry.print("Humidity: "); // SerialをNefryへ変更
Nefry.print(h); // SerialをNefryへ変更
Nefry.print(" %\t"); // SerialをNefryへ変更
Nefry.print("Temperature: "); // SerialをNefryへ変更
Nefry.print(t); // SerialをNefryへ変更
Nefry.print(" *C "); // SerialをNefryへ変更
Nefry.print(f); // SerialをNefryへ変更
Nefry.print(" *F\t"); // SerialをNefryへ変更
Nefry.print("Heat index: "); // SerialをNefryへ変更
Nefry.print(hic); // SerialをNefryへ変更
Nefry.print(" *C "); // SerialをNefryへ変更
Nefry.print(hif); // SerialをNefryへ変更
Nefry.println(" *F"); // SerialをNefryへ変更
}
実行の様子
Nefryに書き込んだ後にNefry Consoleに接続すると図のように表示されます。
留意点
- Nefryへの接続は、NefryのWi-fiに接続した方がいい。他のアクセスポイント経由だと、タイムアウトする場合が多い。
- Seed Studioのライブラリ(Seeed-Studio/Grove_Temperature_And_Humidity_Sensor)も試したが、ハードウェアが対応していないとコンパイルエラーに。。。
参考文献
ArduinoでDHT11デジタル温度センサーをAdafruitライブラリから使う
NefryでGrove温湿度センサー(DHT11)を使うメモ