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

в 6:11, , рубрики: azure, Intel Edison, IoT, ldconfig, Microsoft Azure, qpid proton, Блог компании Intel, разработка, Разработка для интернета вещей

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

В этом руководстве будет рассказано, как подключить плату Intel Edison к облачному сервису Microsoft Azure.

Проверьте, что у вас установлена последняя версия образа на 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

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

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

Загрузка 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.

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

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

Надо убедиться, что Azure IoT SDK установлен правильно. Для этого надо построить приложение, основанное на SDK. Возьмем С-пример AMQP (AMQP – протокол обмена) и поменяем в нём параметры, чтобы они соответствовали нашему Azure IoT Hub и всё работало после сборки.
В файле /c/iothub_client/samples/iothub_client_sample_amqp/iothub_client_sample_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'

Скопируйте имя найденной директории в буфер обмена.

Замените [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/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

Автор: Intel

Источник

Поделиться новостью

* - обязательные к заполнению поля