38
.NET Gadgeteer で IoT 瀬尾佳隆 (@seosoft) Microsoft MVP for Visual C# 2014/08/23 技術ひろば.net

Net GadgeteerでIoT

Embed Size (px)

DESCRIPTION

「今どきの入出力を考える会(初心者歓迎)~ 技術ひろば.net 2014年8月 」(2014年8月23日開催) セッション資料

Citation preview

Page 1: Net GadgeteerでIoT

.NET Gadgeteer で IoT

瀬尾佳隆 (@seosoft)Microsoft MVP for Visual C#2014/08/23 技術ひろば.net

Page 2: Net GadgeteerでIoT

自己紹介

瀬尾 佳隆 (せお よしたか)MVP for Visual C# (Jan 2009 – Dec 2014)

組み込みと SharePoint / Office 365 が好きAKB48G とディズニーリゾートと劇団四季も好き

ブログやってますhttp://yseosoft.wordpress.com/

Page 3: Net GadgeteerでIoT

アジェンダ

.NET Gadgeteer 開発

.NET Gadgeteer をネットワークに接続する方法

.NET Gadgeteer をクラウドに接続する方法

Project Siena でクライアント開発

「“IoT” とは何か?」については話しません用語自体には深入りしません(最近、バスワードっぽいし)

Page 4: Net GadgeteerでIoT

今日の機材

Page 5: Net GadgeteerでIoT

今日の機材

メインボード

WiFi

温度・気圧センサー LED ディスプレイ

可変抵抗

ボタン

Page 6: Net GadgeteerでIoT

.NET Gadgeteer 開発

Page 7: Net GadgeteerでIoT

.NET Micro Framework とは

http://www.microsoft.com/ja-jp/dev/embedded/default.aspx

Page 8: Net GadgeteerでIoT

.NET Micro Framework とは

マイクロソフトの超小型機器向けファームウェア

.NET Framework のサブセット

Visual Studio で組込み開発できる

Page 9: Net GadgeteerでIoT

.NET Gadgeteer とは

Page 10: Net GadgeteerでIoT

.NET Gadgeteer とは

モジュールを組み合わせて組込み開発を行うプラットフォーム

Visual Studio でビジュアル開発

モジュールのインスタンス化や初期化コードが自動的に生成される

デバイス 1個あたりのコストは高い少数デバイスのソリューションやプロトタイプで利用するべき

簡単に始められるので、評価や自習には非常に有用

Page 11: Net GadgeteerでIoT

デバイスの入手方法

GHI Electronics 社のサイトへどうぞ日本では デバイスドライバーズ社が代理店

https://www.ghielectronics.com/

http://tinyclr.jp/

残念ながら 6月にいくつかのモジュールが製造中止

通販サイトに出回ったモジュールを買うならお早めに

Page 12: Net GadgeteerでIoT

開発環境の入手方法・構築方法

GHI Electronics のサイトで以下をダウンロードhttps://www.ghielectronics.com/support/netmf

Visual Studio 2012 (2013 ではない)VS2013と共存可能

Express Edition 利用可能

NETMF and Gadgeteer Package最新のバージョンは 2014 R2

ダウンロードするには GHI に無償のユーザー登録が必要

ファームのアップデートには USB 3.0 は使えないので注意

対応方法を資料の末尾に

Page 13: Net GadgeteerでIoT

基本的な開発の手順

1. VS で新規プロジェクトを作成

2. メインボードとモジュールをデザイナー画面に配置

3. コーディング

4. デザイナー画面通りにデバイスを結線

5. PC とデバイスを USB 接続

6. アプリケーションの配置とデバッグ

Page 14: Net GadgeteerでIoT

.NET Gadgeteer を

ネットワークに接続する方法

Page 15: Net GadgeteerでIoT

無線 LAN への接続

1. デバイスをオープンしてDHCP 有効化

2. アクセスポイントを探す

3. 接続する

Page 16: Net GadgeteerでIoT

WebServer クラス

センサーデータ公開には WebServer クラスが便利1. リクエスト受信時のイベントハンドラーを定義

2. 応答するアドレスとポートとを指定して Webサーバーを起動

Page 17: Net GadgeteerでIoT

WebServer のレスポンス

1. ContentType を指定

2. Byte[] 型の Body を作る

3. Responder.Respond メソッドを呼び出す

Page 18: Net GadgeteerでIoT

.NET Gadgeteer を

クラウドに接続する方法

Page 19: Net GadgeteerでIoT

Azure Mobile Services の利用

Azure Mobile Services 対応のライブラリhttps://github.com/nickharris/

Microsoft.Azure.Zumo.MicroFramework

ZIPファイルをダウンロード

解凍したプロジェクトを.NET Gadgeteer ソリューションに追加

Gadgeteer プロジェクトで参照設定

Page 20: Net GadgeteerでIoT

MobileServiceClient

Page 21: Net GadgeteerでIoT

AppUrl と AppKey

Page 22: Net GadgeteerでIoT

IMobileServiceEntity

IMobileServiceEntity を実装したクラスを定義

Page 23: Net GadgeteerでIoT

AMS にデータ送信

1. データをまとめる

2. GetTable().Insert()メソッドを呼び出す

Page 24: Net GadgeteerでIoT

デバイスの時刻合わせ

Page 25: Net GadgeteerでIoT

AMS に登録したデータ

Page 26: Net GadgeteerでIoT

Project Siena でクライアント開発

Page 27: Net GadgeteerでIoT

Project Siena

Page 28: Net GadgeteerでIoT

Project Siena

Windows 8 アプリ開発用の Windows 8 アプリ

IT Pro がメインターゲットの開発ツールデベロッパーが “サクッと” お手軽ツールを作るのにも使える

Visual Studio の代替/後継ではない

対応しているデータソースが多いのが特長Azure Mobile Services にも対応

Page 29: Net GadgeteerでIoT

Project Siena のデータソース

Page 30: Net GadgeteerでIoT

Sienaで AMS を利用する際の注意点

zz_config という名前のテーブルが必要Key 列と value 列を追加する(型はどちらも string)

key には “table” という固定値

value には Siena から参照したいテーブル名

Page 31: Net GadgeteerでIoT

zz_config の登録例

Page 32: Net GadgeteerでIoT

Siena でデータソースの追加

Page 33: Net GadgeteerでIoT

Siena のデザイン画面

Page 34: Net GadgeteerでIoT

まとめ

Page 35: Net GadgeteerでIoT

まとめ

.NET Gadgeteer ならば簡単に IoT を始められる

簡単なシステムなら WebServer クラスを使ってセンサーデータを公開できる

Azure Mobile Services を使ってクラウド対応Azure.Zumo.MicroFramework を利用

AMS のクライアントとして Project Siena を覚えておくとよい(かも)

Page 36: Net GadgeteerでIoT

参考情報

Page 37: Net GadgeteerでIoT

ファームアップ時の USBバージョン

メインボードのファームウェアのアップデートではUSB 3.0は使えません

対応方法 1PC の BIOS で一時的に USB 2.0にする

対応方法 2USBハブを中継する

比較的安いハブが簡単に入手可能

アプリ転送やデバッグ時は USB 3.0でも問題なし

Page 38: Net GadgeteerでIoT

ユニバーサルプレートがあると便利

タミヤのユニバーサルプレートがあると便利(通販が確実)

ホームセンターでネジ、ナット、スペーサーを用意する