Altinkaya: турецкие корпуса для РЭА
РадиоЛоцман - Все об электронике

Обзор облачного сервиса myDevices Cayenne для создания IoT проектов и устройств на Raspberry Pi

myDevices Cayenne

Вадим Колесник, г. Тирасполь

Не так давно компания myDevices анонсировала платформу, предназначенную для создания проектов Интернета вещей (IoT) на базе одноплатного компьютера Raspberry Pi (RPi).

Платформа разработки проектов, получившая название Cayenne (Рисунок 1) и впервые представленная на конференции IoT Evolution Expo, предназначена как для профессионалов, так и для любителей. После бесплатной регистрации своей учетной записи на облачном сервисе Cayenne вы получите возможность создавать неограниченное количество проектов. Вам также будут доступны полноценные инструменты разработчика IoT приложений, с помощью которых вы сможете удаленно получать информацию с датчиков, управлять электродвигателями, исполнительными механизмами и непосредственно отдельными линиями ввода/вывода RPi. Дополнительно пользователю предоставляется неограниченный объем хранилища для данных, поступающих от датчиков, и настраиваемые обработчики событий и оповещений, которые являются основными инструментами в пользовательских функциях автоматизации. Вы с легкостью и очень быстро сможете создавать свои информационные панели простым перетаскиванием виджетов, кстати, тоже полностью конфигурируемых.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Облачный сервис Cayenne для создания IoT проектов на Raspberry Pi
Рисунок 1. Cayenne: Платформа и облачный сервис для упрощенного
создания IoT проектов на Raspberry Pi.

Разработчики позиционируют Cayenne как первое drag-and-drop приложение и облачный сервис для упрощенной разработки IoT проектов на RPi и утверждают, что для создания полнофункционального IoT приложения/устройства потребуется несколько минут. Я решил на практике проверить возможности системы Cayenne и поделиться своими впечатлениями в данном обзоре.

Забегу вперед и скажу, что графический пользовательский интерфейс системы, имеющий вид информационной панели, интуитивно понятен и достаточно хорошо проработан, графические виджеты подключенных периферийных устройств могут настраиваться пользователем, все действия пользователя для подключения периферии сведены к минимуму.

Итак, для проверки работоспособности и возможностей программной платформы Cayenne мне понадобились:

  • плата Raspberry Pi 2 Model B;
  • карта памяти microSD 16 Гбайт (достаточно 8 Гбайт) Class 6 или Class 10;
  • цифровой датчик температуры DS18B20;
  • вентилятор от системного блока компьютера;
  • MOSFET (2SK3918) для управления вентилятором;
  • несколько светодиодов и резисторов;
  • смартфон под управлением ОС Android;
  • блок питания 5 В/2 А;
  • блок питания 12 В/1 А.

Установка Cayenne

Сразу отмечу, что после регистрации учетной записи Cayenne пользователю предлагается пошаговая инструкция по установке и настройке системы, открывается доступ к общедоступным проектам и документации по подключению периферии к плате RPi.

На первом этапе нам необходимо установить на карту памяти образ ОС Raspbian Jessie (Jessie Lite на момент написания статьи не поддерживался), как это делается, я думаю, не нужно рассказывать, и запустить систему на нашей плате RPi. Обращаю внимание, что установка ОС допускается только на карту памяти microSD, не допускается использование каких-либо загрузчиков (Berryboot, Noobs). После запуска ОС (не забудьте выполнить вход по логину/паролю), неважно в терминальном режиме или в графической оболочке, для удобства дальнейшей работы и настройки необходимо включить поддержку SSH подключений, а также расширить файловую систему на весь доступный объем карты памяти. Для этого необходимо запустить утилиту для настройки RPi с помощью команды:

sudo raspi-config

Кроме того, возможно потребуется настроить локализацию, часовой пояс, клавиатуру.

После активации SSH мы можем реализовать удаленное управление RPi по протоколу SSH с ПК в локальной сети при помощи терминальной программы, например Putty.

Далее приступаем к установке системы Cayenne, проходящей полностью в автоматическом режиме с интерактивным уведомлением пользователя о текущем состоянии. Установку можно выполнить двумя способами: в терминале ОС Raspbian или из мобильного приложения Cayenne. Самый простой вариант установки – из мобильного приложения; в этом случае пользователю необходимо только зарегистрироваться или выполнить вход в существующую учетную запись, а дальше приложение само определит подключенную в локальной сети плату Raspberry Pi и автоматически установит на нее все необходимые программные модули.

Для установки Caynee в терминальном режиме необходимо в командной строке Raspbian запустить на выполнение две команды, которые вы увидите в пошаговой онлайн инструкции по установке.

