Microsoft Azure IoTスイート用にIntel Edisonを構成する



このガイドでは、Intel EdisonボードをMicrosoft Azureクラウドサービスに接続する方法を示します。

Intel Edisonに最新のイメージがインストールされていることを確認してください。 これを行うには、Intel Webサイトの指示に従ってください 。 その後、シリアル接続構成する必要があります 。 その後、手順に従ってAzure IoT SDKをインストールできます。
始める前に:

Linux用のAzure IoT SDKをビルドするには、 Microsoftの指示に従って cmakeバージョン3.x以降が必要であることに注意してください。

Intel EdisonにGitをインストールする


Gitは分散バージョン管理システムです。 Azure IoT SDKのクローンを作成してローカルでビルドするには、インストールする必要があります。 これを行うには、Gitを含むパッケージをインストールします。 YoctoベースのIntel Edisonはopkgパッケージマネージャーを使用し、デフォルトではGitサポートを含みません。

Intel Edisonで、 /etc/opkg/base-feeds.confファイルに次の行を追加します。

 src/gz all http://repo.opkg.net/edison/repo/all src/gz edison http://repo.opkg.net/edison/repo/edison src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32 

これは、たとえば、組み込みのviエディターを使用して実行できます。
 $ vi /etc/opkg/base-feeds.conf 

viを使用したことがない場合は、 手順を参照してください 。 プログラムを終了できない場合は、パニックにならず、Resetを押さずに、Escを押し、次に「SHIFT」+「:」を押してwqと入力します。 したがって、現在のファイルを保存してプログラムを終了します。

次に、opkgデータベースを更新します。
 $ opkg update 


以下が表示されるはずです。



Intel EdisonでAzure IoT SDKをダウンロードする


Intel EdisonでGitを使用して、次のコマンドでAzure SDKリポジトリを複製します。 デフォルトのフォルダー/ home / rootを使用することをお勧めします。
 $ opkg install git $ git clone git@github.com:Azure/azure-iot-sdks.git 

RSAキーをデバイスに追加するように求められたら、「はい」と答えます。

代替インストール方法


何らかの理由でAzure IoT SDKを直接ボードに複製できない場合は、まずリポジトリをコンピューターに複製してから、 FileZillaまたはSCPを使用してネットワーク経由でファイルをIntel Edisonボードに転送します。

FileZillaを使用する場合、次のコマンドでボードのアドレスを確認します。
 wpa_cli status 

「sftp:// board_address」、ユーザー「root」、およびボードのパスワードを使用して、FileZillaとのSFTP接続を確立します。 これを行った後、ドラッグアンドドロップを使用してネットワーク経由でファイルを直接コピーできます。



Intel EdisonでAzure IoT SDKを構築する


Azure IoT SDKが正しくインストールされていることを確認する必要があります。 これを行うには、SDKに基づいてアプリケーションを構築する必要があります。 C-example AMQP(AMQP-exchange protocol)を使用して、Azure IoT Hubに対応するようにパラメーターを変更し、アセンブリ後にすべてが機能するようにします。
ファイル/c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_amqp.c以下に示すように、connectionString行のパラメーターを情報/c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_amqp.c置き換えます(静的const char * ....)。 そうしないと、この例は機能しません。

 static const char* connectionString = “HostName=[YOUR-HOST-NAME];CredentialType=SharedAccessKey;CredentialScope=Device;DeviceId=[YOUR-DEVICE-ID];SharedAccessKey=[YOUR-ACCESS-KEY]; 


ターミナルで、 /c/build_all/linux 、次の手順を実行します。

 $ opkg install util-linux-libuuid-dev $ ./build_proton.sh $ ./build.sh 


ldconfigキャッシュを更新する


また、メッセージを送信するためのライブラリであるQpid Protonを構築する必要があります。 そして、Cでサンプルをテストしてビルドする前に、結果のライブラリをldconfigに登録する必要があります 。 これを行うには、まずプロトンライブラリの場所を見つけてから、Yoctoの/libフォルダーにコピーする必要があります。

libqpid-proton.so.2を共有ライブラリに追加します。 これを行うには、ターミナルで次のコマンドを実行して見つけます。

 $ find -name 'libqpid-proton.so.2' 
見つかったディレクトリの名前をクリップボードにコピーします。

[directory_to_libqpid-proton.so.2]最初のステップの検索コマンドの結果に置き換えます。
 2. $ cp [directory_to_libqpid-proton.so.2] /lib 


このコマンドはキャッシュを自動的に更新します:
 $ ldconfig 

チェック:
 $ ldconfig -v | grep "libqpid-p*" 

すべての操作を正しく実行すると、リストに「libqpid-proton.so.2」が表示されます。
Qpid Protonをldcacheに追加し、Protonに基づいたCプロジェクトの例を構築できます。

/c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_amqp/linux
走る
 make -f makefile.linux 

それから
 ./iothub_client_sample_amqp 


結果は次のようになります。

 # ./iothub_client_sample_amqp hub_client/samples/iothub_client_sample_amqp/linux# Starting the IoTHub client sample AMQP... IoTHubClient_SetNotificationCallback...successful. IoTHubClient_SendTelemetryAsync accepted data for transmission to IoT Hub. IoTHubClient_SendTelemetryAsync accepted data for transmission to IoT Hub. IoTHubClient_SendTelemetryAsync accepted data for transmission to IoT Hub. IoTHubClient_SendTelemetryAsync accepted data for transmission to IoT Hub. IoTHubClient_SendTelemetryAsync accepted data for transmission to IoT Hub. Press any key to exit the application. Confirmation[0] received for message tracking id = 0 with result = IOTHUB_CLIENT_CONFIRMATION_OK Confirmation[1] received for message tracking id = 1 with result = IOTHUB_CLIENT_CONFIRMATION_OK Confirmation[2] received for message tracking id = 2 with result = IOTHUB_CLIENT_CONFIRMATION_OK Confirmation[3] received for message tracking id = 3 with result = IOTHUB_CLIENT_CONFIRMATION_OK Confirmation[4] received for message tracking id = 4 with result = IOTHUB_CLIENT_CONFIRMATION_OK 

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


All Articles