IntelのモノのインターネットゲートウェイをAWSに接続し、Node-REDまたはPythonを使用してクラウドと通信します

IntelモノのインターネットゲートウェイをAmazon Web Services(AWS)に接続し、Node-REDとPythonを使用してこのプラットフォームで動作するように設計されたアプリケーションの作成を開始する方法について説明します。 その結果、MQTTプロトコルを使用してゲートウェイがデータをクラウドに送信するかどうかを決定します。







議論する内容を実際にテストするには、IDP 3.1以上のIntelインターネットゲートウェイ、インターネット接続、およびゲートウェイへのターミナルアクセスを手配できるコンピューターが必要です。



ゲートウェイを構成する必要がある場合は、 この資料を参照しください。



ゲートウェイとAWSの準備



コラボレーションのためにゲートウェイとAWSを準備することから始めましょう。



gatewayゲートウェイへのIoT Cloudリポジトリのインストール



ゲートウェイにIoT Cloudリポジトリをインストールします。



  1. モニタとそれに直接接続されたキーボードのいずれかを使用してゲートウェイコンソールに入ります。または、リモートコンピュータからSSH経由でそれを実行することをお勧めします。



  2. 次のコマンドを入力して、クラウドリポジトリのGPGキーを追加します。



    rpm --import http://iotdk.intel.com/misc/iot_pub.key
          
          





  3. コンピューターでブラウザーを開き、アドレスバーにゲートウェイのIPアドレスを入力して、Intel IoT Gateway Developer Hubに接続します。 ゲートウェイのIPアドレスを確認するには、 ifconfig



    コマンドを使用できます。



  4. アカウント情報を使用してIoT Gateway Developer Hubにログインします。 デフォルトのユーザー名とパスワードはrootです。









    IoT Gateway Developer Hubへのログイン



  5. IoT Cloudリポジトリーをシステムに追加します。









    IoT Cloudリポジトリの追加



  6. [ パッケージ ]セクションに移動し、[ レポを追加+ ]ボタンをクリックします。









    リポジトリ設定を構成する



  7. 次のように表示されるウィンドウのフィールドに入力します。



    名前 :IoT_Cloud

    URLiotdk.intel.com/repos/iot-cloud/wrlinux7/rcpl13


    次に、「 リポジトリー追加」ボタンをクリックします。



  8. 最後に、「 リポジトリー更新」ボタンをクリックして、パッケージのリストを更新します。


gatewayゲートウェイでのAWSサポートの構成



ゲートウェイにアマゾンウェブサービスを装備するために必要な手順は次のとおりです。



  1. [ パッケージ追加+ ]ボタンをクリックします。 これにより、インストール可能なパッケージのリストが表示されます。









    パッケージのインストールプロセスの開始



  2. 新しいパッケージの追加ウィンドウの上部にあるボックスに入力して、 cloud-awsキーワードを検索します。 次に、目的のパッケージが見つかったらpackagegroup-cloud-awsエントリの右側にある[インストール ]ボタンをクリックします。









    パッケージのインストール


AWSAWSでのカスタマイズ



Amazon Web Servicesでアカウント設定をセットアップします。 これは、クラウドに接続するために必要になります。



  1. ブラウザで、AWSコンソールのアドレスに移動し Amazon Web Sevicesアカウントにログインします。



  2. AWSIoTFullAccessポリシーを設定します。









    AWSアカウントのアクセス許可を構成する



  3. ウィンドウの右上部分でアカウント名をクリックし、ドロップダウンメニューから[ セキュリティ認証情報]コマンドを選択します。









    セキュリティ設定へのアクセスに関する警告メッセージ



    上の図に示すポップアップメッセージが表示されたら、[ セキュリティ資格情報に進む ]ボタンをクリックします。



  4. ウィンドウの左側で、[ ユーザー ]リンクをクリックして、AWSアカウントのユーザーのリストを表示します。 リストにユーザーがいない場合は、[新しいユーザーを作成 ]ボタンをクリックし、新しいユーザーの名前を入力して[ 作成 ]ボタンをクリックします 。 その後、作成されたユーザーのレコードがリストに表示されます。









    AWSアカウントに新しいユーザーを追加する



  5. ユーザー名をクリックして、彼に関する情報を含むページを表示します。 [ アクセス許可 ]タブを選択し、[ ポリシー添付 ]ボタンをクリックします。









    ユーザーへのセキュリティポリシーの割り当てを開始します



  6. リストでAWSIoTFullAccessポリシーを見つけます。 ポリシーの名前の横にあるチェックボックスをオンにし、[ ポリシーアタッチ ]ボタンをクリックしてユーザーに割り当てます。









    ユーザーへのセキュリティポリシーの割り当て



  7. デバイスのパスキーを作成します。



  8. ユーザーの詳細画面に戻り、[ セキュリティ資格情報 ]タブの[ アクセスキー作成 ]ボタンをクリックします。









    デバイスのパスキーを作成する



    その後、各ユーザーに固有のキーペアを含むウィンドウが表示されます。 [ シークレットアクセスキー]フィールドに表示されるキーは1回だけ表示され、ウィンドウを閉じると表示されなくなります。 これは、古いキーが作成された後、どこにも保存していない場合、システムに再アクセスするために新しいキーを生成する必要があることを意味します。









    パスキーを作成



    注意! 次のセクションの手順を完了するまで、このウィンドウを閉じないでください。


