Developers Summit 2015 初日のIoT Kitハンズオントレーニング内容

2015/2/19、目黒雅叙園で開催されたデブサミ2015初日、GR-SAKURA+センサーボード+Azureを使ったハンズオントレーニングを4回開催しました。参加された皆さん、お疲れ様でした。 ここでハンズオントレーニングで実施した内容を紹介しておきます。 使ったハードウェアは、.NET Micro Frameworkを移植したGR-SAKURAボードに温度センサーその他が装備されたドーターボード(以下センサーボードと呼びます)を挿したものを使いました。 右の写真の方に3つ並んでいるGadgeteerソケットの一番右のちょい下の青っぽい素子が、温度を測るサーミスターです。 このボードをイーサネットでつないで、AzureのMobile Serviceに計測した温度を送信して、各自のストレージに貯めつつ、SignalRで計測データを送信する一連の処理を作ってもらいました。私の方で用意したSignalRハブで受信してAzureのテーブルストレージに受講者から送られた熱い魂(温度です)をExcel Power Mapで表示し、受講者の皆さんの成果を全員で鑑賞しました。 ※この構成は、100分という短い時間でIoTの超基本要素を一通り実践することを主眼にデザインしています。これがIoTの一般的なアーキテクチャであるという意味ではないのであしからず。 この実習内容は、https://aka.ms/IoTKitHoL から公開中のStep0-Step5の一連の自学自習コンテンツの中で取り扱っているテーマをピックアップして再構成したものです。 受講者の皆さんの熱い魂(指の温度です)は、私が用意したストレージに貯められて、Excel Power Mapを使って、 番号のついたセルに参加者が対応し、実習書に書かれているチャレンジを一通りやって、ボードから温度センサーの値が正しく送られて転送されると、テーブル番号に相当するセルに温度が送られた回数が棒グラフで表示されます。  トレーニングの部屋のネットワーク環境の問題で中にはボードでつながらない人もいました(ごめんなさい)が、参加された方の多くの方の温もり(指の温度です)を、表示しました。  当日の実習テキストには、私の方で用意したSignalRハブとExcelの作成方法は書いていないので、ここで紹介しておきます。 実習内容の図の「3.SignalR送信Webアプリ作成」で作ったWebアプリが送信した先は、以下のステップで作成しています。 1.Visual StudioでASP.NET Webアプリを作成 2.作成されたプロジェクトにHubsというホルダーを作成 3.Hubsフォルダーを右クリックして”SignalRハブクラス(V2)”を選択し、”SensorHub”という名前でクラス作成 出来上がったクラスに、         public void Update(SensorReading data)        {            Clients.Others.NotifyTemperature(data);             var storeCS = CloudConfigurationManager.GetSetting(“StorageConnectionString”);            var storageAccount = CloudStorageAccount.Parse(storeCS);            var tableClient = storageAccount.CreateCloudTableClient();            var sensorReadingTable = tableClient.GetTableReference(“SensorReading”);            sensorReadingTable.CreateIfNotExistsAsync().Wait();             var sr =…

0

IoT ( Internet of Things) Hands-on Kit トレーニング の学習方法

10月のIoT Japanで発表した、IoT Kit Hands-on Training セミナー、既に11月末からStep3までhttps://aka.ms/IoTKitHoL から公開してます。是非、皆さん、トライしてください。 …ポータルを眺めていて、う~ん、そっけない…と感じたのは私だけでなないと思います。特に姉妹ハンズオンのhttps://aka.ms/nkit と比べると、メインでやっている人間性が出てる…。 ということで、ここでポータルの構造と学習方法を説明しておきます。ポータルは、 はい。”さあ、始めよう”をクリックして、 といった流れで進めてください。学習に必要な機材や各種準備は、ポータルの ”事前準備”に書いてあるので、よく読んでください。2014年12月現在、まだ、GR PEACH版IoT Kitは販売されていませんが、FEZ版IoT Kitは販売中なので、そちらをご利用ください。IoTは基本複数のデバイスがつながるのが基本だし、学習コンテンツの中には、複数のデバイスをつなぐとより学習効果が出る内容もあるので、損はしないでしょう。 この「ハンズオンいいかも」と思った方、ポータルの、 ”トレーニング概要”をクリックすると、このトレーニングの全体像が表示されるので、これを知合いに見せて紹介してくれるとありがたし。このハンズオントレーニングの集合教育版セミナーや各種イベントの告知をやっているので、それも参考にしてくださいね。 更に、「俺持ってんの、mbedだし」とか「ラズパイ命」とか、「LEGO MINDSTORMS EV3大好き」とか、「やっぱArduinoっしょ」とか、思っている方は、”さぁ、始めよう”の下の方に ”コントリビューター募集” と書いてますよね。そういった皆さんは、.NET MFの部分をそれらのガジェットに置き換えたコンテンツ作成に協力してもらえると、非常に助かるので、挙手…いや、iotkithol-jp@microsoft.com にご連絡おねがいします。 では、では。  

