Azure 仮想マシンで Arduino 開発をする方法(実際にはAzureに限らず&Arduinoに限らず)

久しぶりに IoT っぽい話です。(正しくは今回はマイコンボードの開発環境の話で IoT 成分はゼロです)

Arduino を USB 接続したものとは別のマシンで開発をするための手順です。

マイコンボードの対象は Arduino とか ESP32 とかの PC に USB 接続して開発を行うものです。
開発時に USB 接続しなくていいものは今回の話には該当しません。
またマシンは仮想マシンでも物理マシンでも変わらないはずですが、以下の説明では “仮想マシン” と呼びます。

ポイントは

  • 接続元(手元の PC) のグループポリシーで [RemoveFX USB デバイスの~] を有効化
  • リモートデスクトップ接続の [ローカルリソースとデバイス] で Arduino の COM ポートを選択
  • 仮想マシンのグループポリシーで [COM ポートのリダイレクト を許可しない] を無効化、および [サポートされている プラグアンドプレイ デバイスのリダイレクト を許可しない] を無効化

です。

普通は手元の PC に接続して、そこで開発すると思うので常に必要な Tips というわけではありません。
こういうこともできるよという参考として。

続きを読む
広告

大迫力の ゴジラ・ナイト を体験してきました (+ ほんのちょっとだけ技術の考察) #hibiya2018 #godzilla

開催中の「ゴジラ・ナイト」を体験してきました。

gozillanights_logo

5月24日 (木) から 29日 (火) までの開催で、すでに抽選は終わっています。これを読んで「面白そう、行ってみたい!」と思った方がいたら、ごめんなさい。

この辺りのレポート でライターさんも大興奮で書いているので、雰囲気は伝わるかな。

続きを読む

「Cognitive Services と Bot Service で作る業務アプリケーション (2018 年 4 月版)」(Azure サイトの歩き方 公式自習書) が公開されています #cogbot #azure

Cognitive Services と Bot Service で作る業務アプリケーション (2018 年 4 月版)」という自習書を書きました。
マイクロソフトの Azure サイトの歩き方 の公式なコンテンツです。

こだわりポイントは、複数の機能を持つ Bot アプリケーションをリソース作成からデプロイ・チャットクライアントの Channel 登録まで、手順を網羅している点です。

続きを読む

Windows 10 IoT Core をセキュアにするために、IoT Core Dashboard を使って接続情報をデバイスに配置する(ただし、まだ課題あり)

■IoT Core Dashboard の “Azure に接続” タブでできること

最近(この一ヶ月以内くらい)、IoT Core DashboardIoT Hub を作れるようになりました。

IoT Core Dashboard の“Azure に接続”タブでできることは以下の3つ。

  1. IoT Hub の作成
  2. デバイス ID の作成
  3. デバイスへのプロビジョニング(ドロップダウンの項目名としては“プロビジョニング対象のデバイス”)

1, 2 でできることと操作方法は、先日の勉強会の資料 を参照。

本稿では、3つ目の「デバイスへのプロビジョニング」について取り上げます。
ちなみに本稿のネタ元は Windows Developer ブログ


■IoT Hub に接続するために必要な情報

