设置英特尔® EDISON 开发板和MICROSOFT AZURE 物联网套件


在开始将英特尔® Edison 开发板连接到 Azure 之前,您需要确保安装了最新的操作系统映像。 要确保这一点,请按照英特尔官方文档门户上的入门说明操作。 按照标准英特尔® Edison 设置说明操作后,您需要从您的机器上建立一个串行连接到您的设备。 向英特尔® Edison 开发板建立串行连接(命令行)后,接下来您可以按照以下说明安装 Azure 物联网软件开发套件。

开始之前

  • 确保您运行了 configure_edison --setup 命令来设置开发板
  • 确保英特尔® Edison 开发板通过本地 Wi-Fi 网络连接上线(应在 configure_edison 设置过程中发生)
  • cmake 注意事项

    据微软准备 Linux 开发环境的说明(https://github.com/Azure/azure-iot-sdks/blob/master/c/doc/devbox_setup.md),使用 Azure 物联网软件开发套件需要 cmake 版本 3.0 或更高版本。

    在英特尔® Edison 上安装 Git

    Git 是一款广泛使用的分发版本控制工具,我们需要在开发板上安装 Git 来克隆 Azure 物联网软件开发套件并在本地构建它。 如要做到这一点,我们必须先添加包括 Git 的扩展软件包。 英特尔® Edison 的 Yocto Project Linux build 使用 opkg 管理器,该管理器默认情况下不包括 Git 支持。

    1、首先,在您的英特尔® Edison 开发板命令行上,使用 vi 将以下命令行添加到您的 base-feed 中:

    $ vi /etc/opkg/base-feeds.conf

    2、将以下命令行添加至 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

    3、点击 esc 退出,输入 SHIFT+:,然后输入 wq,最后点击 Enter。 如果您对 vi 编辑不熟悉,请阅读此链接的内容。

    4、接下来,进行更新并升级命令行:

    $ opkg update 上的 opkg base-feed

    5、将会出现下列信息:


    将 Azure 物联网软件开发套件下载到您的英特尔® Edison 开发板上

    1、在您的英特尔® Edison 开发板上,使用 Git 并直接使用以下命令克隆 Azure 软件开发套件库。 我们建议使用位于 /home/root:

    $ opkg install git

    $ git clone git@github.com:Azure/azure-iot-sdks.git 中的默认文件夹

    2、系统可能会提示在设备中添加 RSA 密钥,请回复“是”。

    备用部署方法

    1、如果由于某种原因,您无法将 Azure 物联网软件开发套件直接克隆到到开发板上,您可以将库克隆到 PC / Mac / Linux 桌面上,然后通过网络使用 FileZilla 或 SCP 将文件传输至您的英特尔® Edison 开发板上。

    2、对于 FileZilla,可以在英特尔® Edison 上运行 wpa_cli status 来查找 IP 地址,然后使用 “sftp://your.ip.address”,使用密码 “root” 和英特尔® Edison 密码通过 FileZilla 建立 SFTP 连接。 完成后,您可以通过网络直接拖放文件。


    在英特尔® Edison 开发板上构建 Azure 物联网软件开发套件

    我们想要向自己证明已经成功构建了 Azure 物联网软件开发套件。 为此,我们将构建了一个基于软件开发套件的示例应用。 为此,我们需要更新示例 AMPQ 应用中的证书,以便与 Azure IoT Hub 应用相匹配。 当我们构建 Azure 物联网软件开发套件时,示例 C 应用默认自动构建,我们需要在构建软件开发套件时将证书添加到示例应用中,以便其在我们构建之后能够正常运行。

    1、使用 vi 或其他编辑器按照以下方式编辑 "/c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_amqp.c" :
    使用如下信息 (static const char* ….) 更换 IoT Hub 连接,即 connectionString 字符串占位符,当您完成后,结果应如以下连接字符串,括号中的是您的证书而非占位符。

    重要提示: 使用您的证书或示例更换括号中的项目无效。

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

    2、在终端中,输入 /c/build_all/linux 并执行以下步骤:

    $ opkg install util-linux-libuuid-dev

    $ ./build_proton.sh

    $ ./build.sh

    更新 ldconfig 高速缓存

    当构建 Azure 物联网软件开发套件时,我们需要先构建名为 Qpid Proton 的依赖性。 但是,我们需要先注册包含 ldconfig 的结果库才能进一步测试和构建我们的 C 语言示例。 为此,我们需要先找到 Proton lib,然后将其复制到 Yocto 的 /lib 文件夹中。

    1、通过运行以下终端命令将 libqpid-proton.so.2 添加到共享 lib 中:

    $ find -name 'libqpid-proton.so.2'

    将该命令调用的目录复制到剪切板上。

    2、$ cp [directory_to_libqpid-proton.so.2] /lib

    使用第一步中 find 命令所得的结果替换 [directory_to_libqpid-proton.so.2]。

    3、$ ldconfig

    这将自动更新高速缓存;它是一个单行命令。

    4、$ ldconfig -v | grep "libqpid-p*"

    如果您正确完成操作,屏幕上将会列出 "libqpid-proton.so.2” 。

    5、现在我们已经将 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"

    6、结果应与如下一致:

    # ./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

    文章来源:英特尔开发人员专区