0

IoT Kit ハンズオントレーニング用の開発環境セットアップ

11月は30日までです‼…という言い訳を地でいってしまいましたが、現在、Step3 蓄積編までをhttps://aka.ms/IoTKitHoL で公開しています。 ※2015年1月現在、Step1~Step5まで全てのコンテンツを公開中です。 ここでは、このトレーニングを行うのに必要な開発環境セットアップ方法を念のため説明しておきます。現状確実に利用可能、かつ、最新版でのセットアップ方法です。 先ず、Windows PC(7以上)が必要です。 環境セットアップー1 Windows PCに以下のツール、SDKをインストールしてください。 Visual Studio 2013 有償版、もしくは、Visual Studio Community 2013 (無償版:Express Editionは不可)http://www.visualstudio.com/downloads/download-visual-studio-vs ※ インストール方法は、http://fnya.cocolog-nifty.com/blog/2014/11/visual-studio-v.html を参照の事 .NET Micro Framework SDKhttp://netmf.codeplex.com の”download”ボタンをクリックして、netmf-v4.3.2-SDK-QFE2-RTM.zipをダウンロード ZIPファイルを展開 MicroFrameworkSDK.msiを実行 netmfvs2013.vsix を実行 http://gadgeteer.codeplex.com/ の”downloads”ボタンをクリック.NET Gadgeteer Core をクリックし、”GadeteerCore.msi”をダウンロードし実行※PinKit(GR-PEACH+センサーボード)を使う場合は、3まで実施すればOK ※FEZ版IoT Kitを使用する場合:https://www.ghielectronics.com/support/netmf/sdk/24/netmf-and-gadgeteer-package-2014-r5  の”NETMF_and_Gadgeteer_Package_2014_R5.exe”をダウンロードし、実行。※GHI Electronics社へのユーザー登録必要 GHI社製の昔のセンサー等のモジュールを使う場合は、https://www.ghielectronics.com/docs/299/discontinued-gadgeteer-module-drivers のNETMF4.3の項目の右下の”Discontinued Gadgeteer Module SDK”をクリックし、ダウンロード&インストール 以上で、FEZ版IoT Kitハードウェアのソフトウェア開発環境のセットアップは完了です。 .NET Micro Framework SDKが正しくインストールされているか、http://nav.jp/ioyt/inst/MFInstallCheck.zip をダウンロード(ダウンロード後、ZIPファイルのプロパティを表示し、ブロックを解除してください)して展開し、中に入っているMFInstallCheck.slnファイルをVisual Studioで開きます。開始でエミュレーターが起動し、Hello Worldと表示されます。 環境セットアップ-2 それから、トレーニングではMicrosoft Azureを実際に使うので、http://azure.microsoft.com/ja-jp/ から、サブスクリプション契約をしてください。まずは右上の”無料評価版”からお申し込みください。MSDN SubscriptionやBiz…

3

マイクロソフトのIOT(Internet of Things) =Internet of Your Things

