Slackに通知

目的

目次

IFTTTのApplet生成

Trigger に Webhook を選択する

Trigger に Webhook を指定する を実施します。

Action に Slack を選択する

  1. + That をクリックします。

  2. Slack と入力します。

  3. Connect をクリックします。

  4. 以下の画面が表示される事を確認して、インストール をクリックします。

  5. 以下の画面が表示される事を確認して、Post to channel をクリックします。

  6. Channelsrandom を選択します。
    Message には下記をコピーします。

    @here YOURNAME(例:太郎)が使用しているセンサの温度 :thermometer: : {{Value1}}

    Create action をクリックします。

  7. 以下の画面が表示される事を確認してFinish をクリックします。

  8. 以下の画面が表示される事を確認します。

参照 - IFTTT Webhooks 機能を使って記事の公開時に指定したSlackのチャンネルに通知する

BlynkアプリにWebhookURLを設定

  1. BlynkアプリにWebhookURLを設定 を参考にして、以下の作業を実施します。

温湿度を取得して、温度が30度以上になったら通知を飛ばすコードをコピー

#define BLYNK_PRINT Serial    // Blynkライブラリーのデバッグ情報出力先を指定
#define BLYNK_DEBUG           // Blynkデバッグ情報を出力
#include <BlynkSimpleEsp32.h> // BlynkSimpleEsp32.h をインクルード
#include <DHT.h>              // DHT.h をインクルード
#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(humidity);
    Serial.print(" *C\t");
    Serial.print("温度: ");
    Serial.print(temperature);
    Serial.println(" % ");

    // 温度が30度以上かチェック
    // 30度以上の場合には Blynk サーバーのVirtual ピンにデータを送信
    if(temperature >= 30){
        // V0 ピンに対して温度の値を送信
        Blynk.virtualWrite(V0, temperature);
        // V1 ピンに対して温度の値を送信
        Blynk.virtualWrite(V1, humidity);
        // Blynk サーバーに送信したデータをシリアルモニターに表示
        Serial.print("温度が ");
        Serial.print(temperature);
        Serial.println(" で30度を超えました");               
    } 

    // 10秒間待ちます。
    delay(10000); 
}

参照 - Documentation

スケッチにコピーしたコードを張り付ける~結果をシリアルモニターに表示

温湿度センサー(DHT11) のアウトプットをBlynkアプリに表示(ESP -> Blynk) を参考にして、以下の作業を実施します。

温度が30度になったら通知がくるかテスト

  1. 設定した通知がくるかをテストするため、DHT11 の青い部分を触りつづけて温度を30度まで上げます。30度まで上げた後、以下の画面が表示されることを確認します。

  2. 以下のように、Slack にIFTTTから通知がきていたら成功です。

参照 - Blynk Example

参照 - IFTTT Webhooks 機能を使って記事の公開時に指定したSlackのチャンネルに通知する