Установка необходимых программных модулей и агента Cayenne, как и заявлено, занимает около 10 минут. По окончанию установки вы получите уведомление на электронную почту, ОС перезагрузится, и WEB-интерфейс или приложение на смартфоне автоматически установят соединение с Raspberry Pi, после чего вы увидите свою приборную панель и сможете приступать к добавлению датчиков, исполнительных устройств и написанию алгоритмов автоматизации (Рисунок 2).

Вид приборной панели Cayenne при первом запуске
a)
Вид приборной панели Cayenne при первом запуске в мобильном приложении
b)
Рисунок 2. Вид приборной панели Cayenne при первом запуске:
a) веб-интерфейс, b) мобильное приложение.

Интерфейс системы

Далее в статье я буду опираться на веб-интерфейс системы – пользовательский интерфейс мобильного приложения идентичен, отличия лишь в элементах оформления и методах управления, – и на основе веб-интерфейса вы без труда разберетесь в мобильном приложении.

При первом запуске системы на рабочем столе по умолчанию вы увидите 3 виджета, сообщающих загрузку процессора и состояние памяти, а в мобильном приложении по умолчанию добавлены виджеты, информирующие о температуре процессора, системных процессах и скорости сетевого подключения. С левой стороны располагается панель управления и подключения датчиков, актуаторов, исполнительных устройств, а также дополнительных плат RPi. Я не ошибся, пользователь в одном проекте может объединить несколько одноплатных компьютеров, выполняющих разные задачи, и составлять гибкие алгоритмы для автоматизации каких-либо процессов в системе.

С правой стороны располагается меню с информацией об учетной записи, инструментами удаленного управления и настройки платы RPi. Пользователю доступны команды перезагрузки и выключения RPi, включения/выключения веб-камеры, коммуникационных интерфейсов (I2C, SPI, UART, 1-Wire) и подключения к удаленному рабочему столу RPi (через браузер). При подключении к удаленному рабочему столу пользователь получает полный доступ к ОС (Рисунок 3).

Cayenne: Удаленный рабочий стол Raspbian в окне браузера
a)
Cayenne: Удаленный рабочий стол Raspbian в окне браузера на смартфоне
b)
Рисунок 3. Cayenne обеспечивает удаленный доступ к рабочему столу
OC Raspbian: a) веб-интерфейс, b) браузер смартфона.

На рабочий стол или приборную панель (такое описание больше подходит из-за соответствующего графического оформления) пользователь самостоятельно добавляет виджеты датчиков, портов ввода/вывода, исполнительных устройств. Возможность конфигурирования виджетов на приборной панели позволяет создавать различные проекты графических интерфейсов (Рисунок 4).

Cayenne: пользователь может конфигурировать виджеты на приборной панели
Рисунок 4. Пользователь может конфигурировать стиль
виджетов и менять их расположение на рабочем столе.

Приборная панель имеет еще одну очень полезную закладку – интерактивную карту портов ввода/вывода общего назначения (GPIO) на разъеме расширения Raspberry Pi (Рисунок 5). Пользователь видит назначение линий ввода/вывода, текущую конфигурацию и логическое состояние, а также может конфигурировать доступные порты (вход/выход) и менять логическое состояние. Если пользователь использует какой-либо доступный порт для своих целей (добавляет виджет на рабочий стол), то на карте портов ввода/вывода будет отображено имя виджета, что очень удобно при расширении функционала и добавлении новых устройств.

Cayenne: Интерактивная карта портов ввода/вывода на разъеме GPIO RPi
a)
Cayenne: Интерактивная карта портов ввода/вывода на разъеме GPIO RPi
b)
Рисунок 5. Интерактивная карта портов ввода/вывода на разъеме
расширения Raspberry Pi:
a) веб-интерфейс, b) мобильное
приложение.

Редактор обработчиков условий автоматизации (Triggers) и планировщик (Scheduling) доступны в пользовательском меню (User Menu) или непосредственно в свойствах виджета (Рисунок 6).

Cayenne: Редактор алгоритмов автоматизации и планировщик доступны в настройках виджетов
Рисунок 6. Редактор алгоритмов автоматизации и планировщик
доступны в настройках виджетов.

Подключение дополнительных устройств

Дополнительные устройства – это внешняя периферия, которую пользователь подключает к плате RPi (различные датчики, исполнительные устройства, кнопки, реле и пр.). В системе Cayenne поддерживается работа с цифровыми и аналоговыми датчиками, однако последние подключаются посредством внешнего АЦП к интерфейсу SPI/I2C платы RPi. Исполнительные устройства и механизмы, например, диммеры освещения и сервоприводы, также подключаются с помощью дополнительных драйверов или плат расширения (Рисунок 7).

Возможность работы системы Cayenne с аналоговыми датчиками
Рисунок 7. Возможность работы системы Cayenne с аналоговыми датчиками
обеспечивается поддержкой внешних АЦП.

На момент написания статьи в системе Cayenne поддерживалась работа со следующей периферией:

  • Датчики температуры:
    • TMP36, TMP102, DS18B20, BMP180, термисторы;
  • Датчики освещенности:
    • VCNL4000, TSL2561, фоторезисторы;
  • Датчики давления:
    • BMP180, аналоговые датчики давления;
  • Аналоговые датчики приближения;
  • Цифровые датчики движения;
  • Исполнительные устройства:
    • выключатели освещения и диммеры;
    • электродвигатели и сервоприводы;
    • реле, электрические клапаны;
    • выходы ШИМ;
  • Дополнительные средства для работы с аналоговыми сигналами и расширения портов ввода/вывода:
    • аналоговые преобразователи:
      • MCP3004, MCP3204, MCP3208, MCP3008, ADS1115, ADS1015;
    • расширение портов ввода/вывода:
      • MCP23018, MCP23S18, MCP23017, MCP23S17, MCP23009, MCP23S09, MCP23008, MCP23S08, DS2408, плата расширения PiFace Digital;
    • ШИМ:
      • PCA9685 – 16 ШИМ выходов (12 бит).

Пользователеям доступна документация по подключению указанной периферии. Все подключения внешних устройств к RPi необходимо выполнять при отключенном питании.

Как я указал в начале статьи, использовались цифровой датчик температуры, вентилятор и несколько светодиодов. Схема подключений к RPi изображена на Рисунке 8.

Схема подключения датчика DS18B20, светодиодов и вентилятора к плате RRi.
Рисунок 8. Схема подключения датчика DS18B20, светодиодов и
вентилятора к плате RRi.

Благодаря карте портов ввода/вывода подключение к разъему расширения RPi не вызвало сложностей (Рисунок 9). Напомню, я не ставил задачу по разработке какой-либо системы автоматизации, а лишь хотел убедиться в работоспособности облачного сервиса Cayenne и проверить, действительно ли так просто создать IoT устройство на его основе.

Подключение периферии к разъему расширения платы RPi.
Рисунок 9. Подключенние датчика температуры, светодиодов и
вентилятора к разъему расширения платы RPi не
вызвало трудностей.

После подключения внешней периферии и обязательной проверки монтажа мы можем запускать RPi. Запуск ОС и подключение к облачному сервису Cayenne займет 4-5 минут. После того, как в веб-интерфейсе или мобильном приложении мы увидели, что подключение к удаленному устройству выполнено, можем приступать к добавлению устройств и управляющих виджетов. В моем случае датчик температуры DS18B20 определился автоматически, и после подключения RPi к Cayenne виджет появился на приборной панели; осталось только настроить его (Рисунок 10). Все данные с датчика температуры накапливаются системой для возможности дальнейшего отображения статистики в виде диаграмм. Кроме того пользователь может скачать данные в формате csv для обработки в других программах.

Cayenne: Настройка виджета цифрового датчика температуры DS18B20.
Рисунок 10. Настройка виджета цифрового датчика температуры DS18B20.

Вентилятор (FAN_1) подключен к порту GPIO22, поэтому добавляем виджет Digital Output (Digital Actuator). Указываем имя, иконку, канал ввода/вывода и принадлежность порта (Integrated GPIO). В данном случае последний параметр говорит системе, что мы используем порт ввода/вывода на плате RPi, но при подключении платы расширения (или внешней микросхемы расширителя портов ввода/вывода) мы сможем указать канал ввода/вывода, принадлежащий плате расширения. Таким же способом подключаются и настраиваются виджеты для светодиодов и другой периферии (Рисунок 11).

Cayenne: Установка и настройка виджета управления цифровым выходом RPi.
Рисунок 11. Установка и настройка виджета управления
цифровым выходом RPi.

Все задействованные пользователем каналы ввода/вывода отображаются на карте портов GPIO. Конфигурация портов (вход/выход) автоматически меняется в зависимости от типа подключения.

Проверяем работоспособность: поступают данные с датчика температуры и накапливается статистика (можно посмотреть статистку изменения температуры по периодам); с помощью виджетов на приборной панели FAN_1, LED_1, LED_2 мы можем управлять вентилятором и светодиодами. Обратите внимание, что при этом изменяется логическое состояние выхода на карте портов ввода/вывода.

Создание алгоритмов автоматизации и планировщик

Далее можем приступить к созданию алгоритмов автоматизации (триггеров) на примере контроля окружающей температуры. Создание обработчика события выполняется в стиле конструкции If-Then (Рисунок 12) и требует минимальных действий пользователя:

  • Перетаскиваем нужное устройство RPi (напомню, мы можем контролировать несколько плат RPi), к которому подключен необходимый нам датчик, с панели управления в поле оператора If;
  • В операторе If выбираем датчик температуры и устанавливаем необходимый порог срабатывания (например, температура выше 25 °С);
  • В поле оператора Then перетаскиваем с панели управления нужное устройство RPi, к которому подключено исполнительное устройство;
  • Выбираем канал управления и устанавливаем активное состояние (вкл. (1)/выкл. (0))
  • Присваиваем обработчику имя и сохраняем.
Cayenne: Редактор алгоритмов автоматизации, настройка условия включения вентилятора.
Рисунок 12. Редактор алгоритмов автоматизации,
настройка условия включения вентилятора.

С этого момента при выполнении условия, что окружающая температура выше 25 °С, включится вентилятор. Далее таким же способом можно добавить условия для выключения вентилятора. Чем больше датчиков, отслеживающих состояние окружающей среды, тем более гибкие условия можно задавать и контролировать. Дополнительно здесь же можно создать текстовые уведомления пользователя о выполнении того или иного условия.

Не забываем, что порты GPIO можно использовать как цифровые входы, и их тоже можно задействовать в системе (конфигурируются автоматически) и алгоритмах автоматизации.

Такой же подход используется в планировщике заданий. Пользователь может настроить автоматическое управление внешними устройствами по расписанию и настроить периодичность выполнения действий (Рисунок 13).

Cayenne: Встроенный планировщик позволяет реализовать управление внешними устройствами по расписанию.
Рисунок 13. Встроенный планировщик позволяет реализовать
управление внешними устройствами по расписанию.

Заключение

До последнего времени я не встречал подобных сервисов для разработки IoT проектов на каких-либо одноплатных компьютерах или микроконтроллерах. Функционал и возможности облачного сервиса Cayenne, легкость установки, настройки и подключения датчиков, исполнительных устройств и другой периферии, несомненно, порадовали. Чтобы создать «с нуля» самую примитивную систему удаленного контроля температуры и автоматического управления вентилятором с графическим пользовательским интерфейсом, мне потребовалось несколько часов. При этом мне не пришлось прибегать к изучению какой-либо документации по работе в Linux-системах, настройке каких-либо интерфейсов передачи данных и пр. Все очень доступно, понятно и подробно объясняется в самой системе Cayenne. Хотя многие со мной и не согласятся, ввиду того, что развитие подобных систем полностью избавляет пользователя от необходимости иметь и развивать хоть какие-то навыки программирования микроконтроллеров и встраиваемых приложений, но подобные сервисы имеют право на жизнь. Кто-то скажет, что подключение периферии (датчики, актуаторы, АЦП) к Raspberry Pi и работа с ней – это абсолютно несложно. Возможно, но собрать это в комплексную систему с графическим интерфейсом и удаленным доступом не каждому под силу. Кроме того, многим людям просто необходимы подобные сервисы – такой вывод я сделал после просмотра форумов и сообщений пользователей в сообществе Cayenne.

Конечно же, у Cayenne (учитывая, что это новый проект) есть свои недостатки, пользователями и самими разработчиками выявляются какие-то недоработки, отклонения в работе – это присуще любым проектам. Но разработчики Cayenne оперативно их устраняют, добавляют новые функции с учетом мнения пользователей, постепенно расширяют список поддерживаемых устройств и датчиков. Поэтому я могу сказать, что Cayenne достойна внимания не только новичков и любителей, но и профессионалов.

На английском языке: Cayenne dashboard simplifies IoT project building on Raspberry Pi

Спортивное компьютерное кресло TopChairs Cayenne красное предназначено для долгой работы или игры за компьютером на даче, дома, а также в офисах....
Фильтр салона для а/м VW Touareg/Porsche Cayenne -2010 Riginal240 ₽
Оптулс
Россия
4030 JTC Фиксатор распредвала PORSCHE Cayenne2 284 ₽
Энтеро
Россия, Белоруссия, Казахстан
Cayenne красное13 490 ₽
Akcel
Весь мир
CAYENNE BATTERY (CAYENNE BATTERY)по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • У Raspberry Pi (по крайней мере модели 1 и 2) есть один недостаток, который, на мой взгляд, ставит под вопрос возможность применения ее в IoT устройствах - это использование в качестве системного накопителя карты памяти micrSD. По пользовательским отзывам - очень часто карта памяти выходит из строя. Я лично тоже столкнулся с такой проблемой. При этом проявляться эта проблема может по разному... Можно конечно решить проблему и запустить систему с USB Flash (всякие программные ухищрения), при этом скорость работы "малинки" несколько увеличиться, но многие приложения не работают нормально, другие и вовсе не устанавливаются в таком случае. Raspberry Pi 3, насколько я знаю, уже имеет встроенную поддержку загрузки ОС с USB.