#include <Ambient.h> // Ambient.h をインクルード
#include <DHT.h> // DHT.h をインクルード
#include <WiFi.h> // WiFi.h をインクルード
#define DHTPIN 22 // DHT センサーアウトプットピンの指定
#define DHTTYPE DHT11 // DHT型の指定
#define PERIOD 30 // delay の値を指定 (例:30 -> 30秒間間隔でデーターをAmbientに送信)
DHT dht(DHTPIN, DHTTYPE); // DHTセンサーライブラリーを使うための設定(インスタンス生成)
WiFiClient client; // WiFiClientを使うための設定(インスタンス生成)
Ambient ambient; // Ambientを使うための設定(インスタンス生成)
/***************************************/
/*** ここから 環境によって書き換える ***/
/***************************************/
//WiFi接続情報
const char* ssid = "<YOUR_SSID>";
const char* password = "<YOUR_PASSWORD>";
//Ambient接続情報
unsigned int channelId = <YOUR_CHANNEL_ID>;
const char* writeKey = "<YOUR_WRITEKEY>";
void setup() {
Serial.begin(115200); // シリアル通信の速度を指定
// Wi-Fiの初期化
WiFi.begin(ssid, password);
Serial.print("WiFi connecting");
// Wi-Fiアクセスポイントへの接続待ち
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println(" connected"); // Wi-Fi に接続したらコンソール画面に connected を表示
// チャネルIDとライトキーを指定してAmbientの初期化
ambient.begin(channelId, writeKey, &client);
dht.begin(); // DHT11の初期化
}
void loop() {
float temperature = dht.readTemperature(); // 温度読み取り
float humidity = dht.readHumidity(); // 湿度読み取り
// 読み取りに失敗しているかチェック
// 失敗している場合はもう一度、温湿度の読み取りをする
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// シリアルモニターに表示
Serial.print("温度: ");
Serial.print(temperature);
Serial.print(" *C\t ");
Serial.print("湿度: ");
Serial.print(humidity);
Serial.println(" %");
// データーがint型かfloat型であれば、直接セットすることができます。
// 1番目のデータに温度を指定。
ambient.set(1, temperature);
// 2番目のデータに湿度を指定。
ambient.set(2, humidity);
// Ambientにデータを送信
ambient.send();
// 30秒間待つ
delay(PERIOD * 1000);
}
以下の内容を全て削除します。
上記でコピーしたコードを張り付けます。
張り付けた結果、以下のようになっていることを確認します。
ファイル から 名前をつけて保存 をクリックします。
ファイル名 に temperature_humidity_ambient と入力します。保存 をクリックします。
保存しました。 と表示されることを確認します。
WiFi の ssid と password を入力します。
先ほどコピーした Ambient の チャネルID と ライトキー を貼り付けます。
検証(ビルド) をクリックし が表示される事を確認します。
ツール -> ボード で NodeMCU-32S が選択されていることを確認します。
ツール -> シリアルポート で COMx(xには1や2や3が入る) が選択されていることを確認します。
マイコンボードに書き込む をクリックし が表示される事を確認します。
シリアルモニタ をクリックします。
以下のように温度、湿度が表示される事を確認します。
Ambient を開いて、ログインする。
チャネルxxxxx をクリックします。
以下のようなグラフが表示されていたら成功です。