Beggining of IoT on Microsoft Azure : Hands-on

306 Views

October 13, 22

スライド概要

クローズドイベントでM5Stack Core 2とUIFlowを使ってAzureにつないだIoTのハンズオンを行いました。

profile-image

勉強会とかで作った資料をおいてます。

関連スライド

各ページのテキスト
1.

Beginning of IoT on Microsoft Azure : Hands - on silkyfeel : Yuki Izumoto

2.

Profile : Yuki Izumoto • 泉本 優輝 • Freelance : Consultant / Manager / Designer / Developer / Photographer • Microsoft MVP for Windows Development • 日本で7人、世界で58人らしい。11年目。 • サービス開発、PoC、技術提案を。 2 /87

4.

2021 Sessions • Common Sense in Software Development • システムエンジニアと仕事をするために知っておくこと • プロジェクトを始める前とその進め方 • 開発手法とマネジメント • Introducing Data First, Data Platform and Data Ready • データファーストから始めるDX • データファーストのためのデータストア • データの利用と価値創造 4 /87

5.

Agenda • What is IoT • 今回使う IoT Edge デバイスとセンサーと開発環境 • Hands - on • 電子工作:Lチカ、Lチカカスタム、気温測定 • IoT on Microsoft Azure • Hands On IoT : Azure にセンサーデータを送信する。 • 技術選定と技術設計と貯めたデータの活用 • まとめ 5 /87

6.

Takeaway • 具体的な技術の話。 • IoTとはなにか。 • IoTとはどうやってできているのかを知る。 • クラウドサービスとノーコードでのIoT開発を体験してみる。 • なにか1つでも学びがあれば嬉しい。 6 /87

7.

