Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microからnanoへ、進む.NET組込みアプリ開発環境の今

 Microからnanoへ、進む.NET組込みアプリ開発環境の今

(1) 最新の.NET組込みアプリ環境
(2) 実デバイスで実行するには
(3) M5Stackで環境を測定する
(4) Azure IoT Centralとは
(5) M5StackからAzure IoT Centralに接続する
(6) まとめ

HATSUNE, Akira

July 23, 2022
Tweet

More Decks by HATSUNE, Akira

Other Decks in Technology

Transcript

  1. Microからnanoへ、 進む.NET組込みアプリ 開発環境の今 2022/07/23 14:10 - 14:40 初音 玲 Microsoft

    MVP - Windows Development https://hatsune.hatenablog.jp/ 2022/07/23 NETラボ 勉強会 2022年07月
  2. 本日のアジェンダ 1. 最新の.NET組込みアプリ環境 2. 実デバイスで実行するには 3. M5Stackで環境を測定する 4. Azure IoT

    Centralとは 5. M5StackからAzure IoT Centralに接続する 6. まとめ 2022/07/23 NETラボ 勉強会 2022年07月
  3. 最新の.NET組込みアプリ環境 2022/07/23 NETラボ 勉強会 2022年07月

  4. .NET nanoFramework .NET nanoFrameworkとは ◼オープンソース ◼動作ターゲットは、組込みシステム(SoC) ◼開発言語はC# ◼.NET CLRと.NET基本クラスライブラリのサブセット(UWPベース) ◼Visual

    Studioを使って、開発、実デバイスへの転送とデバッグが可能 最小ハードウェア要件 2022/07/23 NETラボ 勉強会 2022年07月 .NET nanoFramework CPU ARM Cortex-M Xtensa LX6 (=ESP32) / L7 メモリ 64KB以上 ストレージ 256KB以上
  5. .NET nanoFrameworkアーキテクチャ 2022/07/23 NETラボ 勉強会 2022年07月 Hardware Mscorlib (System) System.Net

    その他の名前空間 アプリ Hardware Abstraction Layer (HAL) Platform Abstraction Layer (PAL) Common Language Runtime (CLR) Specific drivers .NET nanoFramework
  6. あれ?.NET MicroFrameworkは? .NET MicroFrameworkとは ◼.オープンソース ◼動作ターゲットは、組込みシステム(SoC) ◼開発言語はC# ◼.NET CLRと.NET基本クラスライブラリのサブセット ◼Visual

    Studioを使って、開発、実デバイスへの転送とデバッグが可能 2016年12月16日にGHI Electronicsが独自実装(TinyCLR OS)発表 ◼.NET MicroFrameworkのメンテナンスが実質止まっていたため 2017年1月23日に.NET nanoFrameworkへスピンオフ ◼.NET MicroFrameworkの一部流用 ◼大部分は書き直し(コードクレンジングと改善) ◼2018年10月12日に最初のバージョンを発表 ◼.NET IoT Librariesのターゲット 2022/07/23 NETラボ 勉強会 2022年07月
  7. .NET nanoFrameworkの開発環境 Visual Studio + .NET nanoFramework Extension ◼テンプレート ◼

    Blank Application ◼ Class Library ◼ Unit Test ◼nanoFramework.CoreLibrary 2022/07/23 NETラボ 勉強会 2022年07月
  8. nanoFramework.CoreLibrary = mscorlib 含まれていないものはNuGetから取得 ◼System.Net ◼SoCの入出力インターフェース 2022/07/23 NETラボ 勉強会 2022年07月

  9. .NET nanoFrameworkの実行環境 .NET nanoFramework Firmware Flasher (nanoff)で実行環境を転送 ◼.NET Core Tool

    ◼.NET Core CLIで「dotnet tool install --global nanoff」でインストール nanoFrameworkファームウェアを実デバイスに転送可能 ◼nanoff --target M5Core2 --update --serialport COM4 2022/07/23 NETラボ 勉強会 2022年07月
  10. nanoFrameworkのターゲット nanoff --listboardsでtargetに指定できる指定値一覧が表示可能 2022/07/23 NETラボ 勉強会 2022年07月 ESP32ボード ◼ ESP32_PSRAM_REV0

    ◼ ESP32_REV0 ◼ ESP32_PSRAM_XTAL26_REV0 ◼ ESP32_PSRAM_REV3 ◼ ESP32_REV3 ◼ ESP32_BLE_REV0 ◼ ESP32_BLE_REV3 ◼ ESP_WROVER_KIT ◼ ESP32_PICO ◼ ESP32_LILYGO ◼ FEATER_S2 ◼ KALUGA_1 ◼ ESP32_OLIMEX M5Stack ◼ M5Core ◼ M5StickC ◼ M5StickCPlus ◼ M5Core2 STM32ボード ◼ ST_STM32F429I_DISCOVERY ◼ ST_NUCLEO64_F091RC ◼ ST_STM32F769I_DISCOVERY ◼ ORGPAL_PALTHREE NXPボード ◼ NXP_MIMXRT1060_EVK TIボード ◼ TI_CC1352R1_LAUNCHXL_868 ◼ TI_CC1352R1_LAUNCHXL_915 ◼ TI_CC3220SF_LAUNCHXL Community Targets ◼ NETDUINO3_WIFI 他…
  11. M5Stackシリーズ ATOM Lite ◼ 24 x 24 x 10 ◼

    ESP32 PICO ◼ 520 KB 2022/07/23 NETラボ 勉強会 2022年07月 M5StickC Plus ◼ 48.2 x 25.5 x 13.7 ◼ ESP32-PICO-D4 ◼ 520 KB M5Stack Core 2 ◼ 54 x 54 x 16 ◼ ESP32-D0WD-V3 ◼ 16 MB
  12. 実デバイスで実行するには 今回の実デバイスは、M5Stack Core 2を使用します 2022/07/23 NETラボ 勉強会 2022年07月

  13. M5Stack 開発元は、深圳のM5Stack社 プロセッサーは「ESP32」 ◼Wi-FiとBluetoothを内蔵する低コスト&低消費電力なSoCシリーズ 今回使用するのは、M5Stack Core 2 ◼M5Stack開発キットシリーズの第2世代のCoreデバイス 2022/07/23 NETラボ

    勉強会 2022年07月
  14. M5Stack Core 2向けに整える 環境拡張 ◼.NET nanoFramework Firmware Flasher (nanoff)導入 ◼.NET

    nanoFramework Extension導入 ファームウェア転送 ◼nanoff --target M5Core2 --update --serialport COM4 ハードウェア固有ライブラリ(NuGet) ◼nanoFramework.M5Core2 注意 ◼ファームウェアとハード固有ライブラリは最新合わせ ◼2022/07/22現在の最新:ファームウェア(1.8.0.431) vs ライブラリ(1.1.12) 2022/07/23 NETラボ 勉強会 2022年07月
  15. HelloWorldコード public class Program { public static void Main() {

    Setup(); Console.WriteLine("HelloWorld"); } private static void Setup() { M5Core2.InitializeScreen(); } } 2022/07/23 NETラボ 勉強会 2022年07月
  16. M5Stackで環境を測定する 2022/07/23 NETラボ 勉強会 2022年07月

  17. M5Stack Core 2のインターフェース USB ◼電源 ◼シリアル接続 (TXD3, RDX3) PORT.A ◼I2Cシリアルバス規格

    ◼I2CはArduinoでもおなじみの規格 M-Bus ◼ESP32のピンを取り出しているI/F M5StackのStackとは ◼サイズとM-Busの位置を合わせた モジュールを積み重ねて機能拡張 2022/07/23 NETラボ 勉強会 2022年07月
  18. モジュールまたはユニット モジュール:M-Busに接続するM5Stackモジュール ユニット :PORT.Aに接続するセンサーでArduinoのGROVE規格互換 今回利用する環境センサー:ENV. III SENSOR ◼温湿度センサー :SHT30 ◼気圧センサー

    :QMP6988 2022/07/23 NETラボ 勉強会 2022年07月
  19. ENV III用ライブラリを追加する NuGetからインストール ◼気圧センサー:BMP280関連←QMP6988はなかったので自分でつくります ◼温湿度センサー:SHT30関連 ライブラリがあるセンサーをチョイスするのが重要 2022/07/23 NETラボ 勉強会 2022年07月

  20. 初期化 2022/07/23 NETラボ 勉強会 2022年07月

  21. センサー値取得 2022/07/23 NETラボ 勉強会 2022年07月

  22. Azure IoT Centralとは 2022/07/23 NETラボ 勉強会 2022年07月

  23. Azure Azure IoT Central 2022/07/23 NETラボ 勉強会 2022年07月 MQTT IoT

    Device IoT Device MQTT AzureのSaaSサービス ◼IoTデバイスとの双方向通信を実現 ◼収集したデータの蓄積 ◼収集したデータの表示 ◼収集したデータの分析 IoT Central IoT Hub DPS Stream Analytics Data Explorer
  24. Azure IoT Centralを使ってみよう 2022/07/23 NETラボ 勉強会 2022年07月

  25. IoT Centralと通信するデバイスを定義 デバイスから接続するには ◼IDスコープ ◼デバイスID ◼SASキー(主キー) 2022/07/23 NETラボ 勉強会 2022年07月

  26. M5Stackから Azure IoT Centralに接続する 2022/07/23 NETラボ 勉強会 2022年07月

  27. IoT Centralに接続するライブラリは? nanoFramework.Azure.Device.Client ◼nanoFramework.Json ◼nanoFramework.System.Net ◼nanoFramework.M2Mqtt ◼nanoFramework.System.Net.Http ◼nanoFramework.Azure.Devices.Client 2022/07/23 NETラボ

    勉強会 2022年07月
  28. 初期化:追加コード Wi-Fi初期化 DSP接続 IoT Central接続 2022/07/23 NETラボ 勉強会 2022年07月 ←ルートCA証明書

    ←ルートCA証明書 ←IoT Centralでのデバイス定義 ←IoT Centralでのデバイス定義 ↓DSPホスト名
  29. ルートCA証明書の取得方法 Baltimore CyberTrust Rootをダウンロード ◼https://cacerts.digicert.com/BaltimoreCyberTrustRoot.crt リソースとしてバイナリに同封 2022/07/23 NETラボ 勉強会 2022年07月

  30. センサー値送信 JSONフォーマット メッセージ送信 2022/07/23 NETラボ 勉強会 2022年07月

  31. データをWEBでリアルタイム表示 2022/07/23 NETラボ 勉強会 2022年07月

  32. まとめ 2022/07/23 NETラボ 勉強会 2022年07月

  33. リソース .NET nanoFrameworkプロジェクトサイト ◼https://www.nanoframework.net/ GitHub ◼https://github.com/nanoframework Documents ◼https://docs.nanoframework.net/index.html 2022/07/23 NETラボ

    勉強会 2022年07月
  34. 2022/07/23 NETラボ 勉強会 2022年07月