さくらのモノプラットフォームを使用したアプリケーション開発　第1回

## 初めに
　本記事は、さくらインターネット株式会社（以下、さくらインターネットとする）により開発環境が用意されているモノプラットフォームを使用する記事です。IoT向けのサービスを開発したい人、扱いたい人を対象としています。M5stackを利用してさくらインターネットのモノプラットフォーム及び、さくらインターネットのモノプラットフォーム開発基板を使用した開発について説明していく予定です。

　さくらインターネットのモノプラットフォームとは、IoTプラットフォームサービスの一つで、このサービスを用いることによりLTE回線を利用したIoTの通信を手軽に行うことができます。しかしながら最初のハードルが高く、取り掛かりやすいとは言い難い状態です。そこで私が使用した際に躓いたところを中心に、使い方を全４回にわたって公開していく予定です。最後まで手順にしたがって進めていくことにより、モノプラットフォームの基本的な使い方を把握できることを目指しています。
## 開発目標
　本記事では「IoTセンシング」、「マイコンでのプログラムと書き込み」、「モノプラットフォームの設定」、「クラウドアプリケーション」、「データの可視化」、「はんだ付け」について説明し、サンプルアプリケーションとしてIoT環境モニタリングシステムを作成していくことを目標としています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/bb82b037-c7bf-3bf5-baf6-caef6b0e17ae.png)
## この記事の対象者
- さくらインターネットのモノプラットフォームを体験してみたい人
- IoTを体験してみたい人
- 開発基板を請求したがその後どうして良いかわからない人
- webエンジニア、ソフトウェアエンジニア
を対象としています。
## 事前準備
- 開発基板の調達
- インターネットのアカウントの作成
- ArduinoIDEのインストール
- Googleアカウントの準備
- 部品の調達
## 予定
１回目　システムと全体の構成の説明
２回目　ハードウェアの組み立て
３回目　モノプラットフォームの設定
４回目　クラウドアプリケーションの作成
## 開発する環境モニタリングシステムの構成
　作成する環境モニタリングシステムは以下の3つから構成されます。
① マイコンと通信モジュール、測定用センサーを使用したデバイス部分
② 通信を受け持つモノプラットフォーム部分
③ データの計算や可視化などを行なうクラウドアプリケーション部分
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/55954e34-dc5b-f032-201e-93fd891e8aa4.png)
各構成について説明していきます。
① デバイス部分
IoTのプロトタイピングで使用されることが多いM5stackとBME280（温度、湿度、気圧センサー）を使用して、環境データの取得を行います。また、M5stackから通信モジュールを制御することにより、測定したデータの送信を行います。
M5stackのプログラムについては、ArduinoIDEで作成及び書き込みを行います。

②通信を受け持つモノプラットフォーム部分
　さくらインターネットのモノプラットフォームの機能を使用して、実際の通信を行います。モノプラットフォームには沢山の機能がありますが、今回のサンプルの中で使用する機能に絞って説明を行います。今回はデバイスアダプタとサービスアダプタを使用することで、デバイスとクラウドアプリケーションの接続を行います。
　デバイスアダプタとはデバイスとモノプラットフォームを接続するインターフェースのことです。デバイスからデバイスアダプタに接続をすることで、モノプラットフォームにデータを送信します。
　サービスアダプタを使用することで、モノプラットフォームとクラウドアプリケーションの接続を行います。プロジェクトという単位で、複数のSIMやサービスアダプタなどのリソースの管理を行うこと。プロジェクトにSIMやサービスアダプタを紐づけることでデバイスからクラウドへの通信を行うことが可能になります。

③クラウドアプリケーション部分
　クラウドアプリケーションは、受信したペイロードから必要なデータを取り出して、ストレージに保存、可視化まで行います。今回はNode-REDというローコードツールを使用して作成します。モノプラットフォームのサービスアダプタの機能でwebsocketを用意することにより、Node-REDにデータを引き込むことができます。またストレージ機能を持たせることで、データの保存を行うことができるようになり、後からのデータの解析にも利用できるようになります。GCPで用意したサーバーにデプロイしますので、別途GCPのアカウントを用意する必要があります。
## モノプラットフォームのイニシャルコスト
| 項目  |     料金      |
| --- | ----------- | 
| モノプラットフォーム使用料金 | 220円/月/デバイス |
| web socket | 11円/月/デバイス |
| SIM基本利用料 | 13円/SIM |
| データ通信料 | 6円/MB |

最小構成であれば月額250円（税込み）で運用を行うことが可能です。
（データ使用料に関しては従量課金となります）

## 終わりに
　いかがでしたでしょうか。今回は、作成するアプリケーションの全体の構成とさくらインターネットのモノプラットフォームの大枠についての説明を行いました。
　次回はハードウェアの組み立てを行います。はんだ付けを行うことになりますので、参考動画を見て予習をしておいてください。また、事前準備として、ArduinoIDEのインストールと設定、GCPの準備とサーバーの設定が必要になります。事前準備については、別途案内予定です。
## appendix
さくらインターネットのモノプラットフォーム用の開発基板は、こちらから申し込みを行うことで検証用の基板を無償で提供が受けられます。

[さくらインターネットモノプラットフォーム開発キット](https://iot.sakura.ad.jp/platform/service/dev-kit/)
[開発キット申し込みフォーム](https://iot.sakura.ad.jp/request_platform_devkit/)
※申し込みには、個人以外のアカウントが必要になりますが、個人事業、自営業でも作成することができますので、法人名義でない方は屋号での取得を検討してみてください。
## リリース予定
GW前に必要な部品リストと事前準備の説明記事を出す予定です。
GWが明けてから2回目以降を順次公開していき、~~5月中に完了する予定にしています。~~
少し予定より遅れましたが、６月中に完了する予定にしています。
ご意見ご要望があれば可能な限り内容を反映させたいので、コメント等いただけると幸いです。
## 関連記事
[さくらのモノプラットフォームを使用したアプリケーション開発　第1.5回（事前準備編）](https://qiita.com/shinfrom/items/d195c30ea8da26de56a6)
[さくらのモノプラットフォームを使用したアプリケーション開発　第2回](https://qiita.com/shinfrom/items/0b813d01c8522356c3c4)
[さくらのモノプラットフォームを使用したアプリケーション開発　番外編](https://qiita.com/shinfrom/items/2bce28565778e495962b)
## 参考情報
[モノプラットフォームマニュアル](https://manual.sakura.ad.jp/cloud/manual-iotpf.html)
[さくらのモノプラットフォームを使用したアプリケーション開発　第2回](https://qiita.com/shinfrom/items/0b813d01c8522356c3c4)
[さくらのモノプラットフォームを使用したアプリケーション開発　第1.5回（事前準備編）](https://qiita.com/shinfrom/items/d195c30ea8da26de56a6)
はんだ付け参考動画
[リード型（アキシャル）抵抗のはんだ付けお手本](https://youtu.be/oq3Q3n57-B0)
[2分でハンダ付け講座 | Raspberry Pi Picoにピンヘッダをハンダ付け超入門](https://youtu.be/r33VEWIL-I4)
[【永久保存版】はんだ付けのやり方を解説します【はんだづけの原理, DIP部品, 表面実装】【イチケン電子基礎シリーズ】](https://youtu.be/dQ7AUjb1tkA)