Gatewayゲートウェイの設定



コマンドを簡単にコピーするには、SSH経由でゲートウェイに接続するか、IoT Gateway Developer Hubインターフェイスを使用してコマンドラインを使用することをお勧めします。 次のセクションで、モニターとキーボードを使用してゲートウェイに直接接続してコマンドラインを操作する場合は、パスキーとシークレットキーを手動で入力する必要があります。



  1. ゲートウェイにユーザー資格情報を追加します。 これを行うには、次のコマンドを入力します。



     aws configure
          
          





    それに応じて、システムは次の入力を求めるプロンプトを表示します。



    • AWSアクセスキーID :新しく生成されたアクセスキーID、アクセスキー。
    • AWSシークレットアクセスキー :シークレットアクセスキー、生成されたアクセスキーに一致するシークレットキー。
    • デフォルトの地域ここで地域のリストを見つけることができます(たとえば、eu-west-1)
    • デフォルトの出力形式 :ここでは標準設定が適しているため、 Enterを押します。



  2. AWSインスタンスに関連付けられた「もの」を作成します。 これを行うには、ゲートウェイで次のコマンドを入力します。



     aws iot create-thing --thing-name gateway-test-01
          
          





    「もの」の追加が成功すると、下図に示すような情報がコンソールに表示されます。









    「モノ」の作成に成功



  3. 許可を設定します。 これを行うには、コンソールで次のコマンドを入力して、AWSインスタンスの新しいアクセス許可ポリシーを作成します。



     aws iot create-policy --policy-name gateway-policy --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action":["iot:*"], "Resource": ["*"] }] }'
          
          





    コンソールのメッセージにより、ポリシーが正常に追加されたことを確認できます。









    ポリシーを追加しました



  4. 「もの」のキーと証明書を作成します。 これを行うには、次のコマンドを入力します。これにより、AWSとのやり取りを整理するために必要なキーと証明書が作成されます。



     wget -O rootCA.pem https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile cert.pem --private-key-outfile privkey.pem
          
          





    すべてが正常に実行されると、以下に示すようなメッセージがコンソールに表示されます。 これらの後に、JSONデータの大きなフラグメントが続きます。 作業を続行するには、最初にあるcertificateArnパラメーターのみが必要です。









    鍵と証明書を正常に追加します



  5. ここで、ポリシーと証明書をバインドする必要があります。 これを行うには、次のコマンドを使用します。



     aws iot attach-principal-policy --policy-name ${POLICY_NAME} –principal ${CERTIFICATE_ARN}
          
          





    前の手順で取得したポリシー名(たとえば、 gateway-policy )およびcertificateArn値が正しく入力されていることを確認します。 これはすべて次のようになります。



     aws iot attach-principal-policy --policy-name gateway-policy --principal arn:aws:iot:eu-west-1:681450608718:cert/122c86b84c6e0b919353882c03ca37385855897e16804438a20d44b3f9934cb3
          
          





  6. AWS IoTコンソールでデバイスを確認します。 これを行うには、ページの左上にあるAWSアイコンをクリックして、コンソールのホーム画面に移動します。 次に、ゲートウェイの構成に使用された地域(アイルランドなど)が右上隅で選択されていることを確認します。 次に、リスト内のAWS IoTサービスアイコンをクリックします。









    AWSホーム画面、AWS IoTへの移行



    これで、AWS IoTコントロールパネルに、作成した「もの」と、上記で設定したポリシーと証明書が表示されます。









    AWSコントロールパネル



この段階で、ゲートウェイを設定した後、AWSとデータを交換できます。 次に、ゲートウェイとクラウドの相互作用の2つのオプション、Node-REDとPythonの使用を検討します。 前述のアプリケーション開発プラットフォームのいずれか1つだけに興味がある場合は、それ専用のセクションのみを読むことができます。



AWS IoTとの相互作用。 ノードレッド



Node-RED環境での作業を開始するには、OSの最新バージョンを使用していることを確認する必要があります。 AWSにはNode-RED 0.14.xが必要です。



▍AWSのセットアップ



