演習

第一回

問題1-1

void setup() {
    //LED_BUILTIN(ボード上に標準搭載されているLED=ビルトインされているLED) のデジタルピンを出力モードに設定
    pinMode(LED_BUILTIN, OUTPUT); 
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
}

問題1-2

void setup() {
    //シリアル通信のデータ転送レートをbps(baud)で指定します。
    Serial.begin(115200); 
}
void loop() {
    //デフォルトで定義されている内蔵温度センサーの関数を使用してtempratureValue結果をtempratureValueに代入します。
    int tempratureValue = temperatureRead(); 
    Serial.println(tempratureValue); //tempratureValue の結果をコンソール画面に出力します。
}

問題1-3

#include <DHT.h>          // DHT.h をインポート
#define DHTPIN 22         // DHT センサアウトプットピンの指定
#define DHTTYPE DHT11     // DHT型の指定
#define PERIOD 3         // delay の値を指定 (例:3 -> 3秒間間隔で温湿度の読み取りを実行)
DHT dht(DHTPIN, DHTTYPE); // DHTセンサーライブラリーを使うための設定(インスタンス生成)

/***************************************/
/*** ここから 環境によって書き換える ***/
/***************************************/

void setup() {
    Serial.begin(115200);  // シリアル通信の速度を指定

    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(" %");
    
    // 不快指数を求める計算
    float discomfortIndex = 0.81 * temperature + 0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

    // 不快指数をシリアルモニターに表示
    Serial.print("不快指数: ");
    Serial.println(discomfortIndex);

    // 3秒間待つ
    delay(PERIOD * 1000);
}

問題1-4

#include <DHT.h>          // DHT.h をインポート
#define DHTPIN 22         // DHT センサアウトプットピンの指定
#define DHTTYPE DHT11     // DHT型の指定
#define PERIOD 3         // delay の値を指定 (例:3 -> 3秒間間隔で温湿度の読み取りを実行)
DHT dht(DHTPIN, DHTTYPE); // DHTセンサーライブラリーを使うための設定(インスタンス生成)


void setup() {
    Serial.begin(115200);  // シリアル通信の速度を指定

    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(" %");
    
    // 不快指数を求める計算
    float discomfortIndex = 0.81 * temperature + 0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

    // 不快指数をシリアルモニターに表示
    Serial.print("不快指数: ");
    Serial.println(discomfortIndex);

    Serial.print("体感: ");
    Serial.println(calculateTemperature(discomfortIndex));

    // 1行空けて次のデータを表示
    Serial.println();
   
    // 3秒間待つ
    delay(PERIOD * 1000);
}

String calculateTemperature(float discomfortIndex){
    if (discomfortIndex < 55){
        return "寒い";
    }else if (discomfortIndex >= 55 && discomfortIndex < 60) {
        return "肌寒い";
    }else if (discomfortIndex >= 60 && discomfortIndex < 65) {
        return "何も感じない";
    }else if (discomfortIndex >= 65 && discomfortIndex < 70) {
        return "快い";
    }else if (discomfortIndex >= 70 && discomfortIndex < 75) {
        return "暑くない";
    }else if (discomfortIndex >= 75 && discomfortIndex < 80) {
        return "やや暑い";
    }else if (discomfortIndex >= 80 && discomfortIndex < 85) {
        return "暑くて汗が出る";
    }else{
        return "暑くてたまらない";
    }
}

問題1-5

void setup() {
    //LED_BUILTIN(ボード上に標準搭載されているLED=ビルトインされているLED) のデジタルピンを出力モードに設定
    pinMode(LED_BUILTIN, OUTPUT); 
    //シリアル通信のデータ転送レートをbps(baud)で指定します。
    Serial.begin(115200); 
}

void loop() {
    // put your main code here, to run repeatedly:
    // T0(GPIO04,p4)のタッチセンサー
    int touchValue = touchRead(T0);
    Serial.println(touchValue); 
    // touchValue が10以下の場合() 
    if(touchValue < 10){
        // LEDを点灯させます
        digitalWrite(LED_BUILTIN, HIGH);
    } else {
        // LEDを消灯させます。
        digitalWrite(LED_BUILTIN, LOW);
    }
    // 0.5秒間待ちます。
    delay(500); 
}

問題1-6

void setup() {
    //LED_BUILTIN(ボード上に標準搭載されているLED=ビルトインされているLED) のデジタルピンを出力モードに設定
    pinMode(LED_BUILTIN, OUTPUT); 
    //シリアル通信のデータ転送レートをbps(baud)で指定します。
    Serial.begin(115200); 
}

