0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Watson IoT Platform を利用して TJBot を制御

Posted at

これは2020年6月25日(金)「IBM User Group Conference 2020」 にて紹介させていただいた「TJBot Zeroの活用例」の内容です

目標

Watson IoT Platform 経由で
手元のTJBot にデータを送信する

知識材料

利用環境

今回のゴール

Slack に投稿したテキストメッセージを TJBotZero に喋らせる

アプリケーションサーバ Node-RED 準備

slack からメッセージが送信されるアプリケーションサーバを設定する。

IBM IoT App ノード追加

Node-RED メニューの パレットの管理 から ノードを追加 を選び、
node-red-contrib-scx-ibmiotapp を追加する
03.png

フローを作成する

以下のノードを画像のように接続する。

  • http in
  • function
  • ibmiot out
  • (debug

04.png

http in ノード

メソッドを POST に設定し、HTTPエンドポイントのURL を適切に設定する。(例では /slack/tjbot)
10.png

function ノード

slack から送信されるメッセージにコマンドが含まれるため、コマンド部分を取り除いたメッセージを TJBot zero に送信するようにスクリプトを記述する。
image.png

function.js
msg.payload = {
    'd' : msg.payload.text.replace("tjbot", "")
};
return msg;

ibmiot out ノード

AuthenticationQuickstart に設定する。Device ID に、ユニークとなる文字列を設定する。Event Type も任意の文字列を設定しておく。
image.png

Slack 準備

アプリを管理する

Slack 画面の左上メニューから 設定と管理アプリを管理する を選択する。
01.png

Outgoing Webhook を追加

App 管理画面上部の App ディレクトリを検索outgoing を検索し、Outgoing Webhook カスタムインテグレーションを追加する。
02.png

Outgoing Webhook の設定

  • チャンネル ... どのチャンネルで反応するか
  • 引き金となる言葉 ... TJBot にメッセージを送信するコマンド
  • URL ... Slack からのメッセージを受信するアプリケーションURL (今回はNode-REDのURL)

image.png

適切に設定がおわったら、画面下部の「設定を保存する」ボタンをクリックする。

TJBot Zero 準備

IBM IoT App ノード追加

Watson IoT Platform からメッセージを受信するために、
Node-RED メニューの パレットの管理 から ノードを追加 を選び、
node-red-contrib-scx-ibmiotapp を追加する
03.png

フローを作成する

以下のノードを画像のように接続する。

  • ibmiot in
  • change
  • openjtalk
  • (debug

image.png

ibmiot in ノード

AuthenticationQuickstart に設定する。Input TypeDEvice Event に設定する。Device ID に、アプリケーションサーバで設定した文字列を設定する。
image.png

change ノード

アプリケーションサーバから Watwaon Iot Platform を経由して送信されたメッセージを、msg.payload に格納するように設定する。
image.png

実行と結果

slack で tjbot 文字列の後ろにスペースを入れて、TJBot にしゃべらせたい言葉を入力し送信する。
image.png

TJBot が「こんにちわ」とお話してくれる。
image.png

TJBot 側 応用フロー

Watson IoT Platform in ノード の後ろに GPIO を制御するノードをつなげると、メッセージをおしゃべりすると当時に、手を動かしたりLEDを光らせて通知させることもできる。
image.png

まとめ

Watson IoT Platform と TJBot を接続すると、外部のサービスから簡単にTJBot を制御できるようになる。
処理結果の通知やリマインドなどいろいろなことに活用できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?