AWSコンソールを使用して、AWSとゲートウェイ間の相互作用を制御できます。



  1. AWS IoTコンソールで、ウィンドウの右上にあるMQTT Clientリンクをクリックします。









    MQTTクライアントリンク



  2. 「MQTT Client」ウィンドウで、以前に割り当てられた「もの」の名前(例えば、 gateway-test-01 )を入力し、「 接続」ボタンをクリックします。









    「もの」への接続



    AWSがゲートウェイと通信できる場合、接続ステータスメッセージは接続済みに変わり、緑色に変わります。









    AWSゲートウェイの接続ステータス



  3. MQTT Client Actions」グループの「 Subscribe to topic」リンククリックします。









    MQTTテーマサブスクリプションプロセスの開始



  4. [ サブスクリプショントピック]フィールドに「 sdk/test/nodered



    と入力し、[ サブスク sdk/test/nodered



    ]ボタンをクリックします。









    トピック購読



    これで、ゲートウェイによってsdk / test / noderedトピックに投稿されたメッセージがメッセージウィンドウに表示されます。









    ゲートウェイから受信したメッセージを表示するウィンドウ


NodeNode-REDインターフェースをダウンロードする



Node-REDウィンドウを開くには、 IoT Gateway Developer Hubの 管理セクションに移動する必要があります。 ここで、 Node-REDアイコンの下にある[ 起動 ]ボタンをクリックします。









Node-REDを起動する



applicationアプリケーションフローチャートの設定



  1. mqttをドラッグし、 左側にあるノードパネルから現在のシートにノードを挿入します。 目的のノードが表示されていない場合は、パネルをスクロールします。









    ノードの挿入とmqtt



  2. 次の図に示すように、ウィンドウ内でノードを配置して接続します。 タイムスタンプに名前が変更された注入ノードがあり、指定された間隔で、現在の時刻に関する情報をmqttノードに送信します。 mqttノード 、受信したデータをMQTTブローカーに送信します。 この場合、 AWS IoTになります。 ノードをブロック図に配置して接続したら、構成する必要があります。









    Node-REDノードのレイアウトとリンク図



  3. インジェクトノードを構成するには(結果としてタイムスタンプノードになります)、それをダブルクリックする必要があります。これにより、ダイアログボックスが表示されます。 下の図に合わせて、[ 完了 ]ボタンをクリックする必要があります。 これらの設定により、ノードは5秒ごとにデータを送信します。









    注入ノードを構成する



  4. mqttノードを構成するには、ノードをダブルクリックし、設定ウィンドウで[ サーバー]フィールドの[編集]ボタンをクリックします









    mqttノードの構成を開始します



  5. 次の図に示すように、MQTT接続の設定を入力します。 独自のサーバーURLを入力する必要があります。 今、あなたはそれをどこで手に入れるかを見つけます。









    mqttノードの構成、サーバー情報の入力



  6. AWSメッセージを送信するためのサーバーアドレスを取得するには、次のコマンドを入力します。



     aws iot describe-endpoint
          
          





    それに応じて、アドレス情報がコンソールに表示されます。 つまり、 endpointAddressパラメーターには、MQTT接続を構成するために必要なサーバーアドレスが含まれます。









    コンソールのサーバーアドレス



    引用符で囲まれたURLをコピーして、[ サーバー]フィールドに貼り付けます。 [ ポート]フィールドは空でなければならないことに注意してください。



    次に、接続セキュリティ設定を構成する必要があります。 これを行う前に、 セキュア(SSL / TLS)接続を有効にするフラグを有効にしてから、 TLS構成セクションの最後にある編集アイコンをクリックする必要があります



  7. 以下に示すウィンドウで、設定を構成する必要があります。 つまり、以前に生成されたキーおよび証明書ファイルへのパスを指定する必要があります。









    キーおよび証明書ファイルへのパスの構成



    • [ 証明書]フィールドに、以前に生成されたcert.pem



      ファイルへのパスを入力します。

    • [ プライベートキー]フィールドで、 privkey.pem



      へのパス。 このファイルも生成されました。

    • [ CA証明書]フィールドで、ダウンロードする必要があるrootCA.pem



      ファイルへのパス。


    すべての証明書とキーは同じディレクトリに保存する必要があります。 デフォルトでは、ゲートウェイに接続して何も変更しなかった場合、これは/ rootです。



    ここに、サンプルの入力フィールドがどのように見えるかを示します。









    鍵ファイルと証明書ファイルの入力パスフィールド



  8. 構成が完了したら、[ 追加 ]ボタンをクリックしてTLS構成を保存します。 セットアップ画面は次の画像のようになります。









    セットアップの完了



  9. これでほぼすべての準備が整いました。 メッセージを送信する予定のトピックの名前を入力するだけです。 入力したトピックは、AWSコントロールパネルでMQTTクライアントをセットアップして以前にサインアップしたトピックに対応する必要があるため、[ トピック ]フィールドにsdk/test/nodered



    行を入力し、[ 完了 ]ボタンをクリックする必要があります。









    MQTTテーマの構成



    Node-REDアプリケーションが構成され、デプロイの準備が整いました。


