このガイドでは、Intel EdisonボードをMicrosoft Azureクラウドサービスに接続する方法を示します。
Intel Edisonに最新のイメージがインストールされていることを確認してください。 これを行うには、Intel Webサイトの指示に従ってください 。 その後、シリアル接続を構成する必要があります 。 その後、手順に従ってAzure IoT SDKをインストールできます。
始める前に:
-
configure_edison --setup
を使用してボードをconfigure_edison --setup
しconfigure_edison --setup
- Intel Edisonボードが同じWi-Fiネットワーク上にあることを確認してください。
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