de:code 2018に参加してきましたのでその結果をまとめています。
内容の間違い、誤字脱字等はご了承ください。正確なところは、本家のサイトを参照いただければと思います。
タイトル等
タイトル
de:code 2018 [DA61] どんなデータもAzure IoT Hubに転送!IoTデバイスで汎用的に利用できるサンプルコード紹介
演者
- 日高 亜友さん 株式会社デバイスドライバーズ代表取締役 Microsoft MVP for Windows Development
日時
2018/05/23 10:35-10:50
関連リソース
関連リソース:
- IoTデバイスで汎用的に利用できるサンプルコード(差分ファイル、Linux、Windows、WSL)
- 上記と組み合わせ利用するEnOceanセンサー用データ収集ドライバー(Linux, Windows)
- 上記ドライバーと組み合わせ利用可能なOPC UAクライアント(Open62541改造、Linux、Windows)
- どんなデータって何だ?de:code 2018
概要、感じたこと
IoTデバイスで転送する際に、様々なプロトコルが用意されているが、リアルタイム(2秒以下)な動機が必要ないのであれば、ファイル受け渡しを基準にした方法が、OSが異なる場合なども汎用的に行いやすい。
実際に、例えば海の上から定期的に送付するような事例であれば、リアルタイムでの送付が必要な事例ではなくOSが異なることも多いので、参考となるのでないかと思った。
最初に
サンプルコードは、次からダウンロードしてほしいとのこと
汎用的に使用したい
デバイスを汎用的に使用したいということが出てきたとき、通信が問題となってくる。
デバイスの種類
汎用的に使用するとは、デバイスの接続種類にかかわらず利用したい、ということ
異なるOS
しかし、Windows, Linux両対応となると、論理的なローカルコネクティビティで異なるOSにも対応しているものは限られてくる。実質Alljoynのみ。
解決方法はファイル渡し
レガシーな方法ではあるが、ものすごく安定する。排他制御についても、どのようなOSもファイルの排他制御は実装されているので、確実である。
高速化についても、最近のOSはハードディスクではなく、SSDなどになっているし、RAMなどを利用した高速化なども検討できる。
また、エラー発生時にもファイルに最後の値が残っているので、デバッグがやりやすいし、逆に結果を削除したければファイルを削除しやすい。
データ形式はJSONなので、確認も楽である。
応用事例
インタフェース誌という雑誌に、電池の心配無用のIoT、半永久的CO2センシングとして紹介されている。
応用事例の構成図
図面上部のBrige Fileと記載されいる箇所が実際にやり取りされているファイル
今後の予定
- IoT Edge V2対応
- Edge Computing対応
- メッセージ対応
- データ受信イベント、差分データ対応
- 応用事例の拡張(LoRa、Web APIによるシミュレータ)