applicationアプリケーションの展開と検証



  1. Node-REDウィンドウの右上隅にある[ デプロイ ]ボタンをクリックします。 展開の確認を求めるウィンドウが表示されたら、そのウィンドウの[展開の確認 ]ボタンをクリックします。









    Node-REDアプリケーションの展開



    MQTTノードが正常に構成されている場合、その下に「 接続された」という単語の付いた緑のインジケーターが表示されます。









    Mqttノードの状態



  2. すべてが正しく機能していることを確認するには、AWSコントロールパネルのMQTTクライアントメッセージウィンドウに戻ります。 新しい投稿があるはずです。









    AWS MQTTクライアントウィンドウの新しいメッセージ


Node-REDを使用してAWSにデータを送信するように設定しました。 Pythonを使用して同じプロセスを整理しましょう。



AWS IoTとの相互作用。 Python



AWSとやり取りするようにゲートウェイを構成したら、Pythonスクリプトを使用してクラウドで動作するようにゲートウェイを準備できます。 このようなスクリプトには多くの例があり、教育目的やシステムのテストに使用できます。



▍AWSのセットアップ



  1. AWS IoTコンソールで、プログラムウィンドウの右上部分にあるMQTTクライアントリンクをクリックします。









    MQTTクライアントリンク



  2. 「MQTT Client」ウィンドウで、以前にゲートウェイに割り当てられた「もの」の名前(たとえば、 gateway-test-01 )を入力し、「 接続」ボタンをクリックします。









    「もの」への接続



    AWSがゲートウェイと通信できる場合、接続ステータスメッセージは接続済みに変わり、緑色に変わります。









    AWSゲートウェイの接続ステータス



  3. [ MQTT Client Actions ]セクションで、[ Subscribe to topic ]をクリックします。









    MQTTサブスクリプションを開始する



  4. [ サブスクリプショントピック]フィールドに「 sdk/test/Python



    と入力し、[ サブスクライブ ]ボタンをクリックします。









    MQTTサブスクリプションをセットアップする



    ゲートウェイから受信したメッセージは、メッセージウィンドウで表示できます。









    メッセージボックス



gatewayゲートウェイからメッセージを送信



  1. ゲートウェイからMQTTメッセージを送信するために必要なサーバーアドレスを確認するには、次のコマンドを実行します。



     aws iot describe-endpoint
          
          





    応答として、 endpointAddressパラメーターの値を取得します。これには、必要なものが含まれています。 アドレスバーを引用符で囲んでコピーします。









    サーバーアドレス



  2. AWSでの作業の例を含むフォルダーに移動します。 たとえば、この場合、これには次のコマンドが必要でした。



     cd /usr/share/awsiotsdk/samples/python/
          
          





  3. 次のようなコマンドを使用して、コード例の1つを実行します。



     python basicPubSub.py -e [ENDPOINT] -r [ROOTCA_PATH] -c [CERT_PATH]k [PRIVATE_KEY_PATH]
          
          





    スクリプト呼び出しパラメーターを設定する方法は次のとおりです。



    • エンドポイント :上記で見つけたサーバーアドレス。
    • ROOTCA_PATH :以前にダウンロードしたrootCA.pemファイルへのパス。
    • CERT_PATH :以前に生成されたcert.pemファイルへのパス。
    • PRIVATE_KEY_PATH :以前に生成されたprivkey.pemファイルへのパス。


    証明書とキーファイルは同じディレクトリに配置する必要があります。 ゲートウェイに接続して何も変更していない場合、デフォルトは/ rootまたは$ HOMEです。



    この場合、上記のコマンドは次のようになりました。



     python basicPubSub.py -e a1gx5hswnkj6kf.iot.eu-west-1.amazonaws.com -r $HOME/rootCA.pem -c $HOME/cert.pem -k $HOME/privkey.pem
          
          





    サンプルアプリケーションが機能している場合、下の図に示すようなデータがコンソールに表示されます。 これは、MQTTメッセージがsdk / test / Pythonトピックに送信されていることを示しています。









    Pythonスクリプトからのメッセージ



  4. AWSがこれらのメッセージを本当に受信するかどうかを確認するには、AWSウェブサイトのメッセージウィンドウに戻る必要があります。 新しい投稿があるはずです。









    ゲートウェイから送信された新しいメッセージ



    その結果、AWS IoTに接続されたゲートウェイでクラウドと対話するPythonスクリプトを実行できます。


結論



クラウド部分は、多くのIoTシステムで重要な役割を果たします。 このガイドを習得したので、Intel IoTゲートウェイをAmazon Web Servicesに接続し、Node-REDまたはPythonでクラウドサービスと連携できるアプリケーションを作成できます。



All Articles