今週、サンフランシスコでイベントがあって、モノがつながって連携しデータを蓄積活用するための、M2Mやセンサークラウドなどを管理するためのAzure上のサービス、Azure Intelligent Systems Service、が発表されました。 http://www.InternetOfYourThings.com キーワードは、Internet of Your Things 貴方のモノからつないでいきましょう的な感じです。各種デバイスを管理するAzure上のサービスとデバイス側のSDKのプレビュー提供が開始されています。 http://blogs.msdn.com/b/windows-embedded/archive/2014/04/15/microsoft-azure-intelligent-systems-service-limited-public-preview-now-available.aspx お試しください。5月末のde:codeでは、このサービスの一部の情報もセッションで扱おうと思ってます。 サンフランシスコのイベントの模様は、 https://www.microsoft.com/en-us/server-cloud/whats-new.aspx#fbid=YJudAz7bV_f?bid=YJudAz7bV_f でストリーミングが見れるのでこちらも是非。他に、SQL Server 2014と、Analytics Platform Serviceが発表されてます。 インテルのGalileoでWindowsカーネルが動くとか、.NET Micro Frameworkで動いているデバイスとか、BUILDで披露されていましたが、楽しくなってきましたね。    

0

小型組込み機器を.NET Micro Frameworkで実開発するときのイメージ

1~2か月に一回ほど、OTCで、.NET Micro Frameworkに関するハンズオンセミナーを実施してます。そこで話している内容をちょっぴり紹介。 .NET Gadgeteerなどでプロトタイプを作っていろいろ試した後、実デバイス開発の流れは、以下の様になります。 アプリケーション開発は、.NET Micro FrameworkのAPI上で、Emulatorや.NET Gadgeteerボードで実行ロジック確認をしながら進めていくことができます。.NET Micro Frameworkは、ポーティング用にPAL(Platform Abstraction Layer)とHAL(Hardware Abstraction Layer)という層があるので、アプリケーション開発とハードウェア開発は基本、並行して進められます。ハードウェアが出来たら、.NET Micro Frameworkをポーティングします。この作業も、アプリケーション開発とは並行して進められます。アプリはアプリで、ハードウェアはハードウェアで、徹底的にモジュールテストが行えます。TFSのリモートテスト機能を使えば(実はここまだ検証していないので、多分出来るはずというレベルです。ごめんなさい)、自動テストに小型組込み機器のソフトウェアテストを組み込むことも可能です。(実時間制約やセンサーやモーター等ハードウェアに絡む部分は多分自動テストは無理ですが、アルゴリズムやロジックはテスト可能ですね) 出来上がった、アプリのソフトウェアは、Visual Studioで実行ターゲットを変えるだけでF5実行すれば(MFDeployを使ってアプリを配置するのが正当ですが)、実機で動き出すはず。後はシステムテストをすれば、OK。 .NET Gadgeteerを使っている方、Visual Studioのエディターで、ハードウェアの構成を定義できることはご存知ですよね。  CPUのメインボードと、周辺ボードのモジュールは、ツールボックスからドラッグ&ドロップできるわけですが、この仕組み、GHI Electronics社の専売特許と思っていませんか?独自に開発したCPUボード、モジュールも、この環境に組み込むことが出来るんです。 http://gadgeteer.codeplex.com/ から公開されているSDKをインストールすると、以下の3つのプロジェクトテンプレートがVisual Studioにインストールされます。 .NET Gadgeteer Mainboard .NET Gadgeteer Module .NET Gadgeteer Kit これを使うと、上から順番に、自前のCPUボード、自前の周辺ボード、ツールボックスの部品群とライブラリ一式、を作れます。つまり、GHI Electronics社が公開しているSDKのようなものを、各自のハードウェア構成でも作成可能ということです。この仕組みを使えば、単に、ソフトとハードの並行開発にとどまらず、 こんな感じで、各開発組織ごとの専用Gadgeteer SDKが出来上がる訳です。大抵の組込み機器は、大枠のアーキテクチャは決まっていて、製品構成オプションによるバリエーション開発というのが一般的?なので、規律ある製品開発活動を進めるのにこの仕組みはとても便利です。 さて、.NET Micro Frameworkを適用するのに具合の良い組込み機器の種類の一つとして、クラウド等ネットワークサービスと連携する機器があります。ネットワーク上のサービスへのアクセスは、プロトコルやセキュリティなどアクセスの仕方が規定されていて、組込み機器もその規定に従わないといけません。つまり、組込み機器側に、その規定に従うためのロジックが必要になる訳です。.NET Micro Frameworkの特徴を考えてみると、Managed APIの上に構築されたソフトウェアは、HWが変わっても、同じように動きますね。ならば、サービスベンダーがサービスに接続するための規定を満たす.NET Micro Frameworkで動作するライブラリを公開して、組込み機器側のアプリケーションがそのライブラリを使ってサービスにアクセスするようにしてもらえば、サービスベンダーは、組込み機器の内部事情をほとんど考慮せずに、組込み機器側に対する要件を提供することができるわけです。サービスベンダーが提供しなければならないのは、ライブラリと、Emulator上で動作するサンプルコードだけで十分です。 図にすると以下の様になります。 この構成、実は、スマートフォンアプリや、PC、タブレット向けには既によく見られる仕組みですよね。組込み機器も含めた仕組みが実現できます。.NET Micro Frameworkは既に、T-KernelやLinux上へのポーティング事例があるので、組込み機器側のPlatformが元々.NET Micro Frameworkベースでなくても、PICや16BitのCPUでない限り、この仕組みを活用することができるわけです。勿論、組込み機器開発側が、クラウドからのアクセス用に.NET Micro…

