- PVSM.RU - https://www.pvsm.ru -

Облако Intel IoT Analytics [1]позволяет закладывать простую логику на выполнения определенного действия. Создание правил разделяется на два этапа. На первом этапе требуется указать выполняемые действия. На втором этапе указать набор условий, которые должны выполняться для выполнения действия. Например, значение температуры выше 28 C.
Действиями могут быть:
Рассмотрим следующий сценарий: при достижение температуры 28 С, требуется:
Правила создаются в разделе Rules [2]. Каждое выполнение правило сопровождается формированием оповещения в системе, раздел Alerts [3].
Возьмем стенд из Intel Edison. Работа с облаком Intel IoT Analytics: регистрация и отправка данных [4].
Решение состоит из следующих пунктов:
1. Формирование команд для отправки Actuation — реле
Требуется создать команды Complex command, для этого перейдем в раздел Control [5].
Создадим команду на включение реле.
Выберем устройство edison habr, компонент relay1, действие значение 1, транспорт websocket, добавим команду Add action. Нажмем на кнопку Save as complex command и сохраним команду с именем relay1_ON

Так же создадим команду на выключения, только выберем, действие значение 0, имя relay1_OFF
В разделе Complex commands отобразятся созданные команды

2. Создание правил отправки уведомлений и включения/выключения реле
Перейдем в раздел Rules [2], добавим правило Add a rule
Заполним поля:
Name: Higth_temp_PowerOnRelay_and_send_to_web@devdotnet.org
Description: при достижение температуры 28 С, отправить уведомление на email web@devdotnet.org и включить реле
Priority: Medium — влияет только на очередность обработки, правило с значением Higth выполнится первым
Notifications type. Далее укажем тип уведомления.
Доступно:
Для правила можно создавать несколько различных уведомлений/действий.
Выберем Email. В разделе Email notifications выберем из списка web@devdotnet.org.
Добавим второе действие Actuation. Из списка Actuation notifications выберем relay1_ON.

Перейдем на следующую страницу, копка Next
На шаге выбора устройства выберем — edison habr
Следующий шаг — создание условий.
Условий может быть несколько. Для нескольких условий задается логическое правило:
Add Conditions
Параметр Enable Automatic Reset — влияет на многократное выполнение условия. Если его не отметить, то плавило один раз выполниться, и перейдет в статус Archive и в дальнейшем будет не активно. Поэтому в нашем случае требуется отметить этот пункт как true.
Требуется добавить два условия. Первое условие, сопоставление значения температуры, выражение: ">=28".
Поле Monitored Measure: temperature1 (Number) — из списка выберем нужный сенсор
Поле Trigger When содержит пункты:
Выберем — Timenased Condition
Выражение: ">=28" за последние 10 секунд
Второе, состояние реле должно быть false т.е. выключено. Иначе, постоянно будут отправлять ся команды на включение реле, после каждого измерения температуры выше 28 C.
Поле Monitored Measure: relay1 (Boolean)
Поле Trigger When: Base Condition — базовое сравнение
Условие Eqal «0» — равно 0

Сохраним, кнопка Done.
Создадим второе правило
Name: Low_temp_PowerOffRelay_and_send_to_web@devdotnet.org
Actuation notifications: relay1_OFF

В результате будет создано два правила

3. Изменение Arduino-кода
В предыдущем примере [4] была допущена ошибка в отправки состояния реле. Вне зависимости от отправки команды, состояние реле всегда принимало значение false, оператор:
iotkit.send("relay1", 0);
Ниже исправленный вариант кода:
if ((component != NULL)) {
if (strcmp(component->valuestring, "relay1") == 0) {
if ((command != NULL)) {
if (strcmp(command->valuestring, "RELAY.v1.0") == 0 && strcmp(value->valuestring, "0") == 0) {
Serial.println("Relay Off!");
digitalWrite(9, false);
//Send state Actiator
iotkit.send("relay1", 0);
}
if (strcmp(command->valuestring, "RELAY.v1.0") == 0 && strcmp(value->valuestring, "1") == 0) {
Serial.println("Relay on!");
digitalWrite(9, true);
//Send state Actiator
iotkit.send("relay1", 1);
}
}
}
}
Теперь проведем тест, повысим температуру
График температуры

Оповещение

Письмо на email

Охладим датчик


На этом создание правил закончено. При ожидание действий, следует учитывать временную задержку (до 1 минуты) от момента совпадения условий.
Как видно из статьи, заложен достаточно гибкий функционал формирования условий, и присутствуют основные действия. Запрос GET HTTP, можно использовать для отправки SMS сообщения через HTTP шлюзы отправки.
Небольшое дополнение. Агент отправки данных в облако автоматически по умолчанию не запускается при включение Intel Edison, поэтому его следует перевести в режим автостарта. Выполнить команду:
# systemctl enable iotkit-agent
Автор: devzona
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/99984
Ссылки в тексте:
[1] Intel IoT Analytics : https://dashboard.us.enableiot.com
[2] Rules: https://dashboard.us.enableiot.com/ui/dashboard#/rules
[3] Alerts: https://dashboard.us.enableiot.com/ui/dashboard#/alerts
[4] Intel Edison. Работа с облаком Intel IoT Analytics: регистрация и отправка данных: http://geektimes.ru/post/263084/
[5] Control: https://dashboard.us.enableiot.com/ui/dashboard#/control
[6] Источник: http://geektimes.ru/post/263336/
Нажмите здесь для печати.