Slide 1

Slide 1 text

【オンライン】エッジAI入門&活用シリーズ#4『Azure IoTサービス』編 Node-RED で GCP IoT Core でつないでた仕組みを Azure IoT にライトにつなぎ変えてみる試行錯誤 ワンフットシーバス 田中正吾

Slide 2

Slide 2 text

私の話はスライドを後ほど共有します。 話す内容に注力いただいて大丈夫です!

Slide 3

Slide 3 text

田中正吾(たなかせいご) 屋号:ワンフットシーバス 2004年よりフリーランス。以後、FLASH制作を 中心にインタラクティブコンテンツを主に行い現 在に至る。 最近ではWEBフロントエンドをベースにしなが らも、情報とインターフェースが合わさるアプ ローチという視点でIoTやMixed Realityといった 技術も取り入れながら活動しています。 Microsoft MVP / IBM Champion

Slide 4

Slide 4 text

GCP IoT Core でつないでた仕組み 案件の実験を兼ねて家の部屋の状態(温度と湿度)を計測していました

Slide 5

Slide 5 text

今日は登壇用に調整したもので いろいろとリアルタイムデモしながらお伝えします 超音波距離センサ・LED・STH31 温度湿度センサを装着

Slide 6

Slide 6 text

フリーな配線は、以前いろいろ痛い目を見たので ある程度 LEGO で固定します 超音波距離センサの金具を直接 Raspberry Pi のピンに触れさせてパチッといったきり動かなくなった過去

Slide 7

Slide 7 text

ざっくりこんな仕組み Seeed 社さんの grobe.py の Python コードが制御してるものを Node-RED が Node.js 経由で制御 実は、わたくし node-red-contrib-grove-base-hat の作者なんですが 最新の Raspberry Pi OS で以前のものが上手く動かないので、今回のナレッジで動くよう近日更新予定です Grove Base HAT Raspberry Pi 4 Grove STH31 Node-RED Grove 超音波距離センサ Grove LED

Slide 8

Slide 8 text

Node-RED https://nodered.jp/ IoTなど様々なAPI/Data連携をGUIで直感的に構築できるローコードなオープンソースソフトウェア

Slide 9

Slide 9 text

このような仕組み タイムスタンプ メッセージ (JSONデータ) デバッグデータを 表示する処理 ボタンクリックを きっかけにメッセージを送る

Slide 10

Slide 10 text

Grove Base HAT につけた LED 点灯デモ

Slide 11

Slide 11 text

Grove Base HAT につけた LED 点灯デモ

Slide 12

Slide 12 text

Grove Base HAT につけた Grove 超音波距離センサーデモ

Slide 13

Slide 13 text

Grove Base HAT につけた Grove 超音波距離センサーデモ

Slide 14

Slide 14 text

STH31 温度湿度センサのデータして データを記録する

Slide 15

Slide 15 text

Google Cloud の話からいきます BigQuery に記録された様子

Slide 16

Slide 16 text

ざっくりこんな仕組み Grove Base HAT Raspberry Pi 4 Grove STH31 Node-RED Google Cloud IoT Core Google Cloud BigQuery 記録 送信

Slide 17

Slide 17 text

Node-RED はこのようなフロー

Slide 18

Slide 18 text

Node-RED では Google Cloud IoT Core ノードで 分かりやすくつなげることができます https://flows.nodered.org/node/node-red-contrib-google-cloud

Slide 19

Slide 19 text

テレメトリを送る IoT Core ノードの設定

Slide 20

Slide 20 text

Google Cloud IoT API を有効化

Slide 21

Slide 21 text

レジストリを一つ作ります

Slide 22

Slide 22 text

その中でデバイスを一つ作成

Slide 23

Slide 23 text

鍵ファイル作成がちょっとドキドキ

Slide 24

Slide 24 text

サブスクリプションで BigQuery に記録

Slide 25

Slide 25 text

BigQuery に記録された様子

Slide 26

Slide 26 text

デモしてみます! BigQuery に最新の温度湿度データが入っているか見るデモ

Slide 27

Slide 27 text

最近のびっくりお知らせ ここでは、あえてモザイクにしてます。ともあれ、これは自分を鍛えるチャンス!(前向きに)

Slide 28