0

Internet Of Things ハンズオン公開

昨年(2013年)のMSC、ET2013で展示、デモした2つのシステム(http://blogs.msdn.com/b/hirosho/archive/2014/01/07/overviewmsc2013demosmicrodevicewithcloud.aspx  )、これをもっと簡略化したハンズオン資料を作成したので、ここで公開しておきます。 .NET MF+Windows Azure+Windows Store App+αの連携システムを一気通貫で実践できるハンズオンです。是非お試しください。 先ず、SignalRを使ったセンサー計測値リアルタイム通信連携システムに関するハンズオンです。 http://sdrv.ms/1kMGMK4 ※このハンズオン実施中に、ASP.NETのプロジェクト実行でエラーが出たら、http://rionscode.wordpress.com/2014/02/13/when-mvc5-signalr-and-nuget-just-wont-get-along/  を参考にしてMicrosoft.Owin、Microsoft.Owin.Securityを更新してください。 次に、Windows Azure Mobile Service を使った環境センサー蓄積・共有システムに関するハンズオンです。 http://sdrv.ms/1dYjqJb 今後、Visual StudioのTFSを使ったプロジェクトマネージメントも含んだハンズオンも作ろうかな…なんて思ってます。 是非、トライしてみてください。 ボードは、http://tinyclr.jp から購入可能です      

0

FEZ Cerbuino Netを使ってみる

.NET Gadgeteer対応製品の中で、これだけ買えばネットワークにつなげられるというボードが、FEZ Cerubuino Netボードです。 https://www.ghielectronics.com/catalog/product/473 約$55と、Raspberry PIよりはちょっと高いですが、C#やVBでネットワーク連携する小型組込みHWを試してみたい方にはお勧めのボードです。最近手に入れたので、紹介しておきます。 ボードは、http://tinyclr.jp/ から日本でも購入可能。Gadgeteerボード用のコネクタを介して、センサーやDisplay、リレーやモータ駆動などGadgeteer Moduleボードをつなげるとともに、Arduino ピン互換のソケットもついているので、Arduinoを嗜んでいる人はそこで使っている各種HWもつなぐことができます。 開発環境は、Visual Studio 2012を使います。無償版を使う場合は、 http://www.microsoft.com/ja-jp/download/details.aspx?id=34673 から、Visual Studio 2012 Express for Windows Desktopをインストールしてください。 次に、http://netmf.codeplex.com から、.NET Micro Framework SDK 4.3をダウンロード(このページの右上のdownloadsボタンをクリック)し、ZIPファイルを解凍して中のMSIファイルを実行します。 次に、https://www.ghielectronics.com/news#13692 から、.NET GadgeteerとFEZシリーズ用のSDKをダウンロードし、ZIPファイルを解凍して、Setup.exeを実行してインストールします。 これで、終了。 Visual Studioでアプリを開発し、ボードをUSBで開発PCにつなげば、ボード上でプログラムを実行できます。 Visual Studio 2012を起動して、”ファイル”→”新規作成”→”プロジェクト”を選択します。プロジェクトテンプレートでは、Visual C#、もしくは、Visual BasicのGadgeteerカテゴリの”.NET Gadgeteer Application”を選択してプロジェクトを作成します。 Mainboardは、FEZCerbuinoNet(右上のボード)を選択します。 プロジェクトが出来上がったら、Program.csを開き、ProgramクラスのProgramStartedメソッドに、以下のコードを書いてみましょう。             var timer = new GT.Timer(2000);            timer.Tick += timer_Tick;            timer.Start(); 次に、Programクラスに、以下のコードをtimer_Tickメソッドとして記述します。         bool ledStatus =…

0

MSC2013/ET2013でデモ&展示したMicro Device+Cloud連携

ちょっと時間がたってしまいましたが、昨年(2013)の11月に開催されたMSC、及び、ET2013でデモ&展示した、Micro Device+Cloud連携を紹介します。紹介するのは以下の二つです。 ICTコンセプトデモMSCデベロッパーキーノートでデモ、ET2013マイクロソフトブースで展示 アグリカルチャーセンサークラウドプロトタイプET2013マイクロソフト招待講演でデモ、MSC2013VSブース、及び、ET2013マイクロソフトブースで展示 先ずは、ICTコンセプトデモです。まぁこの構成でICTと言ってしまうのは非常に微妙ですが、イメージとしては、 のごく一部の実装です。 Windows AzureのWebサイトにSignalR対応のASP.NETアプリを稼働させ、センサーで計測したデータをSignalRで送信する、というシステムを、MSCのデベロッパーキーノートの中のデモで、同僚の田中達彦さんが、荷台に.NET Micro Frameworkのボードが載ったトラックを使ってデモしていました。 荷台に搭載されていたボードは、 こういう構成です。このボード、スイッチを入れると、 Wi-Fiでインターネットに接続 Wi-Fiでの接続に失敗した場合、有線LANで接続 タイムサーバーから現在時刻を取得して時刻設定 WebサイトにSignalRで接続 加速度センサー、ジャイロセンサー、方位センサー、GPSで計測したデータをSignalRでWebサーバーに2秒ごとに送信 加速度センサーで、ボードがすごく傾いたことを検知すると、StatusをRegularからTroubleに切り替えて送信 という動作を行います。他にも、このボード自体がREST形式でセンサー計測データを提供するWebサーバーとなる機能を持っていて、ネットワークにつながっている別のデバイスから、XML形式で計測データを取得できます。.NET Micro Frameworkによる詳細は、このブログの過去の投稿で説明しているのでそちらをご覧ください。 次にアグリカルチャーセンサープロトタイプです。こちらは、ET2013の金曜日のマイクロソフトの招待講演の中で私がデモしたものです。ET2013のマイクロソフトブース、MSCのWindows 8ハンズオン会場、及びVSブースで展示されていました。こちらは、以下の様なシステムを想定しています。 このシステムは、.NET Micro Frameworkのボードで計測した各種センサーデータを、Windows Azure モバイルサービスのテーブルに逐次格納し、Windows Azureモバイルサービス対応のストアアプリから参照するものです。ICTプロトタイプと同じく、REST形式によるネットワーク越しの計測データ取得、クラウドへの計測データアップロードの開始と停止、リレーのOFF/ON制御が可能です。他にUDP Multicat通信にも対応していて、UDP Muticastによるメッセージ通信で、リレーをOFF/ONすることも可能です。モバイルサービスのテーブルに格納した計測データは、勿論、ExcelのPower Map、Power Queryによる参照も可能です。 ボードの構成は、 です。温度が30度を超えると、ストアアプリにPush Notificationを通知するよう、ステータスを変えてモバイルサービスにデータを送信します。このボードは以下の動作を行います。 ネットワークに接続する ネットワーク上のタイムサービスを使って現在時刻設定 REST形式によるWebサービス起動 UDP Multicast Group通信用にグループにJoin センサー計測データをLCDに表示 REST形式でのアクセスにより、センサー計測データの取得、リレーのOFF/ON制御と状態取得、Windows Azure モバイルサービスへのデータ送信開始停止要求受付 UDP Multicast Group通信でリレーのOFF/ON要求が来たら対応 Windows Azure モバイルサービスにデータをアップロードしていない間は、マイクロSDカードにデータ蓄積したら完璧(すいません。未実装です) デモのしやすさを考えて、有線LANが未接続状態で起動した場合には、センサー計測&LCDへの表示のみを開始し、LANケーブルが接続された時点で、時刻設定、REST形式WEBサービス起動、Multicast Group通信設定を行い、Windows Azure…

0

11/11のWin8.1+周辺機器連携ミニハッカソン紹介

周辺機器を操るスマートフォンやタブレットのアプリを創っている皆さん、こんにちは。 11月11日にWindows 8.1 ストアアプリ+周辺機器連携のミニハッカソンを開催します。お申し込みは https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032568380&Culture=ja-JP&community=0 から。 当日は、実際にデバイスと連携するアプリの動作確認ができるよう、各社様のご協力により、いくつかガジェットを用意してます。当日使えるガジェットは、 (株)アフレル様より Lego Mindstorms EV3 Bluetooth 2.0 SPPでシリアル通信可能です。 次は、ELECOM様提供のUC-SGT RS232Cケーブルで接続する周辺機器と連携可能です。このケーブルを使いたい方は、RS232Cで接続できるガジェットとヌルモデムケーブルを持参してください。会場では、.NET Gadgeteer RS232接続式を1セット用意しています。 次は、カシオ様のG-SHOCK   Bluetooth LE GATTプロファイルで制御可能。 他にも、会場では幾つかWindows 8.1ストアアプリと連携するガジェットの展示を予定しているのでお楽しみに。イベント参加登録ページに記載されている要件を満たす周辺機器を持参していただいても構いません。 セミナーの名前がコミュニティーフレーバーではありますが、真面目なセミナーです(コミュニティー系のイベントも勿論真面目なものがほとんどですが)ので、自社製品・ガジェットと連携するWindows 8.1ストアアプリ開発の技術スキルを身に着けたいという仕事系の皆さんも大歓迎です。当日はその道のプロ?が会場に揃っているので、Q&Aなどしてみてください。 このイベントで、ストアアプリを創ってストア公開まで行くと、良いことあるかも。それは当日のお楽しみということで、では、参加お待ちしております!!      

0

“今日から使える”アプリコンテスト – 紹介

Digi International主催の”今日から使える”アプリコンテストの紹介です。詳しくは、 http://www.digi-intl.co.jp/campaign/contest/index.html を見ていただきたいのですが、このコンテストは、Digi International様の製品を使って「これは便利、こんなのが欲しかったわ」と奥様も納得して、直に使えて役に立つ、生活に密着したアプリケーションを作って競い合う、アプリケーションコンテストです。 日頃、何だかよくわからない裸のボードを使ってゴニョゴニョやって、「やった完成!!」と見せびらかしても、奥さんには白い目で見られるそんなあなた(あれ、私のこと?)、このコンセプトでアプリを作って投稿しませんか? このコンテスト、日本マイクロソフトも協賛させていただいております。もう随分昔(といっても2年前ですが)、TechDays2010のキーノートで披露した、Windows 7 Sensor & Location Platformで、ZigBee無線付テーブルタップをPCにつなぎ、さらさらヘアーをドライヤーの熱風で靡かせて、電力見える化のデモをやりましたが、このデモも、ZigBee無線付テーブルタップがDigi International様の製品なので、一応、このコンテストの範疇になります。他にも、Digi Connectは、Windows CEをOSとして使っていたり、XBee Wi-Fiドングルは、超有名なドングルなので、私のブログの読者の中には、家に帰れば2、3個転がっていそうですね。こういった製品をWindows 7 PCや、Windows Phone 7、.NET Micro Framework等と連携させるとか、デバイスとWindows Azure上のサービスを連携させるとか・・・ 組込みGeek系突っ走りだと、いまひとつ、「奥様の納得」感を得るのは難しいので、是非、パソコンやクラウドなどの連携まで試してみてくださいね。 コンテストの募集要項をよぉっく見ると、賞品の項目に「マイクロソフト賞」とありますね。この賞は、Digi Internationalさんの製品と、日本マイクロソフトの製品とを組み合わせて活用し、「奥様も納得」するアプリを作っていただいた応募者向けの賞です。 締切は5月18日、まだまだ先です。どしどし応募してくださいね。3月22日には、関連セミナーも実施予定です。「え~組込み系は良くわからないんだよねぇ…」という開発者の方も、「え~クラウドとかスマホとかPCアプリとか、IT系は判らないんだよねぇ…」という方々どちらも、この機会にチャレンジです!!  

0