Okotowari • 聞いたことないワード、分からないワードがあれば 手を挙げなくて良いので、その場で聞いてください。 • 1人が分からないことは、他の参加者も分からない可能性が あるので大いに助かります。 • 座学は大まかなトピックのみとします(結構書いたけど。 細かい話、正しい話が聞きたければ、また聞いてください。 7 /87

8.

Okotowari • IoT機器や周辺機器は、変な処理をすると… • 壊れます。火傷します。煙でます。燃えます。 • 最低限中学理科の電気の知識は必要。 • でも、恐れずに色々やってみて。 • 壊したらなんとかしてね。大丈夫!高くないよ! • Web参加者へ ハンズオンなのでフォローできません。 8 /87

9.

What is IoT 9 /87

10.

Internet of Things • 日本語ではモノのインターネット。 • 大昔はインターネットといえばPCのみだった。 • 現代ではモバイルを始め、テレビ、鍵、水道メーターなどの家 電(スマートホーム)、車、飛行機、POS、畑、家畜、気象観 測機 など、多くのものがインターネットに繋がっている。 • IoT:色々なものをインターネットに繋ぐ技術や在り方 • IoT Edge:繋がれるもの。 10 /87

11.

Internet of Things • モノがインターネットを経由して通信する。 • IoTでモノを操作する。 • モノの状態を知る。 • モノ同士でデータを送受信する。 • デジタルツインのエッジとも言えるかも。 11 /87

12.

Internet of Everything • 色々なものをインターネットに繋げる意義はなにか。 • そこに生まれるデータに価値がある。 • そのデータから計算される即時通知や即時判断、未来予知に価値が ある。 • その計算結果を人間が使うことによって、生まれるビジネスに価値 がある。 • そういったインターネットによって一繋ぎになる、モノ、データ、 人をまとめてIoEと呼んだりする(バズワードっぽいが…) 12 /87

13.

Example… 13 /87

14.

Electronics to IoT • ゲーム機器 • カセットに書き込み。 • 継続開発・バグフィックスをインターネットからアップデート。 • 車 • 100%人による運転。 • 経路提案、渋滞予測、事故ったときの自動オペレーター対応。 14 /87

15.

How made IoT 15 /87

16.

Edge : マイコン 16 /87

17.

Micro Controller • マイコンは、和製英語なので日本語。 • 正しくはマイクロコントローラー。MCUとも。 • 現代ではOSの存在しない組み込みデバイスを示すことが多 い。 17

18.

MCU • マイクロコントローラーユニット。 • MCUに短期記憶(メモリ)、長期記憶(ストレージ)、中央 処理装置(CPU)などなど、計算処理に必要なものが1つの チップにまとまってる。 18 /87

19.

MPU • マイクロプロセッサーユニット。 • 計算処理だけが可能なチップ。MCUより速く賢い。 • (使える命令セットが多い。) • MCUと違って計算処理だけ可能なチップなので、短期記憶 (メモリ)、長期記憶(ストレージ)、などなどは別で必要。 且つ外部装置を管理する機能を持つ。 • MPUがもっともっと速く賢くいっぱい集まって、現代のCPU。 19 /87

20.

SoC • System on a Chip • システムに必要なチップをぜんぶ1つにまとめたもの。 • CPU、GPU、メモリ、WiFi、BTなどなど。 • 最新のAndroidのSoCってSnapdragon 888 よねーとか。 20 /87

21.

Embedded • こういうチップで機器を組み込み機器とか呼んだりする。 • 炊飯器とか、電卓とか、電子レンジとか、テレビとか、ケータ イとかとか、世の電化製品のほぼすべて。 • とはいえ最近は高性能過ぎてPCより速かったりもする。。。 21 /87

22.

One board Micro Controller • プログラミング学習だったり、評価、プロトタイピングだった り、組み込み開発だったり。 • 製品開発のために専用で開発することが多い。 • 現代では、より広い顧客向けに小さく 扱いやすくしたボードが製品ある。 • シングルボードコンピューター。 22

23.

Single Board Computer • Arduino、IchigoJam、PICMICRO、BeagleBoard、Gainer、 Intel Galileo、Intel Edison、Adapteva Parallella、Raspberry Pi、LilyPad、Seeduino Xiao、AZ3166 etc… • ワンボードマイコンのような限定的な利用ではなくなってる。 • 小型、低価格、低消費電力 • PCのような入出力、画面出力、通信、GPIO、プリセットセン サー 23 /87

24.

Single Board Computer • で、ここにもどってくる。 • IoTなんて技術がでてきたのは、IC/LSI技術向上の賜物。 24 /87

25.

Sensor 25 /87

26.

Sensor • 温度、湿度、加速度、ジャイロ、赤外線、空気圧、マイク、 光、人感、カメラ、照度、圧力、距離、振動、バーコード、 GPS、NFC、回転角速… • IoTでは、このあたりのセンサー情報を集めて得られる現象を 把握・利用して、どういった利益を挙げられるかが目的。 26 /87

27.

Sensor Type • センサーはマイコンのGPIOに回路を組んで利用する。 • センサーの種類は大きく3つ。 • デジタルセンサー • アナログセンサー • I2Cセンサー 27 /87

28.

Digital Sensor • デジタルセンサー用のGPIOに接続する。区別しないボードも ある。 • 0もしくは1の値がGPIOに出力される。 • あるかないかを検出するセンサーがこのタイプ。 • スイッチとか人感センサーとか。 28 /87

29.

Analog Sensor • アナログセンサー用のGPIOに接続する。区別しないボードも ある。 • 0-255や0-1024の値がGPIOに出力される。 • 物によっては校正が必要。 • 0だったら0度で255だったら359度だから、128は180度だね とか。 • 温度センサーとか。 29 /87

30.

I2C Sensor • IC2センサー用のGPIOに接続する。ないボードもある。 • 0 or 1や0-255のような生データではなく、センサー値がセン サー内のマイコンで処理され、実データが出力される。 • 高い。わかりやすい。使いやすい。ライブラリがあればなお良 し。 30 /87

31.

Today’s IoT Edge 31 /87

32.

32 /87

33.

M5Stack • 深センにある、M5Stack社のM5シリーズを使う。 • マイコンだけでなく、親和性の高いセンサーも発売。 • 今回のマイコンは、M5Stack Core 2を使用 • 7000円切るぐらい。ちょっと高いね。 • センサーにはENV III SENSOR (温湿度センサーを使用) • 気温、湿度、気圧が取得できる。1000円ぐらい。 33 /87

34.

` 34

35.

UIFlow • M5シリーズで使えるノーコード開発ツール • フローチャートを作るように(作業手順を示すように) 命令ブロックを並べて、開発が可能。 • 後述するAzure IoT Servicesにも対応。 35 /87

37.

Develop DEMO 37 /87

38.

Hands On : 早速開発 38 /87

39.

LED Bright • LEDをGND(グランド、マイナス)と3.3Vに繋ぐ。 • 長いほうが+、短いほうがー • 間違えると燃えたり割れたり爆発したり発熱したり。 - + 39 /87

40.

LED Brink • 電源とマイナスを繋げば、当然光る。 • これをプログラムで制御して、チカチカさせる。 • 実はもうプログラム済み。 • 前回の3.3Vの代わりにG19に、プラスを繋ぐ。 40 /87

41.

Lチカをカスタムしよう 41 /87

42.

LED Brink Custom • ちょっとかえる。 • チカチカの間隔を変えてみるとか。 • 一定間隔じゃないチカチカとか。 • ランダムタイミングなチカチカとか。 • 「ずっと」ではなく、ボタン押したら光らせるとか。 42 /87

43.

リファクタリング 43 /87

44.

Refactoring • リファクタリング(略してリファクタ) • 動いているプログラムを、挙動を崩さずに美しくする作業 • 読みやすくする。 • 書きやすくする。 • 速度を速くする。 • コメントをいれる etc… • 美しくないコードはバグの温床。 • 組織によってコーディング規約があったりする。 44 /87

45.

Magic No. to Variable • ピン番号を変数に変える。 • 該当箇所を全部変えなくても、一箇所変えるだけで全て が変わるように共通化する。 45 /87

46.

Brink to Function • Lチカを関数化する • その関数を呼べばLEDがチカチカするように。 46 /87

47.

センサーデータを取得しよう 47 /87

48.

Get Temperature • 環境センサー(ENV.III)センサーデータゲットする。 • どうにかして表示する。 • エッジのターミナルにロギングする。 • 画面にラベルを表示する。 • 画面の色を変える etc… 48 /87

49.

ここまで、IoTのThingsの話 49 /87

50.

ここから、IoTのInternetの話 https://dataexplorer.azure.com/dashboards/1d618ad9-86ac-43f9-91be-0e86f44d60e9?p_startTime=24hours&p-_endTime=now#485690c2-0ccd-4d33-8649-abac3bb36c6c 50 /87

51.

Send Azure IoT • センサーデータをゲットしてAzureに送信する • 形式はJSON • 送信データはNameとSensorValue • バックエンドのAzureは構築済 51 /87

52.

最後、IoTを開発しよう! 52 /87

53.

技術選定と技術設計と 貯めたデータの活用 53 /87

54.

OSI参照モデル 54 /87

55.

OSI Reference Model 55 /87

56.

OSI Reference Model 56 /87

57.

OSI Reference Model • https://www.seraku.co.jp/tectec-note/industry/osireference-model/ • https://www.itmanage.co.jp/column/osi-reference-model/ 57 /87

58.

なんで、OSI参照モデル? 58 /87

59.

Architecture for PC YOUR CODE(C#) WPF SDK Windows App SDK ASP.NET CORE SDK Compiler .NET Runtime Windows Runtime Windows OS Windows PC 59 /87

60.

Architecture for IoT YOUR CODE(C/C++) Compiler IoT BOARD 60 /87

61.

Ex: 物理でインターネットに繋ぐ 61 /87

62.

Connecting Internet • LANポートがついてる割と高級ボード • 消費電力もそこそこ高めなイメージ IoT BOARD ETHERNET INTERNET 62 /87

63.

Connecting Internet • WiFiモジュールがついてるボード、SoCに実装されてる 場合も。 • 手に入りやすい価格帯のことが多い(1000円から) IoT BOARD WiFi INTERNET 63 /87

64.

Connecting Internet • • • BTモジュールしか積まれてない最安ボード。 別でBT経由でインターネットに繋ぐデバイスが必要。 大量にばらまいて利用するパターンで使われる(AirTagとか) WiFi IoT BOARD Bluetooth もっと BT to INTERNET DEVICE ETHERNET INTERNET 低価格な Zigbeeとか 64 /87

65.

Programming • 有線LANモジュールとWiFiモジュールじゃ、もちろん通信する ためのコードは違う。 • なんなら同じ有線LANでもモジュールが違えば、もちろんコー ドも変わってくる。 • WiFiでも有線でも通信したかったら両方書き分ける必要がある • ボードが変わったら、↑のコードは無意味になる • だからボード選定がすごく大事 65 /87

66.

Selection Boards • 自分でやる、自分で書く。 • -> 選定したマイコンが用意してくれてるプラットフォーム ・ライブラリに頼る • ハードウェア設計 -> 物理層 • M5StackはArduino(C/C++) / Pythonのライブラリが豊富 • 実はUIFlowはPythonをビジュアルプログラミングで組めるよ うにしたサービス -> プログラム未経験者にいいなって採用 66 /87

67.

Architecture on Azure 67 /87

68.

Architecture on Cloud Internet IoT BOARD Cloud クラウド IoTサービス Any 68 /87

69.

Azure Services • 用途に応じて、いろいろいっぱい。フルマネージドサービス。 • 今回は • Azure IoT Hub • Azure Stream Analytics • Azure Blob Storage • Azure Data Explorer 69 /87

70.

Azure IoT Hub • IoT Edgeを集約する役目のPaaS • テレメトリーの集約を行う。 テレメトリー (センサーデータ) Azure IoT Hub MQTT || HTTP EDGE (IoTボート、PC、スマートフォン…) 70 /87

71.

Azure Stream Analytics • IoT Hubから流れてきたテレメトリーをストリーム(リアルタ イム)として、他のAzureのサービスで扱えるようにする。 • ストリームに対してクエリ式をかけられる。 Azure hoge テレメトリ Azure IoT Hub Azure Stream Analytics Query Azure fuga Azure piyo 71 /87

72.

Azure Blob Storage • Azureのファイルサービス • SurveyMapのデータとか全部ここに保存してる。 Azure Stream Analytics Query Azure Blob Storage 72 /87

73.

Azure Blob Storage • Stream Analyticsの設定で、ある程度任意のパスで保存できる。 • 今回は、[container]/YYYY/MM/DD/HH.jsonが作られて、毎デー タごとに1行ずつ追記。 Azure Stream Analytics Query Azure Blob Storage 73 /87

74.

Using Sensor Data : JSON to AI 74

75.

Azure Data Explorer • ストリーミングデータに最適化された • Azureのデータ探索・データ分析サービス • IoTとかいわゆるビッグデータで、時系列分析とかBIとか。 • KQLでDashboardの構築、外部サービスで分析結果を利用したり。 Azure Stream Analytics Query Azure Data Explorer 75 /87

76.

Using Sensor Data : Business Intelligence 76 /87

77.

アーキテクチャをまとめると こんなかんじ 77 /87

78.

Architecture on Azure IoT Edge テレメトリー (センサーデータ) MQTT || HTTP JSON Azure IoT Hub Azure Blob Storage お好きなように 分析・ダッシュボード Azure Stream Analytics Query SELECT * INTO Blob FROM IoTHub Azure ML Power BI Event Hub Functions Azure Data Explorer 78 /87

79.

Cost • Azure Blob Storage • 置いたファイルの大きさとAzure外への通信費次第。 • Azure IoT Hub • 今回はフリー版(F1) -> 今はS1で構築しなおした。 • 繋げられるAzureのサービスの数と通信回数に制限。 • プロダクションでは有料ユニットを使ったほうがいい (セキュリティ機能とか 79 /87

80.

Cost • Azure Stream Analytics • 1ユニット月9000円ぐらい • 全部合わせて月18000円ぐらいかなぁ。。。。 80 /87

81.

Using Sensor Data : Temperature Mesh • この会議室の気温を3Dメッシュとして、点群と一緒に表示す るとかもできそう。 81 /87

82.

まとめ 82 /87

83.

Sum up • IoTしてみたい!最新技術たのしい!流行ってるらしい! • わかるけど。 • それはIoEに繋がるのか? • 集めたデータをどう利用すれば何が見えるようになるのか? • その手段はIoTである必要があるのか? • ビジネスになるの?人的費用的コストを下げられるの? 83 /87

84.

価値創造できるの? 84 /87

85.

Sum up • 技術やデータ収集・分析のプラットフォームのPoCぐらいは 用意してあげられる。 • でも、そのデータを使って価値創造できるのか? • 専門領域専門職組織の仕事。 • あるべき未来を語るのは良い。そのために今欠けている知 識はなに? その棚卸を是非してほしい。 • でも、技術は楽しい。楽しく手を動かせる人は応援したい。 85 /87

87.

Survey • アンケートの回答を お願いします。 • QRコード、もしくは セッションチャネル からアクセスできま す。 87 /87