void loop() {
    //ESP32では、hallRead()の関数がデフォルトで定義されています。hallValue というint型を持っている変数名に、hallRead関数 hallRead() を使用して結果を hallValue に代入します。
    int hallValue = hallRead(); 
    Serial.println(hallValue);
    // hallValue が10以下の場合(N極)
    // hallValue が23以上の場合(S極)
    if(hallValue < 10 || hallValue > 25){
        // LEDを点灯させます
        digitalWrite(LED_BUILTIN, HIGH);
    } else {
        // LEDを消灯させます。
        digitalWrite(LED_BUILTIN, LOW);
    }
    // 0.5秒間待ちます。
    delay(500); 
}

第二回

問題2-1

#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 の値を指定 (例:3 -> 3秒間間隔で温湿度の読み取りを実行)
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(" %");
    
    // 不快指数を求める計算
    float discomfortIndex = 0.81 * temperature + 0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

    // 不快指数をシリアルモニターに表示
    Serial.print("不快指数: ");
    Serial.println(discomfortIndex);
   
   // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(1, temperature); 
  
    //2番目のデーターとして湿度をセット 
    ambient.set(2, humidity);
    
    // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(3, discomfortIndex); 

    // Ambientにデーターを送信         
    ambient.send();

    // 3秒間待つ
    delay(PERIOD * 1000);
}

問題2-2

#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 の値を指定 (例:3 -> 3秒間間隔で温湿度の読み取りを実行)
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(" %");
    
    // 不快指数を求める計算
    float discomfortIndex = 0.81 * temperature + 0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

    // 不快指数をシリアルモニターに表示
    Serial.print("不快指数: ");
    Serial.println(discomfortIndex);

    Serial.print("体感: ");
    Serial.println(calculateTemperature(discomfortIndex));

    // 1行空けて次のデータを表示
    Serial.println();
   
   // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(1, temperature); 
  
    //2番目のデーターとして湿度をセット 
    ambient.set(2, humidity);
    
    // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(3, discomfortIndex); 

    // Ambientにデーターを送信         
    ambient.send();

    // 30秒間待つ
    delay(PERIOD * 1000);
}

String calculateTemperature(float discomfortIndex){
    if (discomfortIndex < 55){
        return "寒い";
    }else if (discomfortIndex >= 55 && discomfortIndex < 60) {
        return "肌寒い";
    }else if (discomfortIndex >= 60 && discomfortIndex < 65) {
        return "何も感じない";
    }else if (discomfortIndex >= 65 && discomfortIndex < 70) {
        return "快い";
    }else if (discomfortIndex >= 70 && discomfortIndex < 75) {
        return "暑くない";
    }else if (discomfortIndex >= 75 && discomfortIndex < 80) {
        return "やや暑い";
    }else if (discomfortIndex >= 80 && discomfortIndex < 85) {
        return "暑くて汗が出る";
    }else{
        return "暑くてたまらない";
    }
}

問題2-3

#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);

    //LED_BUILTIN(ボード上に標準搭載されているLED) のデジタルピンを出力モードに設定
    pinMode(LED_BUILTIN, OUTPUT); 

    dht.begin(); //  DHT11の初期化
}

void loop() {
    float outsideTemperatureValue = dht.readTemperature(); // 温度読み取り
    float humidityValue = dht.readHumidity();   // 湿度読み取り

    // 読み取りに失敗しているかチェック
    // 失敗している場合はもう一度、温湿度の読み取りをする
    if (isnan(outsideTemperatureValue) || isnan(humidityValue)) {
       Serial.println("Failed to read from DHT sensor!");
       return;
    }
    
    //デフォルトで定義されている内蔵温度センサーの関数を使用してtempratureValue結果をinternalTemperatureValueに代入します。
    int internalTemperatureValue = temperatureRead(); 

    //ESP32にはhallRead()関数がデフォルトで定義されています。hallValue というint型の変数に、hallRead()関数を使用して結果を hallValue に代入します。
    int hallValue = hallRead(); 

    // outsideTemperatureValue の結果をコンソール画面に出力します。
    Serial.print("outsideTemperatureValue: ");
    Serial.print(outsideTemperatureValue);

    // humidityValue の値をコンソール画面に出力します。
    Serial.print(", humidityValue: ");
    Serial.print(humidityValue);
    
    // tempratureValue の結果をコンソール画面に出力します。
    Serial.print(" internalTemperatureValue: ");
    Serial.print(internalTemperatureValue);

    // T0(GPIO04,p4)のtouch sensor の値をコンソール画面に出力します。
    Serial.print(", touchValue: ");
    Serial.print(touchRead(T0));

    // hallValue の結果をコンソール画面に出力します。
    Serial.print(", hallValue: " );
    Serial.println(hallValue);

    // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(1, outsideTemperatureValue); 
  
    //2番目のデーターとして湿度をセット 
    ambient.set(2, humidityValue);
    
    // データーがint型かfloat型であれば、直接セットすることができます。
    // 1番目のデーターとして温度をセット。
    ambient.set(3, internalTemperatureValue); 
  
    //2番目のデーターとしてタッチセンサの値をセット 
    ambient.set(4, touchRead(T0));

    //3番目のデーターとしてhallValueをセット 
    ambient.set(5, hallValue);
  
    // Ambientにデーターを送信         
    ambient.send();                   
  
    // 30秒間待つ
    delay(PERIOD * 1000);             
}

