IFTTTを使ってESP32からSlackに通知する(入門)
今回は題名の通りIFTTTを使ってWiFi経由でESP32からSlackに通知を送るまで初心者でもわかりやすく説明していきたいと思います。
前提条件
・Slackを使っていること
・前回の記事の確認
1.ハードウェア構成
1.必要なもの
- ESP32-WROOM-32 開発ボード
- ブレッドボードなどの配線機材
- タクトスイッチ
ハードウェア

また、D4->タクトスイッチ ->GNDと繋げばどんな配線でも構いません。
- 注意:4本足があるタクトスイッチは画像のように対角同士で配線するようにしてください。
2.IFTTTの簡単な使い方
1.アカウント作成
まず下のURLにアクセスしアカウントの作成をします。


画像"アカウント作成1~2"を参考にアカウント作成を行ってください。
2.レシピ作成
IFTTTはIF This Then Thatのそれぞれ頭文字を取ったのが名前の由来です。
そしてこのThisとThatを記述したのがレシピと呼ばれています。
このレシピの作成を行っていきたいと思います。

次にThisを追加するために③のあたりをクリックします。




自分のSlackでワークスペースのURLがわからない場合は下のURLを参考にしてください。



③は画像の通りではなくても良いので自分が送りたいメッセージを記述してください。
(筆者は画像の通り行っていきます。)
④のOptionと書かれた機能の紹介は省きます。
最後に⑤で説明した通り下にあるCreate actionををクリックする。


3.Your keyを調べる
今回は特定のアドレスにアクセスしたら通知が届くような機能なのでアクセスするためのYour keyを調べていきます。


- 注意:環境によってYour keyは環境によって違うので各自で確認しておいてください。
3.動作確認
では、動作確認をしていきましょう。
使うものはハードウェア構成で記述したもので行います。
また、今回はesp32を使うのでプログラムの書き込み方など開発環境などがわからない場合は前回の記事を参考に行ってください。
細かい説明などは省くのでここから先わからなければ先にそちらを読んでから進めてください。
1.ソフトウェア
#include <Wifi.h> #include <HTTPClient.h> const char* ssid = "WiFiのssid"; const char* password = "WiFiのパスワード"; const String maker_Event = "esp32toSlack_IFTTT"; // Maker Webhooks const String maker_Key = "your key"; // Maker Webhooks String url = "https://maker.ifttt.com/trigger/" + maker_Event + "/with/key/" + maker_Key; int i = 0; bool current_button_state = false; bool before_button_state = false; unsigned long counter = 0; int http_code; HTTPClient http; void setup(){ Serial.begin(115200); WiFi.begin(ssid,password); Serial.print("connecting to WiFi."); while(WiFi.status() != WL_CONNECTED){ delay(100); i++; Serial.print("."); if(i == 100){ i = 0; return; } } Serial.println("Connected!!"); http.begin(url); pinMode(4,INPUT_PULLUP); } void loop(){ if(digitalRead(4) == LOW){ if(current_button_state == true) return; Serial.println("press!"); current_button_state = true; if(!(millis() - counter >= 10000)) return; http_code = http.GET(); if(!(http_code > 0)){ Serial.println("request failed!! try again"); return; } Serial.println("Send to Slack"); counter = millis(); }else{ current_button_state = false; } }
上記のプログラムの一部を各自の環境に合わせて書き換える必要があります。
* 4行目、二つの””(ダブルクオーテーション)の内側に自分が使っているWiFiのssidを追記
* 5行目、二つの””(ダブルクオーテーション)の内側に自分が使っているWiFiのパスワードを追記
* 8行目、二つの””(ダブルクオーテーション)の内側に先ほどメモかペースト保存しておいたyour keyを入れる
追記を終えたらesp32に書き込んでください。
2.動作内容
動作内容は起動後WiFiに接続しその後、ボタンを押したら自分で選択しておいたSlackに通知が届くようになっています。
しかし、短時間のうちに何回もアクセスしようとするとサーバ側に過剰な負荷をかけてしまうのでボタンを押しても最後にアクセスしてから約10秒たたないと再アクセスできないようになっています。(起動直後も10秒程度アクセスできないようになっています。)
- 注意:筆者は初心者なためわかりにくいプログラムになっているかもしれません。
無駄な構造になっていることもあるので飽くまで参考程度にしてください。よってプログラムの細かい説明は省くことにします。
Slackに画像"レシピ作成8"で設定しておいたTEST_Messageと送られてくれば無事動作確認の終了です。
4.まとめ
今回はIFTTTのアカウント作成からwebhookとSlackの連携を簡単に説明しました。
だらだらと説明と写真の連続で余計な部分が多く動作確認も緩すぎたかな?と思っています。(反省)
次記事にできたらesp32でHalakeにあるセンサから取得したデータをSlackに送ったり、別のサービスを連携してみるのもいいかもしらませんね。
コメント
コメントを投稿