.NET Gadgeteer で IoT
瀬尾佳隆 (@seosoft)
Microsoft MVP for Visual C#2014/08/23 技術ひろば.net
自己紹介
瀬尾 佳隆 (せお よしたか)
MVP for Visual C# (Jan 2009 – Dec 2014)
組み込みと SharePoint / Office 365 が好き
 AKB48G とディズニーリゾートと劇団四季も好き
ブログやってます
 http://yseosoft.wordpress.com/
アジェンダ
.NET Gadgeteer 開発
.NET Gadgeteer をネットワークに接続する方法
.NET Gadgeteer をクラウドに接続する方法
Project Siena でクライアント開発
「“IoT” とは何か?」については話しません
用語自体には深入りしません(最近、バスワードっぽいし)
今日の機材
今日の機材
メインボード
WiFi
温度・気圧
センサー LED ディスプレイ
可変抵抗
ボタン
.NET Gadgeteer 開発
.NET Micro Framework とは
http://www.microsoft.com/ja-jp/dev/embedded/default.aspx
.NET Micro Framework とは
マイクロソフトの超小型機器向けファームウェア
.NET Framework のサブセット
Visual Studio で組込み開発できる
.NET Gadgeteer とは
.NET Gadgeteer とは
モジュールを組み合わせて組込み開発を行う
プラットフォーム
Visual Studio でビジュアル開発
モジュールのインスタンス化や
初期化コードが自動的に生成される
デバイス 1個あたりのコストは高い
少数デバイスのソリューションやプロトタイプで利用するべき
簡単に始められるので、評価や自習には非常に有用
デバイスの入手方法
GHI Electronics 社のサイトへどうぞ
日本では デバイスドライバーズ社が代理店
https://www.ghielectronics.com/
http://tinyclr.jp/
残念ながら 6月にいくつかのモジュールが製造中止
通販サイトに出回ったモジュールを買うならお早めに
開発環境の入手方法・構築方法
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 は使えないので注意
対応方法を資料の末尾に
基本的な開発の手順
1. VS で新規プロジェクトを作成
2. メインボードとモジュールを
デザイナー画面に配置
3. コーディング
4. デザイナー画面通りに
デバイスを結線
5. PC とデバイスを USB 接続
6. アプリケーションの配置とデバッグ
.NET Gadgeteer を
ネットワークに接続する方法
無線 LAN への接続
1. デバイスをオープンして
DHCP 有効化
2. アクセスポイントを探す
3. 接続する
WebServer クラス
センサーデータ公開には WebServer クラスが便利
1. リクエスト受信時のイベントハンドラーを定義
2. 応答するアドレスとポートとを指定して Webサーバーを起動
WebServer のレスポンス
1. ContentType を指定
2. Byte[] 型の Body を作る
3. Responder.Respond メソッドを呼び出す
.NET Gadgeteer を
クラウドに接続する方法
Azure Mobile Services の利用
Azure Mobile Services 対応のライブラリ
https://github.com/nickharris/
Microsoft.Azure.Zumo.MicroFramework
ZIPファイルをダウンロード
解凍したプロジェクトを
.NET Gadgeteer ソリューションに追加
Gadgeteer プロジェクトで参照設定
MobileServiceClient
AppUrl と AppKey
IMobileServiceEntity
IMobileServiceEntity を
実装したクラスを定義
AMS にデータ送信
1. データをまとめる
2. GetTable().Insert()
メソッドを呼び出す
デバイスの時刻合わせ
AMS に登録したデータ
Project Siena でクライアント開発
Project Siena
Project Siena
Windows 8 アプリ開発用の Windows 8 アプリ
IT Pro がメインターゲットの開発ツール
デベロッパーが “サクッと” お手軽ツールを作るのにも使える
Visual Studio の代替/後継ではない
対応しているデータソースが多いのが特長
Azure Mobile Services にも対応
Project Siena のデータソース
Sienaで AMS を利用する際の注意点
zz_config という名前のテーブルが必要
Key 列と value 列を追加する(型はどちらも string)
key には “table” という固定値
value には Siena から参照したいテーブル名
zz_config の登録例
Siena でデータソースの追加
Siena のデザイン画面
まとめ
まとめ
.NET Gadgeteer ならば簡単に IoT を始められる
簡単なシステムなら WebServer クラスを使って
センサーデータを公開できる
Azure Mobile Services を使ってクラウド対応
Azure.Zumo.MicroFramework を利用
AMS のクライアントとして Project Siena を
覚えておくとよい(かも)
参考情報
ファームアップ時の USBバージョン
メインボードのファームウェアのアップデートでは
USB 3.0は使えません
対応方法 1
PC の BIOS で一時的に USB 2.0にする
対応方法 2
USBハブを中継する
比較的安いハブが
簡単に入手可能
アプリ転送やデバッグ時は USB 3.0でも問題なし
ユニバーサルプレートがあると便利
タミヤのユニバーサルプレート
があると便利
(通販が確実)
ホームセンターで
ネジ、ナット、スペーサーを
用意する

.Net GadgeteerでIoT