概要
このハンズオン記事では、デバイスとして Grove IoT スターターキット for SORACOM を用いて、SORACOM Beam を介した AWS IoT Core との双方向通信を実現します。
ボード裏面のスロットに装着した SORACOM Air SIM が行うキャリア閉域網のセルラー通信で、デバイスが安全にクラウドサービスへと繋がります。そこに AWS IoT Core のサービスが組み合わさることで、デバイスで更なるアクションが起こせるようになります。例えばブザーを鳴らしたり、SMS やメールで通知させたり、DynamoDB にデータを格納したり……と、アーキテクチャの広がりが体感できる構成となっています。
このハンズオンで、デバイス側とクラウド側それぞれの仕組みをサクッと理解して、ぜひご自分でもお好みの IoT システムを作ってみてくださいね!
謝辞
当記事は SORACOM 社の許可の下、SORACOM 公式 Git Hub ページ掲載の「Wio LTE ハンズオン記事」を参考および引用させていただきました。ありがとうございます。
Wio LTE ハンズオン記事:
https://github.com/soracom/handson/wiki/Wio-LTE-%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3
必要に応じて、こちらで説明されるハンズオン手順項目へのリンクを載せます。適宜確認しつつ進めてください。
ハンズオンを行う前にご確認ください
実施における注意点(費用の発生について)
当ハンズオンは有料サービスを利用します。下記利用料金説明をあらかじめご確認ください。発生した料金は受講者負担となりますので、ご理解の上で実施ください。
SORACOMサービス各種
AWSサービス各種
接続・メッセージング・ルールエンジンの利用それぞれに料金がかかります
- 接続: 0.120 USD / 接続時間 100 万分 (無料枠: 接続時間 2,250,000 分)
-
メッセージング: 1.50 USD / 10 億件 (無料枠: メッセージ 500,000 件)
-
ルールエンジン: (トリガールールと実行アクションそれぞれに料金がかかります)0.225 USD / 100 万件 (無料枠: トリガールール・実行アクション 各 250,000 件)
-
email / email-JSON: 2 ドル / 100,000 件 (無料枠: email / email-JSON: 1,000件)
-
SMS: 100 件まで無料(それ以上は申請が必要です)
用意するもの
-
PC(Windows/Mac)
-
Wi-Fi 接続可能
-
USB Type-A ポート搭載(電力供給が 1A 以上であること)
-
OS: mac OS(10.11 El Capitan 以上) もしくはWindows(7 以上)
-
ブラウザ: Google Chrome
-
PC に対する管理者権限を持っていること(必要なソフトウェアインストールのため)
-
ブラウザでのアクセス制限(HTTP プロキシ等)がかかっていないこと(必要なソフトウェアインストールのため)
-
AWSアカウント(東京リージョンを使用)
-
SORACOM アカウント
-
SORACOM アカウントに登録済みの SORACOM Air SIM(nano サイズ)
-
(ステップ 5 を行う場合)IFTTT アカウント
-
(ステップ 5 を行う場合)Gmail アカウント
-
(ステップ 5 を行う場合)LINE アカウント
-
Wio LTE(本体、アンテナ 2本、 電源兼シリアルコンソール用 microUSB ケーブル) / 1式
-
Grove 超音波距離センサ
-
Grove ブザー
-
Grove コネクタケーブル / 2本
開発環境の準備
SORACOM 社による下記リンク先記事をご参照ください。
macOS 編
Windows 編
補足: Virtual COM Port ドライバのインストール手順について
上記リンク先に詳細な手順と動画による解説がありますので、インストールの際にご参照ください。
SORACOMアカウント作成
SORACOM アカウントの作成の手順に沿って作成してください。
有効なクレジットカードとメールアドレスが必要です。
SIM の登録
以下の手順に沿って登録してください。
- 購入したSIMカードを用意する
- メニュー左上の [SIM 登録] をクリックする
下図を参考に、下記の3つの作業を行ってください。
- SIMカードの裏面に記載されているIMSIとパスコードを入力する
-
[技術基準適合証明等について確認しました] にチェックを入れる
-
[登録] をクリックする
- [終了して元の画面に戻る] をクリックする
- 登録したSIMを選択(チェックボックスをクリック)し、[使用開始] をクリックする
ハンズオン本編
手順
ハンズオンは大きく5つのステップに分けて進めます(トラブルシュートは対応する各説明の最後にあります)。
- ステップ 1: LED 点灯
-
ステップ 2: 超音波距離センサと対象物との距離を SORACOM Harvest で可視化
-
ステップ 3: ステップ 2 で取得したデータを SORACOM Beam で MQTT 通信し AWS IoT Core に転送
-
ステップ 4: AWS IoT Core のルールエンジンを使って双方向通信
-
ステップ 5: AWS IoT Core のルールエンジンを使って AWS ・ AWS 外のサービスと連携
【作業】ステップ 1: LED 点灯
まずは、 Wio LTE 内蔵の LED と Arduino IDE のスケッチ例を利用して、LED を光らせてみます。これを通じて、“ボードへのスケッチ書き込み → プログラムの動作確認”という、今回のハンズオンで繰り返し行う基本操作の流れを確認します。
1-0. Wio LTE の電源を OFF にする
Wio LTE の microUSB ケーブルを抜き、電源を OFF にしてください。
いきなり抜いて OK です。また、すでに OFF になっている場合は次に進んでください。
1-1. スケッチを用意する
1-1-1. Arduino IDE を起動する
開発環境の準備でインストールしておいた Arduino IDE を起動してください。
- Windows の場合:スタートメニュー等から Arduino を選択する
-
macOS の場合:アプリケーションフォルダ等の中から Arduino を選択する
1-1-2. Arduino IDE メニューの[ツール] > [ボード: “Arduino/Genuino Uno”] > [Wio Tracker LTE]または[Seeed Wio LTE Cat.1]
Wio LTE をボードとして選択します。
1-1-3. Arduino IDE メニューの[ファイル] > [スケッチ例] > [Wio LTE for Arduino] > [basic] > [LedSetRGB]
Lチカするプログラムが書かれたスケッチ例を開きます。
[LedSetRGB]をクリックすると、新しいスケッチのウィンドウが立ち上がります。展開の途中でクリックすると立ち上がりませんので、ご注意ください。
1-1-4. Wio LTE と PC を接続して DFU モードにする
DFU モードに切り替える方法や現在のモードを確認する方法が分からない場合は、「開発環境の準備」引用ページ内項目「【作業】 Wio LTE の“通常モード”と“DFU モード”」をご確認ください。
注意 : Apple シリコン搭載のMac PCの場合、下記URL 手順5. libusb のインストールはRossetaを使用してください。
1-1-5. 新しく開いたウィンドウの[マイコンボードに書き込む](→)をクリックする
1-1-6. Wio LTE にスケッチが書き込めていることを確認する
下図のように Download が始まった後、
File downloaded successfully
と表示されていれば成功です。
1-2. 確認
WioLTE に流し込んだプログラムを実行させるために、WioLTE の RST ボタンを押して、“DFU モード”から“通常モード”に戻します。LED がカラフルに点灯していれば成功です。
1-3. Wio LTE の動作を止める
Wio LTE の電源を OFF(= microUSB ケーブルを抜く)にしてください。
トラブルシュート: [マイコンボードに書き込む]を実行するとポートのエラーが表示された場合
- 原因: ポートを適切に指定できていない
- 解決法: [ツール] > [シリアルポート] > [/dev/cu.usbmodem xxxxx]をクリックするを再度行ってください
トラブルシュート: [マイコンボードに書き込む]を実行するとコンパイルのエラーが表示された場合
具体的には、以下のようなエラー文が表示された場合:
exit status 1
ボードArduino/Genuino Unoに対するコンパイル時にエラーが発生しました。
- 原因: “ボード” が “Wio Tracker LTE” になっていません
-
解決法: メニューの [ツール] > [ボード: xxxxx] から Wio Tracker LTE を選択してください
トラブルシュート: [マイコンボードに書き込む]を実行すると「DFU可能なUSBデバイスがない」と出た場合
具体的には、以下のようなエラー文が表示された場合:
No DFU capable USB device available
- 原因: Wio LTE が通常モードの状態で書き込もうとした
-
解決法: Wio LTE を DFU モードにしてから、再度[マイコンボードに書き込む]を実行してください
トラブルシュート: [マイコンボードに書き込む]を実行するとJavaのエラー文が出た場合
具体的には、以下のようなエラー文が表示された場合:
java.io.IOException: jssc.SerialPortException: ....
... (省略) ...
... 4 more もしくは ... 6 more
- 原因: おもに Windows でシリアルモニタ―を表示した後に発生します。シリアルポートの解放に失敗しています
-
解決法: Arduino IDE を終了し、再度立ち上げてください。また Arduino IDE のシリアルモニターは使わずに TeraTerm を使うことで回避しやすくなります
トラブルシュート: [マイコンボードに書き込む]を実行すると「ライブラリがロードされていない」と出た場合
具体的には、以下のようなエラー文が表示された場合:
dyld: Library not loaded: /opt/local/lib/libusb-1.0.0.dylib
Referenced from: /Users/user1/Library/Arduino15/packages/Seeeduino/tools/stm32_dfu_upload_tool/1.0.0/macosx/dfu-util/dfu-util
Reason: image not found
/Users/user1/Library/Arduino15/packages/Seeeduino/tools/stm32_dfu_upload_tool/1.0.0/macosx/dfu_upload: line 5: 15851 Abort trap: 6 $(dirname $0)/dfu-util/dfu-util -d $2 -a $1 -D $3 -s $4 -R
DFU end
- 原因: macOS で libusb がインストールされていない
-
解決法: Wio LTE 開発環境の準備 / libusb のインストールを参照して libusb をインストールしてから、再度[マイコンボードに書き込む]を実行してください
トラブルシュート: その他の理由で[マイコンボードに書き込む]でエラーになる場合
上記のトラブルシュートで解決しない場合、インクルードライブラリの「Wio LTE for Arduino by Seeed K.K.」のバージョンを確認してください。
バージョンが 2.7.0 の場合、動作しないことが確認されています。
Wio LTE for Arduino by Seeed K.K が 2.7.0 になっている場合は、現在動作確認済みかつ最新であるバージョン 2.8.0 にアップデートしてください。
インクルードライブラリのバージョンの確認・更新方法
- [スケッチ] > [ライブラリをインクルード] > [ライブラリを管理…]を選択
Wio LTE for Arduino
で検索し、一覧の中から “Wio LTE for Arduino”を選択する- [バージョンを選択]で最新バージョン(2.8.0)を選び、[更新]
【作業】ステップ 2: 超音波距離センサと対象物との距離を SORACOM Harvest で可視化
SORACOM Beam での双方向通信を行う前に、まずは超音波距離センサのデータを SORACOM Harvest で可視化してみましょう。
2-0. Wio LTE の電源を OFF にする
Wio LTE の microUSB ケーブルを抜き、電源を OFF にしてください。
いきなり抜いて OK です。また、すでに OFF になっている場合は次に進んでください。
2-1. Wio LTE に SIM を取り付ける
Wio LTE に SIM(nanoサイズ)を取り付けます。
SIMを正しい場所に、正しい向きで差し込まないとデータが送信されないので注意してください。
SIM を取り出す場合は、上図でも書かれている通り、ツマミを引っ張りすぎないようご注意ください。金具が外れる恐れがあります。
2-2. Wio LTE にアンテナと超音波距離センサを取り付ける
アンテナは必ず2本取り付けてください。また超音波距離センサは、Wio LTE の D38 に取り付けてください。
今後センサを取り付ける場合は、ボードにある表記を確認した後、行ってください。
取り付けると以下の図のようになります↓
2-3. SORACOM Harvest の設定をする
2-3-1. SORACOM Webコンソール の 左上[Menu] > [SIM グループ]
2-3-2. [追加] で SIM グループを作成する
グループ名は任意のものでかまいません。この手順書ではwioHandsonGroup
とします。
2-3-3. 作成した[SIM グループ]をクリックし、 SORACOM Harvest Data の設定を[ON]にして[保存]
2-3-4. 左上[Menu] > [SIM 管理]
- Wio LTE に取り付けている SIM を選択 > [操作] > [所属グループ変更]
※SIMの判別がつかない場合は、使用しているSIMと製造番号が同一のものを使用してください
- ステップ 2-3-2.で作成した SIM グループ に所属させます
Wio LTE に取り付けている SIM の[グループ]が、先ほど作った SIM グループ名になっていることを確認します。
2-4. スケッチを作成する
2-4-1. Arduino IDE を起動する
2-4-2. メニューの [ツール] で [ボード: “Wio Tracker LTE”] もしくは [ボード: “Seeed Wio LTE Cat.1”] と表示されていることを確認する
なっていない場合、一覧から “Wio Tracker LTE” もしくは “Seeed Wio LTE Cat.1” を選んでください。
2-4-3. Arduino IDE の [ファイル] > [新規ファイル]
2-4-4. スケッチにコードを貼り付ける
立ち上がったファイルのスケッチを全て消し、以下のコードを貼り付けてください。
#include <WioLTEforArduino.h>
// https://github.com/Seeed-Studio/Grove_Ultrasonic_Ranger
#include <Ultrasonic.h>
#include <stdio.h>
#define INTERVAL (1000)
#define RECEIVE_TIMEOUT (10000)
#define ULTRASONIC_PIN (WIOLTE_D38)
Ultrasonic UltrasonicRanger(ULTRASONIC_PIN);
WioLTE Wio;// 初期化処理
// 起動時に一度だけ実行される
void setup() {
delay(200);
SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");
SerialUSB.println("### I/O Initialize.");
Wio.Init();
SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyLTE(true);
delay(500);
SerialUSB.println("### Turn on or reset.");
if (!Wio.TurnOnOrReset()) {
SerialUSB.println("### ERROR! ###");
return;
} // soracomへの接続確認
SerialUSB.println("### Connecting to \"soracom.io\".");
if (!Wio.Activate("soracom.io", "sora", "sora")) {
SerialUSB.println("### ERROR! ###");
return;
} SerialUSB.println("### Setup completed.");
}// 無限ループ
void loop() {
char data[100];
// 距離を算出するように
long distance;
distance = UltrasonicRanger.MeasureInCentimeters();
SerialUSB.println("### Open.");
// harvestとの接続確認を行う
int connectId;
connectId = Wio.SocketOpen("harvest.soracom.io", 8514, WIOLTE_UDP); // harvestに適切に接続できない場合
if (connectId < 0) {
SerialUSB.println("### ERROR! ###");
goto err;
} SerialUSB.println("### Send.");
// 表示をdistanceに変更
sprintf(data, "{\"distance\":%ld}", distance);
SerialUSB.print("Send:");
SerialUSB.print(data);
SerialUSB.println(""); // 距離データをharvestに送信
if (!Wio.SocketSend(connectId, data)) {
SerialUSB.println("### ERROR! ###");
goto err_close;
} SerialUSB.println("### Receive."); // harvestのレスポンスコードを受信
int length;
length = Wio.SocketReceive(connectId, data, sizeof (data), RECEIVE_TIMEOUT);
if (length < 0) {
SerialUSB.println("### ERROR! ###");
goto err_close;
}
if (length == 0) {
SerialUSB.println("### RECEIVE TIMEOUT! ###");
goto err_close;
}
SerialUSB.print("Receive:");
SerialUSB.print(data);
SerialUSB.println("");
err_close:
SerialUSB.println("### Close.");
if (!Wio.SocketClose(connectId)) {
SerialUSB.println("### ERROR! ###");
goto err;
}err:
delay(INTERVAL);
}
2-4-5. ライブラリのダウンロード
ライブラリを Seeed 社の GitHub リポジトリからダウンロードします↓
2-4-6. Arduino IDE の[スケッチ] > [ライブラリをインクルード] > [.ZIP 形式のライブラリをインストール… ]
ステップ 2-4-5. でダウンロードした zip ファイルをインストールしてください。
2-4-7. Wio LTE と PC を接続して DFU モードにする
2-4-8. 新しく開いたウィンドウの[マイコンボードに書き込む](→)をクリックする
新規作成したスケッチを書き込む際、保存するかどうかを聞かれるので[キャンセル]を選択してください。
2-4-9. 書き込みが完了したら、Wio LTE を通常モードにする(RST ボタンを押せば通常モードになります)
通常モードで起動次第、SORACOM Harvest へデータを送信し始めます(電源投入から送信開始までは 20 ~ 25 秒程度かかります)。
2-5. 各コンソール上でデータの取得を確認
データを取得できているのか、まずはシリアルコンソール上で確認します。
Tera Term を使用したシリアルコンソールや Arduino IDE シリアルコンソールの操作方法がわからない場合は、それぞれ下記補足内容をご確認ください。
Tera Term を使用したシリアルコンソールの表示方法(Windows をご使用の方)
[ファイル] > [新しい接続]
[シリアル] > [STMicroelectronics Virtual COM Port] > [OK]
データが表示される
Arduino IDE を使用したシリアルコンソール表示方法(Mac OS をご使用の方)
[ツール] > [シリアルポート] > [/dev/cu.usbmodem xxxxx] > [/dev/cu.usbmodem xxxxx]の”xxxxx”には環境によって異なる数字が入ります
- [/dev/cu.usbmodem xxxxx]は Wio LTE が PC と繋がっており、かつ通常モードの状態でないと表示されません
右上の[シリアルモニタ]をクリックする
センサからデータが取得できている場合、以下の図のように、距離センサの取得した値が出力されます(されない場合は、章末のトラブルシュートをお試しください)。センサの前で手の平の位置を前後させて、距離の数値が変化することを確認してください。
補足: シリアルモニタについて
シリアルモニタは、一度 SORACOM サービスとの接続に成功すると、その後接続が切れてしまっていても、Wio LTE から取得したデータが表示され続けます。接続不良が疑われる場合は、Wio LTE を再起動し、シリアルモニタも開き直してください。
SORACOM Harvest で確認
次に、データの取得を SORACOM コンソール上で確認します。
- SORACOM コンソールに移動し、対象の SIM にチェックを入れ、[操作] > [データを確認]
自分の SIM の IMSI が選択されているかを確認後、[自動更新]を ON にしてください。距離(distance)の値が表示されるようになります。
2-6. Wio LTE の動作を止める
- Wio LTE を DFU モードに切り替え、 [ファイル] > [新規ファイル] から空のスケッチを作成し Wio LTE に書き込んでください(SORACOM Harvest の設定を OFF にした後、Harvest に書き込みに行かないようにする為です)
-
Wio LTE の電源を OFF(= microUSB ケーブルを抜く)にしてください
2-7. ステップ 2-3-3. で ON にした SORACOM Harvest Data の設定を OFF にする
次のステップでは SORACOM Beam サービスを使いますので、Harvest を切ります。
2-7-1. SORACOM Webコンソール の 左上[Menu] > [SIM グループ]
2-7-2. ステップ 2-3-2. で作成した SIM グループをクリックし、SORACOM Harvest Data の設定を[OFF]にして[保存]
トラブルシュート: Wio LTE を通常モードで動かして 1 分経ってもデータが表示されない場合
具体的には、以下の画像のような状態で長時間待機している場合:
- 原因: 電波状況などによりセルラー通信に失敗している
-
解決法: RST ボタンを押して Wio LTE を再起動してください。もしくは電波状況の良い場所に移動してください
トラブルシュート: Tera Term でシリアルコンソールを表示できない場合
再度Windows 編を確認頂き、手順に間違いがないことを確認してください。
それでも、シリアルコンソールを表示できない場合は、Tera Termをアンインストールし、再度インストールしてください。
もし、上記の方法でもシリアルコンソールを表示できない場合は、Tera Term の代わりに PuTTY の使用を検討してください。
トラブルシュート: それ以外の場合
SORACOM のログを確認してください。例えば以下のようなエラーが出ている場合は、Harvest の設定が OFF になっていないかを確認してください。
オムロン製絶対圧センサー(Grove IoT スターターキットには含まれていません)を利用して“SORACOM Harvest で可視化”を行う方はこちら。
【作業】ステップ 3: ステップ 2 で取得したデータを SORACOM Beam で MQTT 通信し AWS IoT Core に転送
MQTT という軽量プロトコルを利用してデータを AWS IoT Core に送信します。MQTT では、トピック・パブリッシュ・サブスクライブという概念が重要になります。トピックとは、データを受け渡すための論理的なチャンネルのことです。送信側と受信側で同じトピックを選択することで、データの受け渡しを行うことができます。パブリッシュとはデータを送信すること、サブスクライブはデータを受信することです。
3-1. Wio LTE にブザーを取り付ける
Wio LTE から microUSB ケーブルを抜いたことを確認した後、ブザーを Wio LTE の D20 に取り付けてください。
DFUモードにした際にブザーが鳴る場合は、ブザーを外してください。
3-2. AWS IoT Core の Policy を作成する
3-2-1. AWS コンソールから IoT Core を開く
この後の操作(Amazon SNS サービスを使用する場合)に関係するため、東京リージョンを選択してください。右上のメニューから選択できます。
本手順は、AWS Console の英語画面で説明しています。AWS Console はデフォルトで日本語画面になりますので、画面左下の言語選択を[English]に変更してください。
3-2-2. サイドバーから[Secure] > [Policies] > [Create a policy](もしくは[Create])
3-2-3.以下の通り入力し、[Create]をクリックして Policy の作成を完了させる
項目 | 入力内容 |
---|---|
Name | wioHandsonPolicy |
Action | iot:* |
Resource ARN | * |
Effect | Allow |
ポリシー名は任意のものでかまいません。この手順書ではwioHandsonPolicy
とします。
Resource ARN にあらかじめ入っている文字列は消し、*
を上書きしてください。
補足: Policy について
Policy の設定を行うことで、どの操作を許可するのか、どのリソースへのアクセスを許可するのかを設定できます。
Action の指定項目は以下のようなものがあります。今回は簡略化のため、Action の項目に全ての操作を許可する iot: *
を選択しています。
また、Resource ARN の設定をすることで、どのデバイスのアクセスを許可するのか、どのトピックへのアクセスを許可するのかなどを設定できます。今回は簡略化のため全てのリソースへのアクセスを許可する*
を選択しています。
3-3. AWS IoT Core の Thing を作成する
3-3-1. AWS コンソールから IoT Core を開く
3-3-2. サイドバーの[Things] > [Register a thing](もしくは[Create])で Thing を登録する
3-3-3. [Create a single thing]をクリックする
3-3-4. [Name]だけを埋め、[Next]をクリックする
Thing 名は任意のものでかまいません。この手順書ではwioHandsonThing
とします。
3-3-5. [Create certificate]をクリックする
証明書作成の手順は Google Chrome ブラウザを使用して行ってください。
3-3-6. 証明書をダウンロードする
ここで発行される[A certificate for this thing]と[A private key]を、[Download]をクリックして保存します。
保存し終わったら、[Activate]をクリックし、[Attach a policy]をクリックします。
CA証明書のダウンロードリンクはAWSのX.509 証明書と AWS IoTに遷移します。
Amazon Trust Services エンドポイント (推奨) の中からRSA 2048 ビットキーのAmazon ルート CA 1を保存します。
3-3-7. ステップ 3-2-3.で作成したポリシーをアタッチし、[Register Thing]をクリックする
3-3-8. カスタムエンドポイントを確認する
サイドバーから[Settings]をクリックし、表示されるエンドポイントを控えておきます。
3-4. SORACOM Beam 設定
3-4-1. SORACOM Web コンソール で 左上[Menu] > [SIM グループ]
3-4-2. ステップ 2-3-2. で作成した SIM グループをクリックし、 SORACOM Beam の設定を開く
3-4-3. SORACOM Beam の[+]のプルダウン一覧の中から MQTT エントリポイント を選択する
3-4-4. SORACOM Beam の設定内容を入力し、保存する
下表に続くスクリーンショットでの説明を参考にしながら、各項目内容を入力してください。
項目 | 入力内容 |
---|---|
設定名: | wioHandsonMQTT |
種別: | Other MQTT Broker(Standard MQTT Broker) |
プロトコル: | MQTTS |
ホスト名: | 先ほど控えたAWS IoT Core のカスタムエンドポイント |
ポート番号: | 8883 |
ユーザ名: | 空欄 |
パスワード: | 空欄 |
証明書: | ON |
認証情報: | +をクリックして新しく作成 |
IMSI 付与: | ON |
設定名は任意のものでかまいません。この手順書ではwioHandsonMQTT
とします。
プロトコルはMQTTSを選択してください(MQTTではないので注意)。
- [+]をクリックして認証情報を追加する
- 認証情報 ID と概要を入力する
認証情報 ID 名は任意のものでかまいません。この手順書ではwioHandsonCert
とします。
- 「種別」に[X.509 証明書]を選択する
-
AWS IoT Core で保存した秘密鍵と証明書(クライアント証明書とCA証明書)をテキストエディタで開き、コピーして貼り付ける
このとき、
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
などを省かず、各ファイル内の内容の全てを貼り付けるよう注意してください。
- 項目を全て埋めたら、[登録]をクリックする
- IMSI の項目をクリックして[ON]にし、[保存]をクリックする
3-5. PubSubClient ライブラリのインストール
MQTT 通信を行うにあたり PubSubClient というライブラリを利用します。
3-5-1. Arduino IDE を起動する
3-5-2. Arduino IDE の [スケッチ] > [ライブラリをインクルード] > [ライブラリを管理…]
一覧の中から PubSubClient を選択しバージョン2.6.0に変更してインストールをクリックします。
mqtt pubsub
で検索すると見つけやすいです。
3-6. スケッチを作成する
3-6-1. Arduino IDE を起動する
3-6-2. メニューの [ツール] で [ボード: “Wio Tracker LTE”] もしくは [ボード: “Seeed Wio LTE Cat.1”] と表示されていることを確認する
なっていない場合、一覧から “Wio Tracker LTE” もしくは “Seeed Wio LTE Cat.1” を選んでください。
3-6-3. Arduino IDE の [ファイル] > [新規ファイル]
3-6-4. 立ち上がったファイルのスケッチを全て消し、以下のソースコードを上書きする
#include <WioLTEforArduino.h>
#include <WioLTEClient.h>
// https://github.com/knolleary/pubsubclient
#include <PubSubClient.h>
#include <stdio.h>
#include <Ultrasonic.h>
#define BUZZER_PIN (WIOLTE_D20)
#define ULTRASONIC_PIN (WIOLTE_D38)
#define APN "soracom.io"
#define USERNAME "sora"
#define PASSWORD "sora"
#define MQTT_SERVER_HOST "beam.soracom.io"
#define MQTT_SERVER_PORT (1883)
#define ID "WioHandson"
#define OUT_TOPIC "WioHandsonTopic/pub"
#define IN_TOPIC "WioHandsonTopic/sub"
#define INTERVAL (5000)
#define BUZZER_ON_TIME (100)
#define BUZZER_OFF_TIME (300)
WioLTE Wio;
WioLTEClient WioClient(&Wio);
PubSubClient MqttClient;
Ultrasonic UltrasonicRanger(ULTRASONIC_PIN);
void callback(char* topic, byte* payload, unsigned int length) {
// ブザーを3回鳴らす
for(int i=0; i<3; i++){
digitalWrite(BUZZER_PIN, HIGH);
delay(BUZZER_ON_TIME);
digitalWrite(BUZZER_PIN, LOW);
delay(BUZZER_OFF_TIME);
} // 受信データの表示処理
SerialUSB.print("Subscribe:");
for (int i = 0; i < length; i++) SerialUSB.print((char)payload[i]);
SerialUSB.println("");
}// 初期化処理
// 起動時に一度だけ実行される
void setup() {
delay(200);
SerialUSB.println("");
SerialUSB.println("--- START ---------------------------------------------------");
SerialUSB.println("### I/O Initialize.");
Wio.Init();
SerialUSB.println("### Power supply ON.");
Wio.PowerSupplyLTE(true); // D38ピンのみデフォルトで電源が供給される
// それ以外のピンを使用する場合はソフトウェア側から電源供給の設定を行う必要がある
// ブザー用にD20ピンを使うので、電源を供給する設定を追加する
Wio.PowerSupplyGrove(true); // ブザー用のピンを設定
pinMode(BUZZER_PIN, OUTPUT);
delay(500);
SerialUSB.println("### Turn on or reset.");
if (!Wio.TurnOnOrReset()) {
SerialUSB.println("### ERROR! ###");
return;
} // soracomへの接続設定と接続確認
SerialUSB.println("### Connecting to \""APN"\".");
if (!Wio.Activate(APN, USERNAME, PASSWORD)) {
SerialUSB.println("### ERROR! ###");
return;
} // MQTT接続設定と接続確認
SerialUSB.println("### Connecting to MQTT server \""MQTT_SERVER_HOST"\"");
MqttClient.setServer(MQTT_SERVER_HOST, MQTT_SERVER_PORT);
MqttClient.setCallback(callback);
MqttClient.setClient(WioClient);
if (!MqttClient.connect(ID)) {
SerialUSB.println("### ERROR! ###");
return;
}
MqttClient.subscribe(IN_TOPIC); SerialUSB.println("### Setup completed.");
}// 無限ループ
void loop() {
char data[100];
// 距離を取得
long distance;
distance = UltrasonicRanger.MeasureInCentimeters();
// 距離を表示
sprintf(data, "{\"distance\":%lu}", distance);
SerialUSB.print("Publish:");
SerialUSB.print(data);
SerialUSB.println("");
// データを送信
MqttClient.publish(OUT_TOPIC, data); unsigned long next = millis();
while (millis() < next + INTERVAL)
{
MqttClient.loop();
}
}
3-6-5. Wio LTE を PC に接続して DFU モードにする
DFUモードにした際にブザーが鳴る場合は、ブザーを外してください。
3-6-6. ウィンドウの[マイコンボードに書き込む](→)をクリックする
3-6-7. 書き込みが完了したら、Wio LTE を 通常モードにする(RST ボタンを押せば通常モードになります)
ステップ 3-6-5. でブザーを取り外している場合は、一度電源を抜き、ブザーをD20に取り付けてからWio LTEの電源を入れてください(電源ケーブルを挿す)。 通常モードで起動次第 SORACOM Beam へデータを送信し始めます(電源投入から送信開始までは 15 ~ 20 秒程度かかります)。
3-7. AWS IoT Core がデータを受け取れているか確認する
3-7-1. AWS IoT Core に戻り、[Test]をクリックする
3-7-2. サブスクライブしてみる
すべてのトピックをサブスクライブするために、ワイルドカードの意味を持つ#
を入力します。入力した後、[Subscribe to topic]をクリックします。
3-7-3. 正しくデータが送られてきていると、緑枠内のようにデータが自動で表示される
きちんと表示されていれば成功です。
3-8. [Test]で Wio LTE に対してパブリッシュする
言い換えると、Wio LTE に AWS IoT Core からのメッセージをサブスクライブさせます。ここで簡易的に双方向通信を行うことができます。
- ステップ 3-7-3. の画面上の [Publish]項目に
WioHandsonTopic/sub
と入力し、[Publish to topic]をクリックする(その際、ステップ 3-7-2. で入力した要素は消す) -
ブザーが鳴れば成功です
トラブルシュート: Beam の接続でエラーが表示される場合
- 原因: Beam の設定が間違っている
-
解決法: クライアント証明書、クライアント秘密鍵、CA 証明書が適切な場所にコピーされているかなど、設定を再度見直してください。また、AWS IoT Core の設定で、Thing に証明書がアタッチされているか、証明書が ACTIVE になっているか、証明書にポリシーがアタッチされているかなど、あわせて確認してください
AWS IoT Core で Thing・証明書・ポリシーを確認する
- AWS IoT Core のコンソールで [Manage] > [Things] > [ステップ 3-3. で作成した Thing]
- 左メニューの [Security]をクリックし、Certificate が Thing にアタッチできていることを確認する
Certificate が見当たらない場合は、[Create certificate] をクリックし、ステップ 3-3-6. に従って証明書をダウンロードしてください。
* Thing にアタッチされている Certificate をクリックする
- 証明書が ACTIVE(=有効)になっているか確認する
- 上図のように INACTIVEになっている場合、画面右上の[Actions] > [Activate]で ACTIVE にする
- 左メニューの[Policies]をクリックし、証明書にポリシーがアタッチされていることを確認する
ポリシーが見当たらない場合、下図のように、画面右上の[Actions] > [Attach policy]でポリシーをアタッチしてください。アタッチするポリシーが見つからない場合は、ステップ 3-2. に従ってポリシーを作成し、再度上記操作を行ってください。
補足: Subscription topic を#
と指定する理由
#
を指定すると、すべてのトピックをサブスクライブするようになります。今回は簡略化のためこの指定をしましたが、AWS IoT Core の環境で他のデバイスからもパブリッシュしている場合は、送信したデータが混在して表示されてしまいます。デバイスが2つ以上である場合は、[Subscribe topic] で適切なトピック設定を行なうことで、選択したトピックからのデータのみを表示させる事が可能です。
また今回は SORACOM Beam の設定で IMSI を付与していますので、WioHandsonTopic/pub/
というトピックにデータがパブリッシュされています。IMSI とは、デバイス(モノ、正確には SIM)の識別番号のことです。IMSI を付与することで、データの発信源を識別できるようになります。あるデバイスがパブリッシュした情報だけを表示したい場合は、[Subscribe topic]にWioHandsonTopic/pub/
を指定しましょう。
- 例えば、DynamoDB に格納する際、ID 属性にデバイスごとの IMSI を格納することができます
- IMSI を付与しない場合は、topic の最後に IMSI が付与されません
IMSI 付与なしの設定でサブスクライブする場合は、Topic をWioHandsonTopic/pub
に変更してください。
【作業】ステップ 4: AWS IoT Core のルールエンジンを使って双方向通信
AWS IoT Core のルールエンジンを使えば、Lambda を使用せずに AWS 内のマネージドサービスを使用する事ができます。ルールエンジンでは、「データの状況が〇〇の時に」「〇〇というアクションを行う」という一連のプログラムが AWS コンソール上で指定できます。
今回は、「距離センサが取得したデータ値が 10 cm 未満の時に」、ステップ 4 では「アクションとして[トピックにリパブリッシュ]、ステップ 5 では[Amazon SNS を利用してデータを送信]の2つを行う」ルールエンジンを設定します。
まずはルールエンジンにあるリパブリッシュの機能を利用して、AWS IoT Core 側から Wio LTE にリパブリッシュし、ブザーを鳴らしてみます。これによって、簡易的ではありますが、AWS IoT Core 側からエッジデバイスに命令を送ることが可能になります。
4-1. Act からルールを追加する
4-1-1. 左のメニューから[Act]>[Rule]を選択する
4-1-2. 次に[Create a rule](もしくは[Create])をクリックしてルールを作成する
4-1-3. 以下の通り入力していく
超音波距離センサに手を近づけ、センサとの距離を 10 cm 未満にしてください。
項目 | 入力内容 |
---|---|
Name | wioHandsonRule |
Description | 距離センサのデータ値が一定以下の時に実行される操作 |
Rule query statement | SELECT topic(3) as ID, parse_time("yyy-MM-dd HH:mm:ss",timestamp(),"Asia/Tokyo") as timestamp, distance FROM 'WioHandsonTopic/pub/#' WHERE distance < 10 |
ルール名は任意のものでかまいません。この手順書ではwioHandsonRule
とします。 上記の内容を入力した後、[Add action]をクリックします。
4-2. ルールエンジンでリパブリッシュし、ブザーを鳴らす
4-2-1. [Republish a message to an AWS IoT topic]を選択する
4-2-2. Topic 名WioHandsonTopic/sub
を入力し、[Create Role]をクリックする
4-2-3. [IAM role name]を入力する
ロール名は任意のものでかまいません。この手順書ではwioHandsonRepub
とします。
4-2-4. 先ほど作成したロールを選択し、[Add action]をクリックする
4-2-5. 作成した Action が反映されている事を確認し、[Create rule]をクリックする
4-2-6. ブザーを鳴らす 超音波距離センサに手を近づけてください。 ブザーが3回鳴れば成功です。
トラブルシュート: ブザーが鳴らない場合
- 3-7. の手順をもう一度行ってください
-
3-7-3. で確認したデータ値が 10 未満であることを確認してください
-
次に、3-8. の手順をもう一度行ってください この作業でブザーが鳴った場合は、AWS IoT Core 側のルールの設定(ステップ 4-1-3. や 4-2-2. あたり)が間違っている可能性があります。手順書と照らし合わせて、打ち間違い等がないか確認してください。
オムロン製絶対圧センサー(Grove IoT スターターキットには含まれていません)を利用して“AWS IoT Core のルールエンジンを使って双方向通信”を行う方はこちら。
【作業】ステップ 5: AWS IoT Core のルールエンジンを使ってAWS・AWS外のサービスと連携
以下は時間に余裕のある方用のハンズオンです。ルールエンジンにある Amazon SNS と DynamoDB のアクションを利用して、 * 距離データが 10 cm 未満の時に SMS を送信する * 距離データが 10 cm 未満の時に Email を送信する * IFTTT を利用して Email に届いた内容を LINE に通知する * 距離データを DynamoDB に格納する の4つの動作を実装します。
5-1. ルールエンジンで Amazon SNS を使って SMS 経由でスマホに通知を送る
5-1-1. [Act] > [wioHandsonRule
]でルールに戻り、[Add action] > [Send a message as an SNS push notification] > [Configure action]
5-1-2. 手順に沿って以下の内容を入力していく
項目 | 入力内容 |
---|---|
SNS Target | wioHandson |
Message format | RAW |
IAM role name | wioHandsonSNS |
- [Create]をクリックし、現れたボックスに
wioHandson
と入力する
SNS パブリッシュの対象となる SNS トピックを作成します。
SNS トピック名は任意のもので構いませんが、10 文字以下になるようにしてください。ルール画面から作成したSNSトピック名は、デフォルトとして、10 文字以下にする必要がある“トピック表示名”(メッセージの送信者として表示される名前)にもそのまま転用されるためです。
- SNS target 欄に先ほど作成したトピック名が表示されていることを確認する
-
Message format でRAWを選択する
-
[Create Role]をクリックして IAM Role を作成する
-
[IAM role name]のプルダウンで、作成したロール名を選択する
ロール名は任意のものでかまいません。この手順書ではwioHandsonSNSとします。
- [Add action]をクリックする
5-1-3. 新規タブで開いたAWS コンソールから SNS を開き、左メニューの[Topics]をクリックする
5-1-4. ステップ 5-1-2.で入力したトピックの ARN をクリックする
5-1-5. [Create subscription]をクリックする
5-1-6. [Protocol]のドロップダウンから[SMS]を選択し、[Endpoint]に自分の電話番号を入力して[Create subscription]をクリックする
国際電話番号表記にしてください。
例:090-xxxx-xxxx → 8190xxxxxxxx
5-1-7. 指定した電話番号に SMS が送られてくるかを確認する
SMS で距離データが 10 cm 未満の場合のみ受信できることが確認できたら成功です。
Amazon SNSサービスでは、SMS 送信の基本上限額が 1 ドルまでとなっています。また SMS 送信は海外リージョンを使用すると国際 SMS となり、すぐに 1 ドルに達してしまうため、国内のリージョンを使うようにしましょう。また、サポートに問い合わせることで上限緩和申請が可能です。
5-2. ルールエンジンで Amazon SNS を使って Gmail に通知を送る
次は、Gmail にメールが届くよう設定します。
5-2-1. Amazon SNS の画面に戻り、[Create Subscription]をクリックする
5-2-2. [Protocol]のプルダウンから[Email]を選択し、[Endpoint]に使用しても良い Gmail アドレスを入力する
この後の他サービスとの連携に関わってくるので、必ず Gmail のメールアドレスにしてください。
5-2-3. 入力したメールアドレスに確認のメールが届くので、[Confirm subscription]をクリックしてサブスクライブを許可する
許可に成功すると以下のような画面に遷移します。
5-2-4. データがメールで受信される
距離データが 10 cm 未満になると、登録した Email アドレス宛に届きます。
5-3. IFTTT を使って外部サービスと連携する
IFTTT を使って距離データを LINE に転送してみます。
下記リンクからIFTTTのサイトを開き、ログインしてください。
[注意] 現在、Gmail-LINE連携のIFTTTアプレットが使用出来ないようです。
Gmailが「IFTTT」「Gmail Backup」など外部サービスのサポートを終了、その理由は【やじうまWatch】 – INTERNET Watch
5-4の”ルールエンジンで DynamoDB にデータを格納する”に影響はありませんので、この章を飛ばし、5-4に取り組んでください。
5-3-1. 画面上部メニューの[Search]で「LINE Gmail」を検索し、 [Gmail にメールが届いたら LINE に転送]という Applet をクリックする
5-3-2.[Turn on]をクリックし、Gmail と LINE へのアクセスを[OK]で許可する
5-3-3. ログイン画面が出てくるので LINE アカウントにログインする
5-3-4. 連携を確認されるので[同意して連携する]をクリックする
5-3-5. Google アカウントへの連携も確認されるので、規約を読んだ上で[許可]をクリックする
5-3-6. IFTTT [Configure]の Target で LINE 通知先を選択 > [Save]
トラブルシュート: LINE が届かない場合
MyApplets で Applet が ON になっているかを確認します。
トラブルシュート: 外部サービスとの連携がうまくいかない場合
- 原因: SORACOM との接続が切れている
シリアルコンソールでエラーなく距離データ値が表示されていても、SORACOM との接続が切れている可能性があります(参考: 補足: シリアルモニタについて)。SORACOM との接続が途中で切れていてもシリアルコンソール上でエラーは表示されません。
- 解決法: Wio LTE を再起動(リセットボタンを押す)してください
5-4. ルールエンジンで DynamoDB にデータを格納する
5-4-1. 新しくルールを作成し、[Add action]をクリックする
以下の通り入力し、ルールを作成します。
項目 | 入力内容 |
---|---|
Name | wioHandsonRuleForDB |
Description | 距離センサのデータ値をDBに入れる |
Rule query statement | SELECT topic(3) as ID, parse_time("yyyy-MM-dd HH:mm:ss", timestamp(), "Asia/Tokyo") as timestamp, distance FROM 'WioHandsonTopic/pub/#' |
5-4-2. Action に[Split message into multiple columns of a DynamoDB table (DynamoDBv2)]を選択し追加する
5-4-3. [Create a new resource]をクリックし、DynamoDB に遷移する
5-4-4. DynamoDB に遷移した後、[Dashboard] > [Create table]
5-4-5. 以下の通り入力する
sort key は[add sort key]にチェックを入れると入力欄が出現します。
項目 | 入力内容 |
---|---|
Table name | wioHandsonDDBTable |
Partition Key | ID (String ) |
Add sort key | timestamp (String ) |
テーブル名は任意のものでかまいません。この手順書ではwioHandsonDDBTable
とします。
5-4-6. ルール作成画面に戻り、先ほど作った DDB テーブル名を反映させ、[Create Role]をクリックして新しくロールを作成する
ロール名は任意のものでかまいません。この手順書ではwioHandsonDDB
とします。
5-4-7. ロールを作成し反映させた後に[Add action]をクリックし、[Create rule]でルール作成を完了させる
5-4-8. DynamoDB のテーブルを表示し、データが格納されていることを確認する(少し時間がかかる場合があります)
更新アイコンをクリックしないと更新が反映されないので気をつけてください。
補足: ルールエンジンで起きているエラーを確認する方法
ルールエンジンを使って AWS の他のサービスと連携する際に、エラーが発生することもあります。エラーを確認するために、今回はエラーを S3 に保存するように設定します。
- Error Action 項目内の[Add action]をクリックする
- [Store a message in an Amazon S3 bucket] > [Configure action]
- [Create a new resource]をクリックする
- [Create bucket]をクリックする
- [Bucket name]にバケット名を入力する
バケット名は世界に一つのものとなりますので、既に存在するバケットと重複する名前はつけられません。--wio-handson-error
など、一意になるようなバケット名にしてください。手順書内ではwio-handson-error
とします。
- 何も変更せずに[Next]をクリックする
- 何も変更せずに[Next]をクリックする
- [Create bucket]をクリックする
- 必要な設定項目を記入する
-
[Create a new resource]の左の更新ボタンをクリックする
-
S3 bucket で作成したバケット名を選択する
-
Key に
${timestamp()}
を入力する -
[Create Role]をクリックする
-
ロールを作成する(今回は
wioHandsonS3
) -
作成したロールを選択する(今回は
wioHandsonS3
) -
[Add action]をクリックする
- 以下の画像のようになっていればOK
- エラーが S3 に格納される
今回はタイムスタンプでファイルが作成されるように設定しています。
以下の画像では「ロールの権限がないため DynamoDB に書き込めない」というエラーが記録されています。
5-5. DynamoDB のデータを「IoT.kyoto VIS」で可視化(任意)
当社の可視化ツール「IoT.kyoto VIS」を使えば、簡単に DynamoDB のデータを可視化できます。
5-5-1. 下記リンクをクリックし、[新規登録]をクリックする
5-5-2. 新規登録を行う
利用規約をご確認の上で、ご利用ください。
登録したメールアドレス宛に認証メールが送信されます。メールからリンクをクリックし承認するとアカウント作成が完了します。
5-5-3. グラフを追加する
ログイン後、右上のグラフ追加ボタンをクリックします。
追加されたグラフはデフォルトで[グラフ設定(初期設定)]が開かれています。
5-5-4. 下図のようにAWS アクセス設定と DynamoDB テーブル設定を入力する
以下の手順に従って登録を進めてください。
※グラフ設定は最下部の保存ボタンをクリックし保存を成功させないと登録されません。
認証情報ストアの追加手順
認証情報を入力し、[次へ]ボタンをクリックしてください。
認証情報ストア名は任意のもので構いません。
※AWSアクセスキー(アクセスキーとシークレットキー)はセキュリティの観点から、
必ずポリシーがAmazonDynamoDBReadOnlyAccessのみアタッチされたものをご使用ください。
接続が正しければ、入力項目が追加されます。
グラフ設定保存処理
保存ボタンをクリックし、ボタンが成功に変わったら登録完了です。
5-5-5. グラフが描画される
詳しい使用方法については、こちらをご確認ください。
最後に: 後片付け
意図しない課金を防ぐため、今回使用した SORACOM サービス・ AWS サービスでもう使用しないものは削除しましょう。またグループやロールなど、使わなくなった権限は迷子になりがちですので、今のうちに一緒に消してしまいましょう。
ステップ 5 では、複数のサービスを連携させるためにサービス間のアクセスを許可しました。セキュリティの観点から、今後利用することがないサービスのアクセス権は削除しておきましょう。
Wio LTE の片付け
下記リンク先から、SORACOM 社の Wio LTE ハンズオン記事内項目をご参照ください。
削除項目一覧: SORACOM 関連
- SIM グループ
-
wioHandsonGroup(ステップ 2 で使用)
-
認証情報
-
wioHandsonCert(ステップ 3 で MQTT 通信するために使用)【[Menu] > [セキュリティ] > [認証情報ストア]から削除】
削除項目一覧: AWS 関連
-
AWS IoT Core(以下で説明する手順に従って削除)
-
wioHandsonThing(ステップ 3 で使用)【[Manage] > [Things]に移動して削除)】
-
wioHandsonPolicy(ステップ 3 で使用)【[Secure] > [Policies]に移動して削除)】
-
wioHandsonCert(ステップ 3 で使用)【[Secure] > [Certificates]に移動して削除】
-
wioHandsonRule(ステップ 4・5 で使用)【[Act]に移動して削除】
-
wioHandsonRuleForDB(ステップ 4・5 で使用)【[Act]に移動して削除】
IoT Core 内で作成した Thing や Policy や Certificate は、削除の順番を間違えると、 Certificate が迷子になる可能性があります。なので、以下の手順に沿って削除してください。
- [Secure] > [Certificates] > [XXXX]をクリックする
XXXX は Certificate の番号なので環境によって異なります。
- [Policies]をクリックし、[wioHandsonPolicy]が存在するか確認する
- [Things]をクリックし、[wioHandsonThing]が存在するか確認する
- [Actions] > [Delete]をクリックする
- [Manage] > [Things] > [・・・] > [Delete]をクリックする
- [Secure] > [Policies] > [・・・] > [Delete]をクリックする
- AWS DynamoDB
-
wioHandsonDDBTable(ステップ 5 で使用)【テーブルを削除】
-
Amazon SNS
-
wioHandsonのサブスクリプション(ステップ 5 で使用)【[Topic]>[Subscriptions]に移動して削除】
-
wioHandson(トピック:ステップ 5 で使用)【[Topic]に移動して削除】
サブスクリプションが迷子にならないよう、トピックより先にサブスクリプションから消しましょう。
- [Topics] > [今回作成したトピック]をクリックする
- 下図のように[Deleted]と表示されれば OK(しばらくすると表示が消えるので注意)
- IAM Role
-
wioHandsonRepub(IoT Coreから Republish するための権限)
-
wioHandsonSNS(IoT Core から Amazon SNS にアクセスするための権限)
-
wioHandsonDDB(IoT Core のルールで作成した DynamoDB にアクセスするための権限)
-
wioHandsonS3(IoT Core のルールで作成した S3 バケットにアクセスするための権限)
LINE と IFTTT との連携を解除する
IFTTT 側で連携を解除する
- サービスを検索する
- [Setting]をクリックする
- [Disconnect LINE]をクリックする
LINE 側で連携を解除する
- LINE Notifyにアクセスして、ログインする
- [マイページ] > [連携中のサービス] > [解除]で連携を解除する
Gmail と IFTTT との連携を解除する
IFTTT 側で連携を解除する
- LINE の場合と同じ手順で Gmail のサービスを検索して、連携を解除する
Gmail 側で連携を解除する
- [Google アカウント] > [ログインとセキュリティ] > [アカウントにアクセスできるアプリ] > [アプリを管理]
- IFTTT のアクセス権を削除する