デバイスを IoT Hub に接続するためには、

  • デバイス ID
  • 接続文字列(IoT Hub のエンドポイントやアクセスキーを含む文字列

が必要です。

一番お手軽な方法は、const で持ったり、config ファイルなどに定義しておくやり方。ただし、デバイスごとにビルドが必要な const は検証以外ではありえないし、configだとしても管理が面倒&平文だと情報が漏れてしまった時に問題が起こるという問題がある。

次に考えられる方法は、このブログではすっかりお馴染みに MS 太田さん作の こちらのハンズオン資料 で行っているように、IoT Hub への接続に必要な情報を返す Web サービスを立てるやり方。この方法は接続情報を返すサービスのエンドポイント自体はデバイスに平文で保持することになります。


■デバイスへのプロビジョニング

よりセキュアに IoT Hub への接続情報を保持するために、Windows 10 IoT と IoT Core Dashboard で提供しているのが、デバイスの TPM を利用する方法。
※Raspberry Pi は実際には TPM を載せていないので、エミュレーターを使います。つまり現時点では、本稿で紹介している方法はセキュアではないということ。今後 and/or 他のデバイスに期待しましょう。(ラズパイの価格を考えると TPM を載せるのは難しいかな・・・)

デバイスの TPM に接続情報を保存するのはとても簡単。

  1. Dashboard で IoT Hub を作成する、または既存の IoT Hub に接続する。
  2. デバイス ID を新規登録する、または既存の IoT Hub に登録済みのデバイス ID を選択する。ここまでは先日の勉強会でやった内容。
  3. Windows 10 IoT Core デバイスを動作させる。
  4. Dashboard の [Azure に接続] タブで、IoT Hub とデバイス ID を配置したいデバイスを [プロビジョニング対象のデバイス] で指定する。
  5. [プロビジョニング] ボタンをクリックする。

以上で終了。

2016-08-07 20-15-042016-08-07 20-17-05

実運用では、多数のデバイスに接続情報を保存するにも、もっと効率が良い方法を検討するほうがいいと思いますが、検証フェーズや仕組みを覚える目的には上記の手順で OK。

Device Portal でデバイスを覗いてみると、確かに指定したデバイスの TPM に登録されていることが分かります。

2016-08-07 20-18-29

ただし上でも触れたとおり、Raspberry Pi 2/3 は TPM を載せていないので、現時点ではエミュレーターを使っています。残念ながらセキュアではありません(他の方法より劣っているという意味ではありません、念のため)。


■TPM に保存した情報をアプリで利用する方法

TPMに接続情報を保存できたので、次はアプリでそれらの値を参照する方法が必要です。
Microsoft.Devices.Tpm クラスが面倒を見てくれます。わかりやすい名前ですね。

  1. Visual Studio 2015 で  UWP プロジェクト(空のプロジェクトでも OK)を作成
  2. IoT に最低限必要なライブラリを参照。具体的には “Windows IoT Extensions for the UWP”と “Microsoft.Azure.Devices.Client”の二つ。
    2016-08-07 20-24-202016-08-07 20-23-31
  3. TPM を利用するためのライブラリを NuGet からダウンロード。 “Microsoft.Devices.Tpm”がそれ。
    2016-08-07 20-22-31
  4. コード中では TpmDevice クラスを利用します。デバイスには複数の TPM を持てますが、今回は 0番目。
    GetHostName, GetDeviceId, GetSASToken の各メソッドで必要な情報を読み出せます。
    2016-08-07 20-26-35
  5. IoT Hub に接続するには DeviceClient クラスを使います。
    上のコードで取得した値を Create メソッドに渡すと IoT Hub に接続されます。あとはデータを送るのも受けるのも、先日の勉強会ハンズオン資料の通り。

実は簡単にセキュアな情報を利用できるのでした。
(上にも書いたとおり、Raspberry Pi では現時点ではエミュレーターでの動作なのですが・・・)


■DragonBoard 410c の場合

TPM が載っている Windows 10 IoT Core 対応ボードということで、DragonBoard 410c でも試してみました。

残念ながら今のところ、プロビジョニングの操作でエラーが発生して、接続情報を配置することができていません。それこそセキュリティ上の問題だと思いますが、原因はまだ分かっていません。すいません。
これについては引き続き調査してみたいと思います。

2016-08-07 20-28-182016-08-07 20-29-59

DragonBoard 410c には確かに TPM が載っているので、この操作ができれば Raspberry Pi に対するメリットになりますね。

 

以上、まだ課題が残っている状態ですが、セキュアに IoT Hub に接続する方法の紹介でした。

「IoT キットハンズオンのソースコード解説します (クラウド編 Part 1)」セッション資料を公開しました (Techfair.jp 勉強会 2016年7月30日開催)

まとめ(というより、ここでのお知らせ)がすっかり遅くなりましたが、7月30日(土) に

IoT キットハンズオンのソースコード解説します (クラウド編 Part 1)

なる勉強会を開催しました。
会場は、初めての八王子開催、WakU2 さんのスペースでした。都心ではないということで実は少し集客を心配したのですが、公開から1日経たずに定員に達しました。


IoT のハンズオンを受けて、また各種イベントなどで技術者の皆さんとお会いした時に、「ハンズオンで動きは分かったけど、仕組みや中味が分からないので解説してほしい」という声をたくさんいただきました。
IoT は構成要素がたくさんあり、全体を俯瞰できるハンズオンは相当のボリュームで 1日がかりなので、解説までできないのは当然と言えば当然。

そこで(ハンズオンは自習していただくとして)、中味の解説をしようというのが今回の勉強会。
ちなみにマイコンボード (.NET Micro Framework on GR-PEACH) に焦点を当てたのが前回の勉強会 です。
また今回のタイトルに “Part 1”と付けていることから分かるように、まだ扱っていない構成要素を解説する勉強会も今後開催したいと考えています。

今回は、IoT Hub, Stream Analytics という、IoT の中心と言っていいサービスをメインに、データ入力として Windows 10 IoT Core、出力例として Power BI, Excel を紹介しました。


休憩を挟みながら、3時間半のセッションであったので(いや、疲れたw、というより最後は声が出なかった・・・)、資料も3部構成。

https://docs.com/d/embed/D25193249-9793-6065-7830-000238822446%7eBfe5a7bff-fc39-9c7d-d35f-86e930988702

https://docs.com/d/embed/D25193249-9624-5155-0340-001664257068%7eBfe5a7bff-fc39-9c7d-d35f-86e930988702

https://docs.com/d/embed/D25193249-9523-3647-4060-001028506262%7eBfe5a7bff-fc39-9c7d-d35f-86e930988702


今回好評だったので、リピートセッション続編も検討中です。
ただし今のところ、Techfair.jp でのハンズオンは予定していません。それを実施するコミュニティの体力(スタッフ)も、資材(マイコンボードなど)も、残念ながら持っていないため。
その代わり、今回のような形態での勉強会は今後も開催します。ご理解ください。

まずは上の資料とハンズオン資料で、IoT の理解を深めてください!

Windows 10 IoT Core Dashboard で IoT Hub を作れるようになってます

みんな大好き、Windows 10 IoT Core / Raspberry Pi 。
・・・ですが、IoT Hub との組み合わせは意外と試されてないのかなと思います。面白い技術なのでもったいない。
IoT の中での位置づけや操作方法の一つは こちらの資料 (MS 太田さんの力作)で確認していただくとして、今回は今の時点ではそちらの資料でも触れられていない事項を紹介。

最近(この2週間くらいですかね)、IoT Dashboard に IoT Hub を作ったり、デバイス ID を登録する機能が追加されました。この機能についてはまだ動作が安定しないんですが(ちょっとバグが・・・)、IoT Hub を触ってみるきっかけになれば。

IoT Dashboard での操作について、具体的な画面とあわせて手順を紹介。

  1. IoT Dashboard を開いて、[Connect to Azure] メニューを選択。認証を求められるので、Azure のサブスクリプションのアカウント情報を入力。
    ※アカウントを持ってない方は、会社であれば(上司と相談しつつ)無料の評価アカウントを取得、個人であれば Visual Studio Dev Essentials に登録。
    2016-07-16 22-57-50
  2. すでに IoT Hub を作成済みであれば、[Azure IoT Hub] に表示されるはず。そこにデバイスを登録したい場合は、それを選択。
    もし作成済みの IoT Hub がない場合、または新規の IoT Hub を作成したい場合は [Create new IoT Hub] をクリック
  3. 新規の IoT Hub を作る場合は、各項目を入力・選択して [Create] ボタンをクリック。
    作成には数分がかかるので、コーヒーブレークとか手洗いに行くとかで一休みしてください(笑)
    2016-07-16 23-09-052016-07-16 23-14-57
  4. [Create new device] で、デバイス ID を作成。
    [Create] ボタンをクリックすると、指定のデバイス ID はすぐに登録されます。
    ソリューション(同じ IoT Hub に登録するデバイスの中)で一意であればなんでもかまいません。
    ただし、上で紹介したハンズオン資料を試すには、クラウド上で一意の ID である必要があるので、GUID や MAC アドレスなどで工夫してください。l詳しくはハンズオン資料の手順を参照のこと。
    2016-07-16 23-20-462016-07-16 23-27-44
  5. Azure ポータルに接続してみると、確かに IoT Hub が作られているし、デバイス ID も登録されているのが分かります。
    2016-07-16 23-32-44
  6. ここまでくれば当然、Device Explorer で見てもちゃんとデバイスが登録で来ているのが確認できます。
    2016-07-16 23-39-462016-07-16 23-40-37

 

あとはハンズオン資料などを参考に、センサーデータを Azure に上げてみてください。

このあたり、7月30日(土) に開催する勉強会でも紹介します。その場でも直接共有します。

ただし、ありがたいことに 30日の勉強会はすでにキャンセル待ちの状態ですが、リクエストが多ければリピートセッションを早いタイミングで実施する計画はあるので、ぜひどんどん声をお寄せください。

IoT も IoT Hub も Raspberry Pi も本当に楽しいです。ぜひ皆さんもこれを機に触ってみてくださいね。

「Android + Azure で IoT ハンズオン」を2週続けて実施しました #techfair

Android + Azure で IoT ハンズオン」を2週続けて実施しました。

「センサーが載っていて、インターネットに接続可能」という点で、スマホは IoT と親和性が高いと言えます。
そして、(少なくともこのブログを読んでくれる人は)まあスマホの1台や2台は持っているだろうと思います。
それならば、IoT の実習としてスマホを活用しない手はありません。マイコンボードなどを買う前にまずは IoT を体験できるわけです。

Visual Studio はマルチデバイス開発に対応しています。ハンズオンでは Cordova を使って、Android アプリを開発して、Azure と連携する手順を紹介しました。

参加された皆さんのお役に立てたようならうれしいです。


ひとつとても残念なのは、25日の勉強会のキャンセル率、欠席率の高さ。

申し込み47人(定員30人)に対して、当日参加してくれたのは7人。

前日から当日にキャンセルした人が15人、無断欠席が12人。
「ハンズオンなので事前準備が必要だから、直前キャンセルや無断欠席はしないでください」と何度もお願いしたにも関わらず・・・。興味を引き続けられなかった責任はあるし、今後の課題にしたいと思いますが、これでは勉強会の企画も会場提供をお願いするのも難しくなります。なによりも勉強したいと思っている人の機会を奪ってしまっていることに気づいていないのでしょうか。

他の勉強会でも欠席者には頭を悩ませていると思いますが、こういった恥ずかしい行為をする人が減ることを願うばかりです。

これからもステップアップしたい人に場を提供できるよう、がんばっていきます。技術者コミュニティを盛り上げるために、微力ですががんばっていきます!
(さしあたっては9月くらいの勉強会のために会場を提供してくれるところを探さねば)

技術ひろばの 2015年4月の勉強会は 25日(土) の開催。「見て触って理解するクラウド(Office 365 / Azure)」がテーマです。 #hirobatech

技術ひろばの2015年4月の勉強会は 25日(土) の開催です。

http://hiroba-tech.connpass.com/event/13653/

全体テーマは「見て触って理解するクラウド(Office 365 / Azure)」 です。

今回ははじめて、瀬尾が一切手を出さずに(口はそうとう出しましたがw)企画、運営される勉強会です。
Office 365 や Azure、IoT のノウハウを持つメンバーが進めてくれています。

今回の特長はmPC を持参して参加すると、Lync の体験型セッションにも参加できること。
自社で 365を導入している企業にお勤めの方は日々Lync を使っていると思いますが、そうでない方はなかなかLync を体験することができませんよね、一人ではできないので。

そこで当日、PC をお持ちの皆さんには Lync のオンライン会議に参加していただき、実際の Lync の機能や使い心地を体験していただきます。(参加者全員が同じ部屋にいるわけですが)

PC 無しで参加の方は、解説を聞きながらスクリーンに出力した画面を見ることで疑似体験ができます。安心して参加してください。

たくさんの方の参加をお待ちしています。

http://hiroba-tech.connpass.com/event/13653/

「IoT、貯めるだけではもったいない」セッション資料を公開しました (第4回 Apps for Office 勉強会 / 2015年3月14日)

3月14日(土) 開催の 第4回 Apps for Office 勉強会 で、

IoT、貯めるだけではもったいない

セッションを担当しました。

コミュニティ 「IoT あるじゃん」 が正式に活動を始め、IoT に取り組める環境が整ってきました。

IoT に関してはデバイスやガジェットの面での議論が盛んです。クラウドについても活発に意見が交換されたりイベントが開催されたりしています。
IoT ではもう一つ大事な側面があります。蓄積したデータをどのように活用するかという面。これについては、ビッグデータや機械学習 (ML) と絡めて議論されることが多いように思います。

しかし “スモールデータ” と呼んでいいようなデータもたくさんあります。ML に頼らずに人間が直接分析したり利用したりできるデータもたくさんあるはず。

セッションではこういったデータを簡単に利用する方法として、Azure Mobile Services に蓄積したデータをクラウドビジネスアプリ (LightSwitch) で閲覧する手順を紹介しました。
LightSwitch なので自前のテーブル定義であっても、外部のデータソース (SQL Database) であってもアプリ開発の手順は同じです。違うのはデータソースの指定のところのみ。

クラウドに蓄積したデータの活用のツールとして LightSwitch も検討してみてください。


こんなメッセージをお伝えしました、セッション資料はこちらです・・・と言いたいところですが、実は当日のセッションはほぼアドリブでした(笑)。

勉強会に参加して 1枠いただくのが決まったのが木曜日の夜。
当日の構成上の都合で LightSwitch の基礎から 70分間で話をすることになったのが勉強会当日の朝 7時。
枠の時間が50分と正式に決まったのが品川に向かう電車の中。
40分弱でお願いしますと言われたのが演台に立ってから(笑)。
・・・しゃべり慣れた LightSwitch の基本からデモ、そして IoT の話と あるじゃんの宣伝。全部まとめて 38分ほどでお届けしました。
IoT について、Mobile Services のデータをインポートする手順、LightSwitch 開発のカスタマイズのあたりが薄くなってしまったのは残念ですが、そこはぜひ資料で確認してください。

こういう展開も珍しいので、自分の中ではいい経験になりました。

結論としては、クラウドビジネスアプリは楽しいよ、IoT は楽しいよ、ということです。