Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ

ブログ

EnOcean IoT コンテスト 2020

去年開催した、EnOcean IoT コンテストと関連するセミナーやイベントについてまとめる。

きっかけは、2019年11月の EnOcean Alliance日本支部 イベントだった。EnOcean Alliance副会長で日本支部を取りまとめるから、今後のEnOcean Alliance日本支部イベントで新しい試みの提案が募集された。詳細経緯は省くが、私が年末にIoT Algyanの小暮理事長に事情を説明して、快諾の返事を頂いたのが、このコンテスト開催のきっかけだった。

その後の相談で、新製品のEnOceanマルチセンサーをテーマにして EnOcean Alliance主催でIoT コンテストを行い。IoT Algyanコミュニティが全面的に協力することなどがとんとん拍子に決まっていった。次のスケジュールでイベント、セミナーが開催された。

計7回のセミナー・勉強会・ハンズオン実習・発表会が行われた。

GitHub

去年書き溜めた、いや正しくは手元で書きかけていた GitHub についてまとめる。

私が運営委員を務める IoT Algyan コミュニティでは一昨年の2019年から GitGitHub に関して何らかのセミナーやハンズオンをする話題が出てきた。過去のセミナー参加者や知り合いからの声があったからだ。また前年の decode:2019 EXPO オープンシアター セッション で、ALGYAN の隣のブースが開いていたGitHubを使ってみるというコーナーの大盛況も影響しているだろう。盛況の事情を聞くと、GitHub の名前は知っていても使ったことが無い技術者が、de:code 来場者の層には多いのではないかとのことである。

2020/05/24(日)のIoT ALGYAのオンライン セッション git/githubの言いたい、知りたいこと雑談&オンライン呑み会 は表題通り、ALGYAN 運営委員を中心にした雑談とコロナ仕様のオンライン飲み会を兼ねた打合せ会だが、数十人が参加した。そして本番の 2020/07/04(土)今さら聞けないGitHubの使い方あれこれをやさしく学べる入門ハンズオンセミナー! には288人が登録、200人近くが参加した。特に京都大学の高瀬先生が主催した、総勢約200人での同時PR(Pull Request)のセッションは、多大な Conflict の発生と復旧も含めて壮大なハンズオンセミナーであった。

このセッションの全資料はこちらにある。
https://algyan.connpass.com/event/179698/presentation/

私のセッションのスライドGitHub Page では Windows、各種LinuxやRaspberry Pi等あらゆる環境でGitHubを簡単にコマンドで使う自分のやり方を紹介した。

de:code 2020 MVP パーソナルスポンサー

今年の Microsoft de:code 2020でも MVP パーソナルスポンサー(de:code 2020のセッション内容を理解し実践するのに役立つサンプルコードやツールの提供)に応募して採用された。今年で3回目、Microsoft de:code 2018 にこの制度が出来てから毎年である。今年のMicrosoft de:code 2020 は時節柄参加費無料で、誰でも参加できるオンライン・イベントとなった。

今年のサンプルコードは、EnOcean 新製品のマルチセンサー(STM550J)を使用した、Azure IoT PnP (Preview) のサンプルコード。EnOcean マルチセンサーやEnOcean受信機を持たない人でも実験出来る、シミュレーション用のコードも合わせて公開した。

WinUSB と UWP の今後

古いUSBドライバーをWindows 10 で使いたい にも書いたが、WinUSB の問い合わせが今でも結構ある。それで先日、WinUSBの最新情報がどうなっているのかを見たところ、本家の内容の多くが Windows 8.1 時代のもので、チュートリアル・サンプルが手順通り進めてもビルドできないことを確認した。今回これをデバッグして、Issue を上げたのをきっかけに関連情報とともに記事にする。

デバッグ済 WinUSBサンプルプロジェクトはこちら

 



WinUSB Architecture and Modules

Microsoft Ignite The Tour 2019-2020

去年12月に Microsoft Ignite The Tour TOKYO のイベントで、2020年1月になってからは Microsoft Ignite The Tour OSAKA でスピーカーを務めた。先日知人に、そのセッションの資料が公開されたという話をしたら、入手したいと言われた。それで資料のダウンロードについて良く調べてみたところ、結構面倒なことになっていたため、関連する情報を書いてみる。


東京会場


大阪会場

いまどき Windows XP を動作させる

