Настройка платы Intel Edison для Microsoft Azure IoT suite

pic_title Проверьте, что у вас установлена последняя версия образа на Intel Edison. Для этого следуйте инструкциям на сайте Intel. После этого вам надо будет настроить последовательное соединение. Затем вы сможете выполнить установку Azure IoT SDK, используя наши инструкции. Перед тем, как начнёте:

  • Настройте плату, используя configure_edison --setup
  • Убедитесь, что плата Intel Edison находится в той же Wi-Fi сети.

Обратите внимание, что в соответствии с инструкциями Microsoft для сборки Azure IoT SDK для Linux требуется cmake версии 3.x или выше.

Установка Git на Intel Edison

Git это распределённая система контроля версий. Её надо будет установить, чтобы клонировать Azure IoT SDK и построить его локально. Для этого надо установить пакеты, которые включают Git. Intel Edison основанный на Yocto, использует менеджер пакетов 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

Вы должны увидеть следующее:

pic1

Загрузка Azure IoT SDK на плату Intel Edison

Используйте Git на Intel Edison для клонирования репозитория Azure SDK следующими командами. Мы рекомендуем использовать папку по умолчанию /home/root: $ opkg install git

$ git clone git@github.com:Azure/azure-iot-sdks.git

Если вас попросят добавить ключ RSA на ваше устройство, ответьте «yes».

Альтернативный метод установки

Если по какой-либо причине вы не можете клонировать Azure IoT SDK непосредственно на вашу плату, сначала клонируйте репозиторий на ваш компьютер, а затем передайте файлы по сети на плату Intel Edison с использованием FileZilla или SCP.

Если вы используете FileZilla, определите адрес платы командой: wpa_cli status

Используйте «sftp://адрес_платы», пользователя «root» и пароль от платы, чтобы установить соединение SFTP c FileZilla. После того, как вы это сделаете, вы можете копировать файлы непосредственно через сеть, используя drag-and-drop.

enter image description here

Постройка Azure IoT SDK на Intel Edison

Надо убедиться, что Azure IoT SDK установлен правильно. Для этого надо построить приложение, основанное на SDK. Возьмем С-пример AMQP (AMQP – протокол обмена) и поменяем в нём параметры, чтобы они соответствовали нашему Azure IoT Hub и всё работало после сборки. В файле /c/iothubclient/samples/iothubclientsampleamqp/iothubclientsample_amqp.c замените параметры в строке connectionString вашей информацией, как показано ниже (static 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. Чтобы это сделать, нам надо для начала выяснить, где находится библиотека Proton и затем скопировать её в папку /lib в Yocto.

Добавьте libqpid-proton.so.2 к разделяемым библиотекам. Для этого надо её найти, запустив в терминале следующую команду:

$ find -name 'libqpid-proton.so.2' Скопируйте имя найденной директории в буфер обмена.

Замените [directorytolibqpid-proton.so.2] результатом команды поиска из первого шага: $ cp [directory_to_libqpid-proton.so.2] /lib

Эта команда автоматически обновит кэш: $ ldconfig

Проверьте: $ ldconfig -v | grep "libqpid-p*"

Если вы выполнили все операции правильно, то увидите в списке «libqpid-proton.so.2» Мы добавили Qpid Proton к ldcache и можем построить пример С-проекта, основанного на Proton’е:

Вернитесь в папку /c/iothubclient/samples/iothubclientsampleamqp/iothubclientsample_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