1 はじめに
科学技術の急速な発展に伴い、モノのインターネット(IoT)は、産業、農業、環境、輸送、物流、セキュリティ、その他のインフラストラクチャなど、さまざまな分野で広く使用されています。IoTの使用により、私たちの生活はよりカラフルでインテリジェントになります。IoTの爆発的な発展は、クラウドプラットフォームと切り離すことはできません。現在、AmazonのAWS、MicrosoftのAzure、Google Cloud、中国のAlibaba Cloud、Baidu Cloud、OneNetなど、さまざまな種類のクラウドサービスが市場に出回っています。
Amazon AWS Cloudは、Amazonが提供するプロフェッショナルなクラウドコンピューティングサービスです。世界中のさまざまな国や地域のお客様にインフラストラクチャとクラウドソリューションの完全なセットを提供します。現在、ユーザー数の多いクラウドコンピューティングです。AWS IoT は、接続されたデバイスがクラウドアプリケーションや他のデバイスと簡単かつ安全に対話できるようにするマネージドクラウドプラットフォームです。
NXPのクロスオーバーMCU RT製品では、AWSのサンプルコードがシリーズ化されました。この記事では、AWS IoTクラウド、Androidモバイルアプリ、およびMQTTfxクライアントとのデータインタラクションを実現するための例として、公式のMIMXRT1060-EVK SDKのremote_control_wifi_nxpコードを主に説明します。この記事のクラウド トポロジは次のとおりです。
図1-1
2 AWSクラウド運用
2.1 AWSアカウントを作成する
クレジットカードを準備し、以下のAmazonリンクに移動してAWSアカウントを作成します。
https://console.aws.amazon.com/console/home
2.2 モノの作成
AWS IoT リンクを開きます。
https://console.aws.amazon.com/iot
「管理」の下の「モノ」の項目を選択し、初めて使用する場合は「モノの登録」を選択してモノを作成することができます。前回使用していた場合は、右隅にある「作成」ボタンをクリックしてモノを作成できます。「単一のものを作成する」を選択して新しいものを作成し、詳細については次の図を確認してください。
図2-1
図2-2
図2-3
2.3 証明書の作成
新しく作成したモノの証明書を作成するには、次の図の下にある[証明書の作成]ボタンをクリックします。
図2-4
証明書が作成されると、作成された証明書に関する情報が取得され、証明書が生成されて使用できることを意味します。
図2-5
ファイルのダウンロードに注意してください:このことの証明書、公開鍵、秘密鍵。
これは、mqttfx ツールの設定で使用されます。「A root CA for AWS for Download」をクリックし、AWS IoT用のルートCAをダウンロードすると、mqttfxツールの設定でも使用されます。
ルートCAのダウンロードリンクを開くと、CA証明書をダウンロードできます。
RSA 2048 ビット キー: VeriSign クラス 3 パブリック プライマリ G5 ルート CA 証明書
図2-6
最後に、これらのファイルを取得できます。
7abfd7a350-certificate.pem.crt
7abfd7a350-private.pem.key
7abfd7a350-public.pem.key
AmazonRootCA1.pem
保存しておけば、後で使います。
「アクティブ」ボタンをクリックして証明書をアクティブにし、「完了」ボタンをクリックします。ポリシーは後で添付されます。
2.4 ポリシーの作成
iotビューページに戻る:
https://console.aws.amazon.com/iot/
[セキュリティ保護] 項目でポリシーを選択して、新しいポリシーを作成します。
図2-7
アクションエリアにポリシー名を入力します。fill: iot:*, Resource ARN area fill: *
[許可] 項目をオンにし、作成ボタンをクリックして新しいポリシーの作成を終了します。
図2-8
2.5 関係を添付するもの
Thing、証明書、ポリシーの作成後、証明書にポリシーをアタッチし、Thingsに証明書をアタッチします。
図2-9
[セキュア アイテム] で証明書を選択し、関連する証明書アイテムで [...] を選択すると、ダウン リストが表示され、[ポリシーのアタッチ] をクリックして、新しく作成したポリシーを選択します。次に、[モノをアタッチ]をクリックし、新しく作成したモノを選択します。
図2-10
図2-11
図2-12
次に、Mangeアイテムの下のものを開き、詳細なもの関連情報を確認します。
図2-13
モノをダブルクリックすると、InteractアイテムでRest APIエンドポイント、RTコード、mqttfxツールがこのエンドポイントを使用してクラウド接続を実現できます。
図2-14
セキュリティを確認すると、以前に作成した証明書が見つかりますが、これはすでに新しい証明書が添付されていることを意味します。
図2-15
これまで、Things関連の設定はすでに完了しており、その後、MQTT fx、Androidアプリ、RT EVKボードの接続、テストに使用され、WebページのAWSシャドウを介して通信情報を直接確認することもできます。
3 Android関連の設定
3.1 AWS cognito の設定
Android アプリを使用して AWS IoT クラウドと通信する場合でも、AWS 側は cognito サービスを使用して AWS IoT を認証し、デバイスのシャドウにアクセスする必要があります。最初に、次のリンクから新しい ID プールを作成します。
https://console.aws.amazon.com/cognitohttps://console.aws.amazon.com/cognito
図3-1
「ID プールの管理」をクリックし、入力後に「新しい ID プールの作成」をクリックします
図3-2
図3-3
図3-4
ここでは、次の 2 つのロールが生成されます。
Cognito_PoolNameAuth_Role
Cognito_PoolNameUnauth_Role
「許可」をクリックして、アイデンティティ・プールの作成を終了します。
図3-5
関連するIDプールIDを記録してください、それはAndroidアプリの.propertiesで使用されます設定ファイル。
3.2 cognitoのIAMでプラグインを作成する
開ける https://console.aws.amazon.com/iam
「アクセス管理」の下の「ポリシー」の項目をクリックします。
図3-6
「ポリシーの作成」を選択し、IAM ポリシーを作成し、「ポリシー JSON」領域に次の内容を書き込みます。
図3-7
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:965396684474:topic/$aws/things/RTAWSThing/shadow/update",
"arn:aws:iot:us-east-1:965396684474:topic/$aws/things/RTAWSThing/shadow/get"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Receive"
],
"Resource": [
"*"
]
}
]
}JSONコンテンツでは、次の点に注意してください。
"arn:aws:iot:
"arn:aws:iot:
Region:the us-east-1 in 図3-5
アカウントIDは、私のアカウント側の右上隅にあります。
図3-8
図3-9
IAM ポリシーの作成が完了したら、IAM ポリシーページに戻り、[Filter policies as customer managed] を選択すると、新しく作成されたお客様のポリシーを見つけることができます。
図3-10
3.3 IAM の cognito ロールのポリシーをアタッチする
IAM で、ロール項目を選択します。
図3-11
cognito でプールを作成するときに生成されるcognito_PoolNameUnauth_Roleをダブルクリックし、[ポリシーのアタッチ] をクリックして、新しく作成したポリシーを選択します。
図3-12
図3-13
これまで、AWS cognitoの設定はすでに完了しています。
3.4 Android プロパティファイルの設定
.properties を使用してファイルを作成すると、内容は次のようになります。
customer_specific_endpoint=
cognito_pool_id=
thing_name=
region=
正しい内容を入力してください。
REST APIエンドポイント:図2-14
COGNITO POOL ID:fig 3-5
物名:fig 2-14,左上隅
REGION:図3-5、COGNITO POOL IDの地域データ
例を挙げると、私のプロパティファイルの内容は次のとおりです。
customer_specific_endpoint=a215vehc5uw107-ats.iot.us-east-1.amazonaws.com
cognito_pool_id=us-east-1:c5ca6d11-f069-416c-81f9-fc1ec8fd8de5
thing_name=RTAWSThing
地域=米国-東-1
実際の使用では、自分で設定したデータを使用してください、そうでなければ、それは私のクラウドエンドポイントに接続します。
4. MQTTfx の設定とテスト
MQTT.fx は、EclipsePaho をベースとし、Java 言語で記述された MQTT クライアント・ツールです。Topicを介したメッセージの購読と公開をサポートします。このツールは、次のリンクからダウンロードできます。
http://mqttfx.jensd.de/index.php/download
新しいバージョンは:1.7.1です。
4.1 MQTT.fx の設定
[接続設定] ボタンを選択し、接続設定ページに入ります。
図4-1
プロファイル名: 構成名を入力します
ブローカーアドレス: REST API エンドポイントです。
ブローカーポート:8883
クライアントID:自由に生成します
CA ファイル: ダウンロードした CA 証明書ファイルです
クライアント証明書ファイル: 関連証明書ファイル
クライアントキーファイル:秘密鍵ファイル
Check PEM formatted。
[適用] と [OK] をクリックして、構成を終了します。
4.2 AWSクラウドを使用して接続をテストする
イベントクラウドに接続できるかどうかをテストするために、事前の接続テストを行うことができます。
aws ページを開きます。 https://console.aws.amazon.com/iot
このインターフェイスの下にある [テスト] ボタンは、他のクライアントまたはそれ自体でテストできます。AWS クラウドと MQTTfx の両方がトピックをサブスクライブします: $aws/things/RTAWSThing/shadow/update
MQTTfx は、トピック ($aws/things/RTAWSThing/shadow/update) にデータを公開します。
クラウドテストポートとMQTTfxサブスクライブの両方がデータを受信できることがわかります。
図4-2
以下では、パブリッシュ データがクラウドによってテストされ、MQTTFX サブスクライブとクラウド サブスクライブの両方がデータを受信できることがわかります。
図4-3
これまで、AWSクラウドはAWS IoTクラウドとクライアント間でデータを転送できました。
5 RT1060およびwifiモジュールの構成
RTテストコードとして 主に RT1060 SDK2.8.0 remote_control_wifi_nxpを使用します。
SDK_2.8.0_EVK-MIMXRT1060\ボード\evkmimxrt1060\aws_examples\remote_control_wifi_nxp
テストプラットフォームは:MIMXRT1060-EVK
パナソニック PAN9026 SDIOアダプター+ SD - uSDアダプター
このプロジェクトは、デフォルトでパナソニックPAN9026 SDIOアダプターを使用しています。
5.1 WIFIとAWSコード設定
プロジェクトには動作中のWIFI SSIDとパスワードが必要なため、動作中のWIFIを準備します。次に、SSIDとパスワードをaws_clientcredential.hに追加します
#define clientcredentialWIFI_SSID 「ここにWiFiSSIDを貼り付けます。」
#define clientcredentialWIFI_PASSWORD 「ここにWiFiパスワードを貼り付けます。」
AWS の接続もファイル: aws_clientcredential.h
#define clientcredentialMQTT_BROKER_ENDPOINT「a215vehc5uw107-ats.iot.us-east-1.amazonaws.com」
#define clientcredentialIOT_THING_NAME「RTAWSThing」
#define clientcredentialMQTT_BROKER_PORT 8883
5.2 証明書とキーの設定
次のリンクからSDKを開きます。
SDK_2.8.0_EVK-MIMXRT1060\rtos\freertos\tools\certificate_configuration\CertificateConfigurator.html
図5-1
新しい aws_clientcredential_keys.h を生成し、古い .h を置き換えます。MCUXPresso IDE プロジェクトを例にとると、ファイルの場所は次のとおりです。
図5-2
プロジェクトをビルドし、MIMXRT1060-EVK ボードにダウンロードします。
6 テスト結果
Androd携帯電話は、このフォルダの下にAPKをダウンロードしてインストールします。
SDK_2.8.0_EVK-MIMXRT1060\ボード\evkmimxrt1060\aws_examples\remote_control_android\AwsRemoteControl.apk
SDKは、次のリンクからダウンロードできます。
次に、Androidアプリを使用して、オンボードLED上のRTEVKをリモートコントロールできます。
6.1 APPおよびEVKテスト結果
MIMXRT1060-EVK printf information:
図6-1
LEDをオンまたはオフにします。
図6-2
図6-3
6.2 MQTTfx の購読結果
MQTTfx サブスクライブ・データ
LEDをオンにすると、2つのメッセージを購読できます。
図6-4
図6-5
LEDをオフにすると、2つのメッセージを購読することもできます。
図6-6
図6-7
2つのメッセージでは、最初のメッセージを使用してLEDステータスを設定します。2つ目は、EVK LED情報を報告するために使用されるEVKです。
MQTTfx は公開ページを使用して、このデータを公開することもできます。
{"state":{"desired":{"LEDstate":1}}} または {"state":{"desired":{"LEDstate":0}}}
トピックへ: $aws/things/RTAWSThing/shadow/update
また、オンボードLEDのオン/オフを実現することもできます。
6.3 AWS クラウドシャドウの表示結果
LEDを点灯させます。
図6-8
LEDを消灯します。
図6-9
結論として、上記の構成とテストの後、Android携帯電話を終了して、オンボードLEDのRTEVKをリモートコントロールし、情報を取得できます。また、MQTTFXクライアントツールやAWSシャドーページを利用して、通信データを確認することもできます。
こんにちはVasudhevan G、
パナソニック PAN9026 SDIOアダプター+ SD - uSDアダプター
SDK はデフォルトでこれを使用しますが、次のものも使用できます。
●AzurWave AW-NM191MA + ムラタ製 uSD M.2 アダプター
- アズールウェーブ AW-NM191NF-uSD
又は
- Murata 1DX M.2 module
- Murata uSD M.2 Adapter
それがあなたを助けることを願っています!
よろしくお願いいたします。
ケリー
こんにちは、ケリー・チョウ、
私たちはあなたが使用したWiFiモジュールを知りたいです。
よろしくお願いします。
ヴァス