さる2020年1月14日にWindows 7の延長サポートが終了した。延長サポートの終了 は、Windows 7用のセキュリティアップデートがWindows Updateで配布されくなるということである。詳細は前述のリンクを始め、ネット上に多数の情報があるので、そちらを参照されたい。ここでの主役はWindows XPである。製品サポートが2014年4月9日で終了し、組込みシステム向けの Windows XP Embedded も2016年に終了。後発のため特別扱いだった、Windows XP Embedded POSReady 2009 のサポートも2019年4月9日で終了した。

なぜ今ごろ Windows XP なのかというと、去年後半あたりから Windows XP / Windows 2000 時代のアプリケーションやドライバーの更新を求めるお客様が出てきたからである。アプリケーションやドライバーの更新版を作成(実際には開発)する際は、元の環境での動作を良く検証する必要がある。それで今回試した、評価目的での Windows XP (32bit版) をインストールして動作させる手順の最新版?を公開する。

古いUSBドライバーをWindows 10 で使いたい

Windows 7のサポート期限 が近づいて来て、ここ最近聞く様になったのが古いOS用のUSBドライバーを Windows 10 で使いたいという話だ。

どれぐらい古いかと言うと、Windows 2000 とか Windows XP だったりする。当然 32bit Only、そして使いたいのは最新の Windows 10 64bit版。ご存知の方も多いと思うが、昔の Windows 32bit版のドライバーは、結構そのまま Windows 7 (32bit)にインストールできて動作してしまう。しかし Windows 10 のカーネルモードで動作する一般的な USB ドライバーは、 KMCS (Kernel Mode Code Signing) ポリシーや、sha2署名UEFIセキュアブート での厳格な署名制限があり、単純に古い WDM (WDFでも同じ) のUSBドライバーを再ビルドしただけでは、問題無く動作するとは言えない。そこでその大昔のドライバーを Windows 10用 に対応させるためにどの様な方法があるかを、一から開発し直すことも含めて整理した。

Windows 10用ドライバー署名(2019年版)

新しいダッシュボードの運用が始まり、Windows 10 のドライバー署名方法の方法が変わって約3年経った。今でも時折質問が来るので、整理して解説する。

前提:証明書と署名

混同している方が結構多いため、大前提として再度確認するわけだが、証明書(Cerificate)署名(SignatureまたはSigning) は異なるものである。

一般的に証明書は、メーカーやユーザーが証明書発行機関(会社)から調達する。通常は1年程度の有効期限がある。電子的なものだが、例えば後述の EV証明書(Extended Validation 証明書)は、次の写真の様なUSBドングルに入っている。

再発行不可なので、無くしてはいけない。時代に逆行している様に思えるが、物理デバイスが必須である。詳しい事情は良く知らないが、どこかの国でどこかの会社がいい加減な証明書をバラまいたためにこの様な事態になったという噂がある。

iothub-explorer に代わる素晴らしいもの

先月のことだが、下記の Pull Request が却下された。1か月待たされてからの返事は、Closedだった。

https://github.com/Azure/azure-iot-sdk-c/pull/690

PRの内容は、azure-iot-sdk-ciothub_service_client の samples 以下にある iothub_registrymanager_sample を次のことを実現する様に修正するものだった。

  • iothub_registrymanager_sample のソースコードに、connection string 等のパラメーターを設定するだけで、単体のプログラムとしてビルドして実行可能にする。試せばわかるが、この Sample は「コーディング事例」だけを示すもので、パラメーターを設定だけではプログラムとして意味がある動作をしない。
  • Deprecated 扱いになった、IoTHubRegistryManager_GetDeviceList() の正しい使用法を示す。
  • このサンプルプログラムが、Deprecated になった、iothub-explorer の代替として利用できる様にする。
  • それの README を付加する。

そのそもこのPRを出そうと思いついたのは、全て iothub-explorer が原因である。

どんなデータって何だ?de:code 2018

「どんなデータもAzure IoT Hub に転送」

de:code 2018で私が話したシアターセッションのタイトルである。当然ながら「どんなデータ」って何だ?という疑問が出るであろう。そこでde:code 2018でのセッションを聞かなかった方のために、少しだけ解説する。ポイントは私が去年から何となく考えていた次の3つである。

  • IoTが流行り出して様々なシステム、プロトコルや標準、さらには団体まで出て来ているが、みなどれも難しくしすぎてないだろうか?
  • データをデバイスからクラウドに転送する、あるいは逆方向も同じだが、最も簡単に、勿論セキュアに実現する方法は何だろうか?
  • 世の中様々なデータやバスがあって、それぞれの通信方式があるが、これらを簡単かつ統一的に扱う、あるいは管理するための方法はどの様になるだろうか?

私なりの考えに基づいて実装した事例を紹介したのがこのセッションである。

コンテンツ配信