В прошлом обзоре мы подробно рассмотрели, как запустить одноплатный микрокомьютер Raspberry Pi и немного поучились его программировать.
Однако возможности этого маленького устройства далеко не ограничиваются самостоятельной работой по загруженной программе. Поскольку Raspberry имеет полноценный выход в интернет через два интерфейса – Ethernet и Wi-Fi, можно использовать безграничные возможности глобальной сети для взаимодействия Raspberry с облачными сервисами, число которых в настоящее время быстро растет.
В частности, набирает обороты платформа Cayenne компании myDevices, специализирующаяся на решениях для Интернета вещей (IoT), «делающих мир подключенных вещей проще».
Платформа разработки проектов, впервые была представлена на конференции IoT Evolution Expo, и предназначена как для профессионалов, так и для любителей. После бесплатной регистрации учетной записи на облачном сервисе Cayenne, пользователь получает возможность создавать неограниченное количество проектов, имеет возможность пользоваться полноценными инструменты разработчика IoT приложений, с помощью которых можно удаленно получать информацию с датчиков, управлять исполнительными механизмами и непосредственно отдельными линиями ввода/вывода Raspberry и Arduino. Платформой предоставляется неограниченный объем хранилища для данных, поступающих от датчиков, и настраиваемые обработчики событий и оповещений, которые являются основными инструментами в пользовательских функциях автоматизации. С помощью этих инструментов можно легко и быстро создавать собственные информационные панели простым перетаскиванием (drag-and-drop) виджетов, также полностью конфигурируемых.
Мы решили проверить, как это работает, и рассказать о нашем опыте.
Для опытов мы взяли:
- Raspberry Pi 3 Model B;
- цифровой датчик температуры Dallas DS18B20 с подтягивающим резистором 4,7кОм;
- исполнительное релейное устройство аналогичное модулю ВМ146;
- вентилятор с напряжением питания 12В.
- блок питания на 12В;
- персональный компьютер (как вариант - смартфон).
Попробуем создать автоматическую систему, включающую вентилятор при превышении температуры значения 30 град Цельсия, и выключающего его при температуре менее 30 град.
Процесс установки интерактивный и практически полностью автоматический. Для понимания вопросов и сообщений достаточно минимальных знаний английского языка, в крайнем случай онлайн-переводчик в помощь!
Raspberry и компьютер, с которого производится вход на сайт myDevices.com, должны находиться в одной локальной сети.
В первую очередь необходимо зарегистрироваться на сайте mydevices.com
На этой странице необходимо ввести имя, фамилию, Е-mail, пароль, согласиться с условиями использования и нажить кнопку GET STARTED FREE.
После этого откроется страница интерфейса с предложением выбрать устройство, с которым будет взаимодействовать сервис – Шаг 1. Выберем Raspberry.
Делаем Шаг 2 – подключаем питание к Raspberry и подключаем микрокомпьютер к локальной сети любым способом: с помощью кабеля или по Wi-Fi, если в сети есть беспроводной роутер.
Нажимаем Next и попадаем на страницу Шага 3 – подключение Raspberry.
Здесь можно пойти двумя путями:
- установить приложение на смартфон и запустить процесс из него;
- запустить процесс подачей команд из терминала Raspberry.
Мы воспользовались терминалом.
Набираем две указанные на сайте команды:
- wget https://cayenne.mydevices.com/dl/rpi_f4dxcjql5a.sh
- sudo bash rpi_f4dxcjql5a.sh –v
На Raspberry запускается процесс установки необходимого программного обеспечения, при этом микрокомпьютер начинает взаимодействовать со страницей интерфейса на сайте, отображая ход процесса, по окончанию установки Raspberry автоматически перезагружается.
После перезагрузки на странице сайта открывается создаваемый при первом заходе по умолчанию демонстрационный проект. На панели этого проекта можно видеть несколько виджетов разного типа, отображающих некоторые параметры подключенной платы Raspberry, а также виджет команд, с помощью которых можно перезагрузить, выключить или конфигурировать Raspberry, а также получить доступ к удаленному рабочему столу (Remote Access).
Для реализации функции удаленного доступа необходимо разрешить для сайта cayenne.mydevices.com всплывающие окна, так как удаленный рабочий стол Raspberry открывается в новом окне! Кликнем на ссылку Remote Access и получим полное управление Raspberry.
Также на вкладке главной страницы проекта есть очень полезная информация о контактах GPIO в весьма привлекательной и информативной графической форме. Левый верхний вывод на экране соответствует левому верхнему выводу на плате Raspberry, если смотреть на нее со стороны USB и Ethernet разъемов.
Подключим к плате замечательный цифровой датчик температуры DS18B20. Он выдает данные на шину 1-Wire, для которой предназначен вывод GPIO 4. Питание датчика подключаем к выводу, обозначенному V50 (это 5 вольт), землю – к GND. Также необходим подтягивающий резистор 4,7кОм от вывода данных на вывод питания.
И, о чудо, на экране проекта совершенно самостоятельно в составе панели появляется подключенный датчик DS18B20 и соответствующий ему виджет!
Правда, температура отображается в виде графика и в градусах Фаренгейта, но это мы быстро поправим. Дважды кликнув на названии датчика на левой части панели, или на значке шестеренки в правом верхнем углу виджета датчика мы откроем свойства виджета.
И поменяем Line Chart на Value, Fahrenheit на Celsius и нажмем Save.
Виджет датчика температуры на панели примет скорректированный нашими действиями вид.
Подключим вход исполнительного релейного модуля к выводу GPIO 17, его питание - к 5В, землю – к выводу GDN Raspberry.
Соответственно, нормально разомкнутые контакты реле модуля подключим к вентилятору и блоку питания.
Теперь необходимо сконфигурировать на панели Cayenne устройство, работающее на выход GPIO 17. Для этого кликаем в верхней левой части пнели на ссылку Add new и выпадающем меню выбираем Device/Widget. Далее слева направо выбираем Actuators – Relay – Relay Switch и настраиваем параметры реле в разделе Enter Setting, выбирая параметры в удобных выпадающих меню.
После выбора подходящих параметров для канала 17 разъема GPIO, в том числе иконки для виджета, кликаем Add Actuator. На панели появится новое устройство – Relay Switch.
Теперь, после установки устройств, можно создать обработчики событий превышения температуры порога 30 град и снижения температуры до значения менее 30 град.
Это делается следующим образом. В правом верхнем углу виджета температуры кликаем на шестеренке и выбираем Trigger. Открывается окно настройки триггеров – обработчиков событий.
Прежде всего, следует дать триггеру имя – в нашем случае это триггер на включение вентилятора, поэтому назовем его «trig-on». В окна if и then надо перетащить название устройства с левой панели – тащим Raspberry Pi в оба окна. После перетаскивания открываются опции в выпадающих меню, а также другие, в зависимости от выбранного датчика или другого устройства.
В нашем случае для создания первого триггера в разделе if выбираем датчик температуры, порог 30 градусов, и опцию Temperature above (температура более). В разделе then выбираем ранее сконфигурированный Relay Switch на GPIO 17 и On (включить). Кликаем Save.
Аналогично настраиваем триггер на выключение с названием trig-off и выключением GPIO 17 при условии падения температуры ниже порога 30 град.
После сохранения будет выведен список триггеров-обработчиков. Их можно оперативно выключить и включить (показано стрелками), а также отредактировать.
Все действия с виджетами и панелью интуитивно понятны и наглядны. Если что-то все-таки не получается, можно обратиться к подробной документации, размещенной на сайте Cayenne.
Работа в мобильном приложении не слишком отличается от десктопного варианта, но возможностей немного меньше, видимо, в силу меньших размеров экрана.
Кстати, нажав на соответствующий GPIO, можно вручную переконфигуровать его на вход (по умолчанию) или выход, и устанавливать уровни на выходе также вручную.
После создания триггеров можно проверить работу созданной автоматической системы управления. При температуре менее 30 градусов виджет Relay Switch показывает Value 0 – реле выключено, если температура более 30 градусов - на виджете 1, реле включено.
Столь же просто настраивается отсылка SMS или сообщений по E-mail при наступлении каких-либо событий: срабатывания датчика открытия двери или окна, достижения порогов измеряемых величин, отключению питания Raspberry и т.п. Также можно устанавливать срабатывание триггера по расписанию, а некоторые выходы позволяют формировать управляемую ШИМ для, например, регулирования освещенности или мощности.
Сервис позволяет выбрать подключаемое устройство из вполне репрезентативного и постоянно пополняемого списка датчиков, исполнительных устройств и расширений (шилдов) для Raspberry и Arduino.
Несмотря на то, что описание действий в этой статье выглядит несколько тяжеловесно, на деле же выбор устройств и их настройка происходит довольно быстро, а при наличии небольшого опыта занимает буквально минуты.
Таким образом, использование облачного сервиса Cayenne от компании myDevices для «интернета вещей» является весьма интересным вариантом построения автоматизированных систем управления «умным домом» на основе широко распространенных платформ Raspberry и Arduino, а также огромного количества подключаемых к этим платформам устройств.
Небольшая видеоиллюстрация: