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

Дата публикации: 29.02.2016



В этом руководстве будет рассказано, как подключить плату 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



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



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



Постройка 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



Автор статьи: Виктор Гурылев

Данный материал написан участником сообщества. В статье представлено мнение автора, которое может не совпадать с мнением корпорации Microsoft. Microsoft не несет ответственности за проблемы в работе аппаратного или программного обеспечения, которые могли возникнуть после использования материалов данной статьи.