Azure Sphere で Lチカ ！できらぁ！！

# はじめに

*こんにちは、のんびりエンジニアのたっつーです。*
*[ブログ](https://www.fast-system.jp/)を運営しているのでよろしければ見てください。*

Azure Sphere (Microsoft Linux) の開発ボードが発売されたみたいなので、購入して Lチカ してみました。
全体の流れは[公式](https://docs.microsoft.com/en-us/azure-sphere/quickstart/qs-overview)を読んでいただいた方が詳しいので省略し、私のメモ程度の記録となりますのでご了承ください。

- 秋月電子：[Azure Sphere ＭＴ３６２０開発ボード](http://akizukidenshi.com/catalog/g/gM-13677/)

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Azure Sphere で Lチカ が出来ました！Azureの設定周りとコマンドラインでDeviceの紐づけなどを行う必要があり結構大変だった印象💦<a href="https://twitter.com/hashtag/Azure?src=hash&amp;ref_src=twsrc%5Etfw">#Azure</a> <a href="https://twitter.com/hashtag/AzureSphere?src=hash&amp;ref_src=twsrc%5Etfw">#AzureSphere</a> <a href="https://t.co/2XLOPPJ4eJ">pic.twitter.com/2XLOPPJ4eJ</a></p>&mdash; たっつー（ささきたかし） (@kingyo222) <a href="https://twitter.com/kingyo222/status/1045688411015675905?ref_src=twsrc%5Etfw">2018年9月28日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 手順

基本的には、[公式](https://docs.microsoft.com/en-us/azure-sphere/quickstart/qs-overview) の説明通りの内容となります。
私は Azureアカウント・VisualStudioインストールはすで済んでいたのでその手順は飛ばしておりますのでご了承ください。

必須かどうかわかりませんが、Lチカするまでに Azure への登録、デバイスの紐づけがあるので手順が意外と多いです。

## AzureSphereのアカウント設定

- Azure 登録

（私はすでにあるので省略）

- AzureSphereのユーザを作成

赤枠の項目を埋めて、ユーザを作成してください。
***ユーザ名***に使えるドメインは「Azure Active Directory」のメニューにある「カスタム ドメイン」を使わないとダメみたいなので気を付けてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/8d63cbc6-c588-6e4e-0160-6794524b1763.png)

## 開発ボードとPCを接続

- 開発ボードとPCを付属のUSBで接続

デバイスマネージャーで確認するとシリアルポートが４つ増えましたので大丈夫でそうです。（公式では３つとなっていましたが気にしない事にしましょう）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/8426e307-8633-2c4f-77b6-8cbed93382fc.png)

## AzureSphereSDKのインストール

- ダウンロード

[AzureSphereSDK](https://aka.ms/AzureSphereSDKDownload) をダウンロードしてインストールします。

- インストール

特に気にせずにそのままインストール

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/790ace6a-e51a-02a2-2735-8dc7191d7832.png)


## 開発ボードとAzureユーザの紐づけ

- コマンドラインを起動

コマンドラインを起動し、AzureSphereSDKをインストールしたToolsフォルダに移動しましょう。私のパスは```C:\Program Files (x86)\Microsoft Azure Sphere SDK\Tools```でした。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/c2240bc1-fbd5-a25a-b41c-0d9bde008b71.png)

- ログイン

```sh
azsphere login
```

上で作成したユーザ・パスワードでログインしてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/8538c157-41c3-288e-840e-27fd3193a9d5.png)

ログインが完了すると警告メッセージがでましたが次の手順で "テナント" を作成するので問題ありません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/562b0347-029a-342d-e49b-bf7eaa4a99b5.png)

- テナント作成

```sh
azsphere tenant create --name <my-tenant>
```

またログインも求められるのでログインしましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/00f84a70-2854-511c-6b3d-60b4b20fdfd5.png)

テナント作成が完了するとこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/c05d749e-2af9-bd35-3272-efb770985399.png)

- テナントとデバイスと紐づけ

このコマンドを実行すると、テナントとデバイスが紐づけられます。***この紐づけは解除できないそうなので慎重に実行してください。***

```sh
azsphere device claim
```

実行完了するとこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/664da32d-bf7e-b867-801d-c55a0025f58b.png)

## Wifiの設定

- Wifi接続

Wifiの設定を行います、***SSIDは大文字・小文字を区別***するので気を付けてください。

```sh
azsphere device wifi add --ssid <yourSSID> --key <yourNetworkKey>
```

実行した結果はこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/d971ad0c-f056-6bea-dc5b-304bd93ae82a.png)

- Wifiの接続確認

Wifiの接続を確認します。

```sh
azsphere device wifi show-status
```

実行結果はこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/3bac15f1-d1df-4d5a-34be-5fbaa6438da1.png)

***私は、Wifiの設定でSSIDの大文字・小文字を間違えて指定しておりここの確認がなかなかできなかったのでご注意ください。また「azsphere deice wifi」のコマンドに設定済みを削除するコマンドがあるので間違えたら消して再度登録してください。***

## アップデート

- OSアップデート

```sh
azsphere device show-ota-status
```

特にアップデートは発生しなかったようです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/1d03b234-0497-0c52-c247-beee63d8f96c.png)

## Lチカの実行

- デバイスをデバッグモードに移行

デバイスをデバッグモードにする必要があるみたいです。

```sh
azsphere device prep-debug
```

実行した結果はこんな感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/786c870f-a72b-5fdb-e298-1ee83cb9a77e.png)

- VisualStudioで新規プロジェクト作成

なぜだか分からないですが、「テスト」のツリーに Azure Sphere のテンプレートが入っていました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/d7b7a8c7-62a8-f712-c9b7-fcea34826306.png)

- 実行

F5キーもしてくは、VisualStudioの「Remote GDB Debugger」で確認が行えます。初期状態でCPUアーキテクチャが「ARM」が選択されていますね、すばらしい。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/227880/f5a12484-7b8c-b5bd-9a7d-2a95ba63dd98.png)

# まとめ
Microsoft Linux と言ったパワーワードにひかれて購入してみましたが、Lチカするまでの手順は Raspberry・Ardiunoと比べても複雑な手順となっているなとの印象です。

IoTデバイスに対するソリューションを提供する場合はこのような手順が必要になるんだなと改めて感じました。セキュリティや、クラウドの利用など案件に適用すると必ず問題となる部分を Microsoft の答えがこれなのだと感じました。

また、今回はやっていないですが、Azure IoTサービスと連携して動作可能となります Azure IoT はデバイスと双方向でやり取りできるのでクラウド側からデバイスを管理できる仕組みを構築可能です。

*よければ ブログ「[初心者向けUnity情報サイト](https://www.fast-system.jp/)」の方にも色々記載しているのでぜひご参照いただければと思います。*