Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

ノンコーディングでIoTを楽しむ話


オルターブースアドベントカレンダー4日目は、知念が担当します。
今回はちょっと長い内容になりますので、お付き合いいただけると嬉しいです!

adventar.org

 

普段の業務は主に、KOSMISCHというサービスの開発をC#を使って行っています。

kosmisch.jp

 

電子工作のレベルは素人ですが、IoTに興味がありIoT ALGYAN(あるじゃん)というコミュニティに参加しています。
福岡でも今年は3回程ハンズオンを開催しました。

algyan.connpass.com

 

このコミュニティで出会ったのが、Seeed株式会社様から発売されているReButtonです。

 

このReButtonを使ってノンコーディングでIoTを楽しめるものを作ってみよう!ということで、ReButtonをクリックするとSlackに投稿する機能を作ってみました。

 

 構成

 

f:id:sakusakulager:20191203101456p:plain

ReButton + IoT Central + Logic Apps + Slackを組み合わせた構成です。 

 

必要なもの

  1. Azureのアカウント
    ・「従量課金」のサブスクリプションが必要です。
    ・Azure Active Directoryでユーザーを追加してください。
     その際、ユーザーとサブスクリプションを紐づけます。
        「ロールの割り当て」で設定できます。
     「Microsoftアカウント」ユーザーでは、IoT CentralとLogic Appsを連携させる
     際にエラーが発生します。
  2.  ReButton
    ReButtonを動かすには、単4電池が2個必要です。
  3. Slack
    ・アカウントをお持ちでない方は、アカウント作成してください。 
    ・投稿用のワークスペースとチャネルを準備してください。

 

 IoT Centralについて

IoT CentralはフルマネージドのSaaSです。

IoT の管理、運用、開発の負担とコストの削減を支援するホスト型の拡張可能なサービスです。

もう少し細かい概要は、こちらの資料の9~13ページ目を読んでみてください。

speakerdeck.com

 

 

IoT Plug and Playについて

今年の5月にBuildでアナウンスがあり、8月からプレビュー版が利用可能となりました。

IoT Plug and Playに認定されたデバイスとIoT Centralはシームレスに統合するソリューションを構築できます。

ReButtonもIoT Plug and Play認定デバイスなので、簡単に連携させることが出来ます。

azure.microsoft.com

 

 

Logic Appsについて

Logic Appsについては、弊社松本の連載や登壇資料をご覧ください!

ascii.jp

 

www.slideshare.net

 

手順

1.ReButtonの設定とIoT Centralでアプリケーション作成

ReButtonの設定とIoT Centralでアプリケーションの作成は、IoT ALGYANの有志で作成したこちらのコンテンツの1章を進めてください。

github.com

 

2.Logic AppsとIoT Centralを繋ぐ

Logic AppsとIoT Centralを繋いでいきます。
今回はLogic Apps側で何も準備していない状態です。

 IoT Centralのデバイステンプレートでイベントルールの設定を行います

イベントルールの名前と条件を設定し、一度保存します。

条件は「メッセージが発生」というトリガーにしています。

「メッセージが発生」というのは、今回ですとReButtonを押したアクションという捉え方をしてもらうとイメージしやすいと思います。

 

保存後にアクションを追加します。

アクションの右側のプラスをクリックすると、右側に追加出来る項目が表示されます。

その中からAzure Logic Appsをクリックして進めてください。

f:id:sakusakulager:20191203214639p:plain



3.Logic Appsでロジックアプリを作成する

 3-1.空のロジックアプリから作成

f:id:sakusakulager:20191203215319p:plain

 

 3-2. Azure IoT Centralをトリガーとして選択

f:id:sakusakulager:20191203215727p:plain

 

 3-3. Azure IoT Centralにサインイン

f:id:sakusakulager:20191203215857p:plain

 

 3-4. IoT Centralで作成したアプリケーションとルールを選択

f:id:sakusakulager:20191203215923p:plain

ここまでが、IoT CentralとLogic Appsの連携になります。
(Rule名が上のIoT Centralのイベント画像と違うのは気にしないでください・・・)

この後、Logic AppsとSlackの連携を引き続き同じロジックアプリ内で繋げていきます。

 

 3-5.条件分岐のスイッチコネクタを設定
条件分岐する内容として、IoT Centralで設定している「メッセージ」を今回は利用しました。(赤枠部分)

IoT Centralのデバイステンプレートで作成したイベントが選択出来る様です。

 

メッセージには、Single ClickやDouble Clickなどの値が入っているので、それを分岐条件としています。(緑枠部分)

条件に合った場合、Slackコネクタを追加します。(追加する際、ログイン画面が表示されると思います。)

Slackコネクタでは、投稿するチャネル名、投稿するメッセージテキストを設定します。

f:id:sakusakulager:20191203221434p:plain


保存をして有効状態にすると完了です!
 

結果

Logic Apps側でReButtonがどの様に押されたかを条件分岐させ、それぞれにSlackに投稿する文章を割り当てました。
その結果がこちらです。
ReButtonでクリックしてから投稿まで、20秒程のタイムラグが発生します。

f:id:sakusakulager:20191203120142p:plain

まとめ

ノンコーディングでサクサクとここまで進めることが出来ました。

今までは、デバイスとクラウドを繋ぐ事も少し手間が必要だったのですが、IoT Centralはアプリケーションやテンプレートを作るというイメージが分かりやすいなと思いました。

 

また、今回初めてLogic Appsを触ってみたのですが、スムーズにIoT CentralやSlackと
連携出来ることが分かりました。

ちょっとしたシステムならこれで楽出来るなぁと思ったので、色々なサービスと繋いで今後も遊んでみようと思います。 

 

IoTは難しそうと思われていますが、クラウド側もデバイス側も日々進化しているので、情報を追ってみるのも面白いかもしれませんね!

 

参考資料