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
    URL  iotdk.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でクラりドサヌビスず連携できるアプリケヌションを䜜成できたす。

Source: https://habr.com/ru/post/J314282/


All Articles