IoTが当たり前の時代になりました。あらゆる「モノ」がインターネットに繋がっているので、遠く離れていても操作やデータの監視をすることができます。
Wi-Fi接続可能なデバイス(モノ)で、アマゾンの「AWS(アマゾンウェブサービス)」を使えばクラウド経由で遠隔操作、データ監視を簡単に行うことができます。
私も今回始めてやってみたので最初は「AWS」の使い方や、何より出てくる言葉の意味が分からず・・・なかなか手間取りましたが手順がわかってしまえば簡単です。まずは「AWS」の初期設定からデバイス(モノ)の登録、MQTT接続の通信テストをする方法まで紹介します。
AWSの利用料金については以下のリンクにてご確認ください。
![](https://logikara.blog/wp-content/uploads/cocoon-resources/blog-card-cache/c94cb44bac0b155cad9e923137017c79.png)
私は好奇心だけで無知なまま始めたので、外部サービスのチュートリアルで使い方を間違って¥5,000程捨ててしまいましたw
これについては失敗談として以下のリンクで詳しく紹介しています。
こうならないためには「AWS」の「請求状況の確認」と「意図しない課金が発生した場合の停止方法」を知っておくことが大切なため、この方法も以下のリンクで紹介しています。
![](https://logikara.blog/wp-content/uploads/2023/01/AWS_beginner_eye-160x90.webp)
1.実現したいこと
2.AWS(Amazon Web Services)とは
3.AWSを使用するための準備
・アカウントの作成
・IAMユーザーの作成
4.AWS IoTの初期設定
・AWS IoTページの表示
・エンドポイント(MQTT接続先)の確認
・セキュリティーポリシーの作成
・デバイス(モノ)の登録とセキュリティ証明書の追加
5.MQTT通信テスト
6.まとめ
1.実現したいこと
実現したいことは、インターネットに接続可能なデバイスを使用して、クラウド経由での遠隔操作とデータ監視です。
デバイスとしては「M5Stack社」の「Core2(親機側)」と「M5StickC Plus(子機側)」に温湿度を測定できる環境センサ「ENVⅢ」を接続して使用します。
親機側からの操作で子機側データを親機で表示(同時にLEDも操作)させたり、子機側からの操作で親機にデータを表示させたりします。
「CORE2」「M5StickC Plus」「ENVⅢ」については以下のリンクで詳しく紹介しています。
![](https://logikara.blog/wp-content/uploads/2022/02/CORE2_eye-160x90.jpg)
![](https://logikara.blog/wp-content/uploads/2022/01/M5StickC_Plus_eye_01-160x90.jpg)
![](https://logikara.blog/wp-content/uploads/2023/01/Arduino_i2c_eye-160x90.webp)
使用するものは以下になりますが、まずは「UiFlow」を使用するため「M5Stack社」のデバイスなら何でも良いので、慣れた方なら手持ちのデバイスでも動作確認してみるとより理解が深まると思います。
プログラミングについて、まずはプログラミング初心者の方でも体験できるように「UiFlow」という「ビジュアルプログラミング」の環境を使用します。
「UIFlow」とは「M5Stackシリーズ」のための「ビジュアルプログラミング」の開発環境で無償で使用することができます。
「ビジュアルプログラミング」では、日本語で「もし〜なら〜する」というように日本語の書かれたブロックを組み合わせていくだけです。
UiFlowの使い方については以下のリンクで詳しく紹介しています。
![](https://logikara.blog/wp-content/uploads/2022/01/UIFlow_eye-160x90.png)
2.AWS(Amazon Web Services)とは
「AWS」とは「Amazon Web Services」の略で「アマゾン」がインターネット経由で200以上のサービスを提供している「クラウドコンピューティングサービス」です。
「AWS」ではクラウドサーバーを使用して情報処理から大容量データ記録、データベースによるデータ管理から機械学習、AIによるデータ分析等、用途に応じて最適なツールを選択して使用することができます。
料金については、各サービスの中から必要なものを利用した分だけ支払えば良いため、長期の契約や複雑なライセンスは必要ありません。
今回使用するIoTの機能「AWS IoT Core」にも様々な機能があり、何十億ものデバイスを安全に接続、管理でき、様々な業種向けにデータ収集、保存、分析するツールも提供されています。
詳細は以下リンクの「AWS」の公式ページでご確認ください。
![](https://logikara.blog/wp-content/uploads/cocoon-resources/blog-card-cache/c94cb44bac0b155cad9e923137017c79.png)
3.AWSを使用するための準備
「AWS」を使用するためにはアカウントの登録やユーザーの作成、権限の設定等が必要です。
これらについては「AWS」のホームページで詳しく紹介されているため、アカウント作成の前に内容をよくご確認ください。
・アカウントの作成
以下のリンク先のページで「無料アカウントを作成」をクリックして画面の指示に従って「AWS」のアカウント作成を行ってください。
利用するサービスにもよりますが、アカウントを作成してからしばらくは多くのサービスを無料で使用することができます。
![](https://logikara.blog/wp-content/uploads/cocoon-resources/blog-card-cache/c94cb44bac0b155cad9e923137017c79.png)
・IAMユーザーの作成
「IAM」とは「AWS Identity and Access Management」の略で「AWS」へのアクセスを安全に管理するためのウェブサービスです。
アカウントを作成した直後は「ルートユーザー」と呼ばれる何でもできるユーザーでログインした状態です。
何でもできるユーザーのため支払い情報のページにもアクセスできたりとセキュリティ的に問題があり「AWS」でも日常的なタスクには、ルートユーザーを使用しないことを強く推奨しています。
「IAM」では操作できる内容を限定した「IAMユーザー」を作成することができ、ルートユーザーの認証情報を安全に保護することができるので、まずは「IAMユーザー」を1つ作成しておきましょう。
「IAM」についての詳細は以下のリンクで確認できます。
「IAMユーザー」を作成する方法は以下のリンクで詳しく紹介されています。
以下から、実際に「IAMユーザー」を作成する方法を紹介します。
「AWS」にルートユーザーでサインインすると下画像のようなページが表示されます。
画面右上に使用するサーバーの場所が表示されています。
クリックすると場所を選択できるので「アジアパシフィック(東京)」を選択しておきましょう。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_01-1024x498.webp)
ページ上の検索窓に「IAM」と入力すると下画像のように「サービス」のところに[IAM]が表示されますのでクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_02.webp)
下画像のようなページが表示されたら、左メニューから[ユーザー]を選択し、画面右上の[ユーザーを追加]ボタンをクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_03-1024x277.webp)
下画像のようなページが表示されるのでユーザーの追加を行なっていきます。
[ユーザー名]には好きな名前を入力します。(今回は「main_user」としました。)
その下のチェックボックスは以下のようにチェックして[次のステップ]ボタンをクリックしてください。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_04-1024x724.webp)
次の画面では、下画像の[グループの作成]ボタンをクリックしてグループの作成を行っていきます。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_05-1024x521.webp)
下画像のような画面が表示されるので、適当な[グループ名](今回は「main」)を入力します。
今回はルートユーザーの次に権限の強いユーザーの作成を想定して[AdministratorAccess(管理者アクセス)]の左のチェックボックスにチェックを入れて[グループの作成]ボタンをクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_06-1024x470.webp)
グループの作成が完了したら下画像のように、作成したグループ(今回はmain)が追加されているのでチェックを入れて[次のステップ]ボタンをクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_08-1024x723.webp)
次ページではユーザーを管理するためのタグの設定のため、必要に応じて設定します。
今回は設定しないのでこのまま[次のステップ]ボタンをクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_09-1024x723.webp)
最後に設定したユーザー情報の確認画面です。
内容に間違いがなければ[ユーザーの作成]ボタンをクリックします。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_10-1024x723.webp)
以上でユーザーの作成が完了しました!
下画像のように[csvのダウンロード]ボタンをクリックすると、追加したユーザー情報をダウンロードできますので、ダウンロードして安全に管理しておきましょう。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_11-1024x652.webp)
ダウンロードした「csvファイル」を「メモ帳」で開くと、下画像のように追加したユーザーの「ユーザー名」「パスワード」「アクセスキーID」「シークレットアクセスキー」「ログインリンクアドレス」が確認できます。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_12-1024x66.webp)
追加した「IAMユーザー」でアクセスするには「csvファイル」の「ログインリンクアドレス」にアクセスします。下画像のようにアドレスをコピーして
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_13-1024x235.webp)
ブラウザに貼り付けると簡単にアクセスできます。
※「csvファイル」をExcelで開くとリンク部をクリックするだけでアクセスできます。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_14-1024x235.webp)
下画像のような画面が表示されます。アカウントIDはリンクアドレス部の先頭部(画像では隠してある部分)で、自動で入力されています。
「ユーザー名」と「パスワード」は「csvファイル」に記載されているものを入力します。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_16.webp)
パスワードは初回アクセス用のパスワードのため下画像のようにコピーして貼り付けると楽です。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_15-1024x235.webp)
サインインすると下画像のような画面が表示されるのでパスワードの更新を行います。
「csvファイル」に記載されている「古いパスワード」と、このユーザーで今後使用していく「新しいパスワード」を決めて入力します。[パスワード変更の確認]ボタンをクリックして完了です。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_17-1024x596.webp)
「IAM」ユーザーでサインインされて、下画像のような画面が表示されます。
画面右上にはユーザー名(今回はmain_user)と@の後にアクセスID(12桁の数字)が表示されています。
![AWSの使い方、IAMユーザーの作成](https://logikara.blog/wp-content/uploads/2023/01/iam_18-1024x370.webp)
4.AWS IoTの初期設定
次に「AWS IoT」を使用するための初期設定を行なっていきます。
・AWS IoTページの表示
「AWS IoT」のページを表示するにはサインイン画面の[サービス]をクリックすると表示されるメニューから[IoT]をクリックし、さらに[IoT Core]をクリックします。
![AWS IoTの使い方、初期設定](https://logikara.blog/wp-content/uploads/2023/01/iot_01-1024x445.webp)
下画像が「AWS IoT」の画面になります。左メニューから各種設定を行います。
メニューの中の[テスト]→[MQTTテストクライアント]では通信の動作確認を行うことができます。
![AWS IoTの使い方、初期設定](https://logikara.blog/wp-content/uploads/2023/01/iot_02-1024x437.webp)
・エンドポイント(MQTT接続先)の確認
クラウドサーバーとの通信には「MQTT」を使用します。(MQTTとはIoTに適したデータパケットの小さい通信方法で次回詳しく紹介します。)
MQTTの通信設定に必要な接続先となる「エンドポイント」のアドレスを確認します。
下画像のように左メニューの下の方の[設定]をクリックしましょう。
![AWS IoTの使い方、エンドポイントの確認](https://logikara.blog/wp-content/uploads/2023/01/end_p_01-1024x565.webp)
下画像のように「エンドポイント」のアドレスが確認できます。
矢印部をクリックすることでコピーすることもできます。
![AWS IoTの使い方、エンドポイントの確認](https://logikara.blog/wp-content/uploads/2023/01/end_p_02-1024x423.webp)
・セキュリティーポリシーの作成
デバイスとサーバー間の安全な接続のための「クライアント証明書」等の発行に必要な「セキュリティポリシー」の作成を行います。
下画像のように左メニューの[セキュリティ]をクリックし表示される[ポリシー]をクリックします。
![AWS IoTの使い方、ポリシーの作成](https://logikara.blog/wp-content/uploads/2023/01/policy_01.webp)
下画像のような画面が表示されるので[ポリシーを作成]ボタンをクリックします。
![AWS IoTの使い方、ポリシーの作成](https://logikara.blog/wp-content/uploads/2023/01/policy_02-1024x547.webp)
次にポリシーのプロパティ画面が表示されるので[ポリシー名]に自分でわかりやすいポリシー名を入力します。(今回はmain_iotとしました)
画面下の「ポリシードキュメント」は下画像のように設定して[作成]ボタンをクリックします。
![AWS IoTの使い方、ポリシーの作成](https://logikara.blog/wp-content/uploads/2023/01/policy_03-1024x639.webp)
下画像のような画面になり、入力したポリシー名が追加されたことが確認できます。
これは次の各デバイス個別の「セキュリティ証明書」の作成のために共通で使用します。
![AWS IoTの使い方、ポリシーの作成](https://logikara.blog/wp-content/uploads/2023/01/policy_04-1024x530.webp)
・デバイス(モノ)の登録とセキュリティ証明書の追加
次に、使用するデバイス(モノ)の登録とデバイスごとのセキュリティ証明書を発行します。
まずは、左メニューの[すべてのデバイス]をクリックして表される[モノ]をクリックします。
下画像のような画面が表示されるので[モノの作成]ボタンをクリックします。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_01-1024x265.webp)
次に下画像のように[1つのモノを作成]にチェックを入れて[次へ]ボタンをクリックします。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_02-1024x611.webp)
次の画面では下画像のように[モノの名前]にデバイスの名前を設定します。
今回は親機として使用する「モノ」として「core2_01」と設定しています。
この画面で下へスクロールすると「DeviceShadow」の設定欄があるので[名前のないシャドウ]にチェックを入れて[次へ]ボタンをクリックします。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_03-1024x797.webp)
次の画面では下画像のように[新しい証明書を自動生成]にチェックを入れて[次へ]ボタンをクリックします。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_04-1024x568.webp)
下画像のように「ポリシー」の選択画面が表示されるので、先に作成しておいた「ポリシー」(ここでは「main_iot」)にチェックを入れて[モノを作成]ボタンをクリックします。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_05-1024x518.webp)
[モノを作成]ボタンをクリックすると「証明書とキーのダウンロード」画面が表示されます。
ここで「デバイス証明書」と「パブリックキー」「プライベートキー」をダウンロードできるので、下画像の3つを必ずダウンロードしておきましょう。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_06-783x1024.webp)
デバイスの登録が完了し証明書の作成が完了すると下画像のような表示になり「モノ」のリストに「core2_01 」が追加されました。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_07-1024x357.webp)
パソコン側でダウンロードフォルダを確認すると下画像のように証明書(.crt)と2つのキーファイル(.key)がダウンロードされているのが確認できると思います。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_08-1024x306.webp)
ファイル名は次回使用する「UiFlow」では30文字を超えるファイル名は扱えないため、下画像のように30文字以下になるように適当にファイル名を変更します。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_09-1024x306.webp)
証明書とキーファイルは下画像のようにデバイスごとにフォルダにまとめておくとわかりやすいです。
流出しないように大切に管理していきましょう。
![AWS IoTの使い方、モノの登録、証明書作成](https://logikara.blog/wp-content/uploads/2023/01/device_10.webp)
5.MQTT通信テスト
「AWS IoT」には通信テストを行う「MQTTテストクライアント」という機能があります。
デバイスから送られてくるデータを確認したり、パソコン上からデバイスにデータを送信して、動作確認を行うことができます。
MQTTとは「パブリッシュ(送信)ー サブスクライブ(受信)」パターンを使用して、デバイス間でメッセージを送受信するデータパケットの小さい軽量な通信手段です。
これにはブローカー(Broker)という中継サーバーを使用します。
データの送信先は「トピック」として任意の名前を設定して「トピック」宛に送受信を行います。
以下から「MQTTテストクライアント」を使用した通信テストの方法を紹介します。
まずは「AWS IoT」ページの左メニューから「MQTTテストクライアント」をクリックすると下画像のような画面が表示されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_01-1024x299.webp)
「トピックのフィルター」に「#」を入力します。
「#」はワイルドカードとして扱われ、全ての「トピック」を指すため、全ての送受信データを確認できるようになります。
[サブスクライブ]ボタンをクリックすると下の「サブスクリプション」リストに「#」が追加されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_02-1024x424.webp)
次にトピックのフィルターに「device/host」を入力して[サブスクライブ]ボタンをクリックします。
下の「サブスクリプション」リストに「device/host」が追加されます。
ここには「device/host」というトピック宛に「パブリッシュ(送信)」されたデータのみ表示されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_03-1024x424.webp)
同様に「device/01/local」を入力して[サブスクライブ]ボタンをクリックすると「サブスクリプション」リストに「device/01/local」が追加されます。
ここには「device/01/local」というトピック宛に「パブリッシュ(送信)」されたデータのみ表示されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_04-1024x424.webp)
次にデータの「パブリッシュ(送信)」テストを行うために下画像のように[トピックに公開する]タブをクリックします。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_05.webp)
ここで[トピック名]に入力した「トピック」宛に[メッセージペイロード]に入力したデータを「パブリッシュ(送信)できます。
「サブスクライブ(受信)」したデータをすべて表示させるために、下画像のように「#』をクリックしておきましょう。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_06.webp)
[トピック名]を以下のように設定して[メッセージペイロード]の内容はそのままで[発行]ボタンを押すとデータが「パブリッシュ(送信)」されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_08.webp)
「トピック」に「device/host」を入力して[発行]ボタンを押すと上画像のようにデータが送信されたことが確認できます。
「サブスクリプション」リストの「device/host」の横には未読を表すアイコンが表示されます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_09.webp)
「トピック」に「device/01/local」を入力して[発行]ボタンを押すと上画像のようにデータが送信されたことが確認できます。
「サブスクリプション」リストの「device/01/local」の横には未読を表すアイコンが表示されます。
「サブスクリプション」リストの「#」では下画像のように、全てのデータの送受信履歴が確認できます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_10.webp)
「サブスクリプション」リストの各「トピック」名をクリックすると、それぞれの「トピック」宛に送信されたデータのみ確認することができます。データが既読になると、未読アイコンは消えます。
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_11.webp)
![AWS IoT MQTTテストクライアントの使い方](https://logikara.blog/wp-content/uploads/2023/01/mqtt_12.webp)
6.まとめ
「AWS(アマゾンウェブサービス)」の「AWS IoT」で「IoT」を始めるための初期設定から、デバイスの登録、MQTT通信の動作確認方法まで紹介しました。
「AWS IoT」を使用すればネットワーク上の離れたデバイス同士での遠隔操作、データ監視を簡単に行うことができます。
通信にはデータパケットの小さいMQTT通信で、設定した「トピック」宛に「パブリッシュ(送信)ー サブスクライブ(受信)」パターンを使用して、ブローカー(Broker)という中継サーバー経由で行われます。
MQTTのデータ送受信状況は「AWS IoT」の「MQTTテストクライアント」を使用することでリアルタイムに確認できます。
今回で「AWS IoT」を使用する環境が整いました。
次回からは今回登録したデバイス情報を使用して、実際に2台のデバイス間で遠隔操作、データ監視する方法を紹介していきます。
(まずは「UiFlow」を使用してビジュアルプログラミングで行い、その次に「Arduinoコマンド」を使用した「C言語」での方法の紹介を予定しています。)
「UiFlow」で「AWS IoT」を使用して「MQTT」で遠隔操作、データ監視をする方法は以下のリンクで詳しく紹介しています。
![](https://logikara.blog/wp-content/uploads/2023/01/AWS_UiFlow_eye-160x90.webp)
![](https://logikara.blog/wp-content/uploads/2023/01/AWS_beginner_eye-160x90.webp)
コメント