Slide 28 text

Azure IoT Hub で似た仕組みを作ってみる

Slide 29

Slide 29 text

Azure IoT Hub にテレメトリを送り Cosmos DB にデータを蓄積する仕組み

Slide 30

Slide 30 text

ざっくりこんな仕組み Grove Base HAT Raspberry Pi 4 Grove STH31 Node-RED Azure IoT Hub Azure Cosmos DB 記録 送信 Azure Stream Analytics

Slide 31

Slide 31 text

Node-RED と Azure IoT Hub をつなぐところ Grove Base HAT Raspberry Pi 4 Grove STH31 Node-RED Azure IoT Hub Azure Cosmos DB 記録 送信 Azure Stream Analytics

Slide 32

Slide 32 text

Node-RED ではこのようなフロー

Slide 33

Slide 33 text

Node-RED では Azure IoT Hub ノードで 分かりやすくつなげることができます https://flows.nodered.org/node/node-red-contrib-azure-iot-hub 5 年前から変わってないけど、しっかり動くので一旦 OK

Slide 34

Slide 34 text

Node-RED で Azure IoT Hub 使う記事は こちらがとても参考になりました Node-RED で Azure IoT Hub を使う https://qiita.com/okhiroyuki/items/b45ebe451f22ad66f89b

Slide 35

Slide 35 text

ノードの直前で必要な設定を入れると送れる key は作成した IoT Hub デバイスのプライマリキーを入れます

Slide 36

Slide 36 text

まず IoT Hub をシンプルに作成

Slide 37

Slide 37 text

デバイスを作成 今回はシークレットアクセス署名で作成しました

Slide 38

Slide 38 text

プライマリキーをメモしておきます

Slide 39

Slide 39 text

コンシュマーグループを一つ作成 Stream Analytics で対応するためにつくっておく

Slide 40

Slide 40 text

Stream Analyics と Cosmos DB をつなぐところ Grove Base HAT Raspberry Pi 4 Grove STH31 Node-RED Azure IoT Hub Azure Cosmos DB 記録 送信 Azure Stream Analytics

Slide 41

Slide 41 text

まず Stream Analytics ジョブをつくる

Slide 42

Slide 42 text

こちらの記事がとても役に立ちました Azure IoT Hubで収集したデータをCosmosDBへ送信&PowerBIで可視化してみた | DevelopersIO https://dev.classmethod.jp/articles/sendig-data-from-azure-iot-hub-to-cosmos-db-with-powerbi/

Slide 43

Slide 43 text

入力の設定 コンシュマーグループ忘れず設定

Slide 44

Slide 44 text

出力の設定 素直に作成した Cosmos DB を割り当て

Slide 45

Slide 45 text

データを流すクエリ設定はこのような記述

Slide 46

Slide 46 text

ジョブをはじめるとデータが流れてきます Cosmos DB で SELECT * FROM c ORDER BY c.createdAt DESC した様子

Slide 47

Slide 47 text

デモしてみます! Cosmos DB でデータが溜まっているかどうか!

Slide 48

Slide 48 text

エクストラ 時間があれば話したい ● 超音波距離センサのデータ蓄積もできたらデモしたい ● とりあえずデータが貯まれば Power BI で可視化したり他で 活用できるようになりそう。貯まると元気になる。 ● Stream Analytics 素敵。多デバイスで力を発揮しそう。 ● 台数少な目なら、地道にこねこね Azure Functions の Azure IoT Hub バインド も良いかもしれない。 ● Azure Virtual Machine で Node-RED 動かして IoT Hub の データを一旦受けて直接 Cosmos DB にさばくのもアリかも

Slide 49

Slide 49 text

移行期の様子 Raspberry Pi 側の Node-RED で両方のクラウドに同じデータを送っている こういう両対応ができるのは Node-RED の良いところ

Slide 50

Slide 50 text

まとめ ● Node-RED の場合、うまくいけば各サービスつなぎやすく するノードがあるので活用して IoT まわりのデータを送る 仕組みもつくれる ● それぞれのサービスの違いはあるが基本的な仕組みは近く理 解できるところは多い印象。たのしい。 ● 他のクラウド実装時に楽しみつつ、ひとまずデータが貯まれ ば今までの知見を活かしていけそう