問題2-4

#include <Ambient.h>      // Ambient.h をインクルード
#include <DHT.h>          // DHT.h をインクルード
#include <WiFi.h>         // WiFi.h をインクルード
#define DHTPIN 22         // DHT センサアウトプットピンの指定
#define DHTTYPE DHT11     // 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);

    if(temperature >= 30){
        // Ambientにデーターを送信         
        ambient.send();
        Serial.println("Ambient にデータを送信しました。");
    }

    // 30秒間待つ
    delay(PERIOD * 1000);                   
}

問題2-5

#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() {
    //LED_BUILTIN(ボード上に標準搭載されているLED=ビルトインされているLED) のデジタルピンを出力モードに設定
    pinMode(LED_BUILTIN, OUTPUT); 
  
    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);

    // LEDを点灯させます
    digitalWrite(LED_BUILTIN, HIGH);
    // Ambientにデーターを送信         
    ambient.send();
    Serial.println("Ambient にデータを送信しました。");
    // LEDを消灯させます。
    digitalWrite(LED_BUILTIN, LOW);
    // 30秒間待つ
    delay(PERIOD * 1000);                   
}

問題3-1

#define BLYNK_PRINT Serial    // Blynkライブラリーのデバッグ情報出力先を指定
#define BLYNK_DEBUG           // Blynkデバッグ情報を出力
#include <BlynkSimpleEsp32.h> // BlynkSimpleEsp32.h をインクルード
#include <DHT.h>              // DHT.h をインクルード
#define BLYNK_PRINT Serial    // Blynkライブラリーのデバッグ情報出力先を指定
#define DHTPIN 22             // DHTセンサーアウトプットピンの指定
#define DHTTYPE DHT11         // DHT型の指定
DHT dht(DHTPIN, DHTTYPE);     // DHTセンサーライブラリーを使うための設定

/***************************************/
/*** ここから 環境によって書き換える ***/
/***************************************/

//WiFi接続情報
const char* ssid     =  "<YOUR_SSID>";
const char* password =  "<YOUR_PASSWORD>";
//Blynk接続情報
const char* auth = "<YOUR_AUTH>";

void setup() {
    Serial.begin(115200);  //シリアル通信の速度を指定

    dht.begin(); //  DHT11の初期化

    // auth, ssid, pass を指定してBlynkの初期化
    Blynk.begin(auth, ssid, password);
}

void loop() {
    Blynk.run(); //  Blynkの起動
        
    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(" %");

    // 不快指数を求める計算
    float discomfortIndex = 0.81 * temperature + 0.01 * humidity * (0.99 * temperature - 14.3) + 46.3;

    // 不快指数をシリアルモニターに表示
    Serial.print("不快指数: ");
    Serial.println(discomfortIndex);

    Serial.print("体感: ");
    Serial.println(calculateTemperature(discomfortIndex));
    
    // V0 ピンに対して温度の値を送信
    Blynk.virtualWrite(V0, temperature);
    
    // V1 ピンに対して湿度の値を送信
    Blynk.virtualWrite(V1, humidity);

    // V2 ピンに対して不快指数の値を送信
    Blynk.virtualWrite(V2, discomfortIndex);

    // V3 ピンに対して体感を送信
    Blynk.virtualWrite(V3, calculateTemperature(discomfortIndex));

    // 1行空けて次のデータを表示
    Serial.println();
    
    delay(2000);// 2秒間待つ
}

String calculateTemperature(float discomfortIndex){
    if (discomfortIndex < 55){
        return "寒い";
    }else if (discomfortIndex >= 55 && discomfortIndex < 60) {
        return "肌寒い";
    }else if (discomfortIndex >= 60 && discomfortIndex < 65) {
        return "何も感じない";
    }else if (discomfortIndex >= 65 && discomfortIndex < 70) {
        return "快い";
    }else if (discomfortIndex >= 70 && discomfortIndex < 75) {
        return "暑くない";
    }else if (discomfortIndex >= 75 && discomfortIndex < 80) {
        return "やや暑い";
    }else if (discomfortIndex >= 80 && discomfortIndex < 85) {
        return "暑くて汗が出る";
    }else{
        return "暑くてたまらない";
    }
}