Статьи / KA050 /
Laurent-5G: Управление по SMS с обратной связью
§ 50. Laurent-5G: Управление по SMS с обратной связью
|
Дмитрий Иванов, 10 Ноября 2020
|
Рассмотрим решение следующей практической задачи:
Необходимо организовать управление реле модуля по SMS (включать / выключать). Дополнительно, нужно получить ответную SMS,
подтверждающую факт приема команды и отражающую факт изменения состояния реле (обратная связь).
Задачу решим с помощью одного CAT события (программируемая логика). Но первым делом, настроим модуль Laurent-5G для работы в сети GSM.
Напомним вкратце последовательность действий. Считаем что SIM карта вставлена, GSM антенна подключена.
В WEB интерфейсе заходим в раздел посвященный GSM.

Укажем PIN код установленной SIM карты. Вводим код и нажимаем на кнопку "Изменить". Данные сохранятся в энергонезависимой памяти.
Далее, выбираем AUTO режим работы GSM модема - т.е. при наличии установленной SIM карты и корректном PIN коде
модуль будет всегда пытаться выйти в сеть GSM и зарегистрироваться в ней.

Начинается процесс регистрации в сети:

Успех! GSM модем успешно зарегистрировался в сети и готов к приему / отправке SMS и звонков.

Последним шагом, добавим наш телефонный номер (на который должна прийти ответная SMS от модуля) в базу "белых" номеров.
В дальнейшем по ID этого номера (в данном случае, ID=1) мы сможем автоматически отправлять SMS и совершать звонки
с модуля при возникновении событий.

Теперь сформируем правило CAT по входящей SMS с некоторым конкретным текстом. Модуль, приняв
такую SMS, выполнит управление реле и отправит в ответ обратную SMS в которой с помощью динамических
переменных мы подставим текущее состояние реле (после операции управления).

Пусть текст входящей SMS будет равен VOROTA_ON (намекая о том, что данным действием через реле мы будем, например, управлять воротами).

Теперь реакция. Как обычно для модулей Laurent-5 / 5G задаем ее в виде списка Ke-команд управления.
Первым шагом, например, включим 1-ое реле с помощью команды $KE,REL. Далее отправим SMS на
номер в "белой" базе с ID=1 в которой отразим факт включения реле через динамическую
переменную ~RL1~. При формировании текса SMS для отправки данная переменная будет
заменена на текущее состояние реле.
$KE,REL,1,1
$KE,SMS,SND,1,C,RELE_1: ~RL1~~LF~Date: ~DT~~LF~Time: ~TM~
Все динамические переменные начинаются и заканчиваются символами ~ (Тильда). Немного пояснений по использованным переменным:
Динамическая переменная |
Пояснения |
~RL1~
|
Динамическая переменная отвечающая за состояние реле (включено / выключено).
Для 1-го реле следует использовать переменную ~RL1~, для 2-го: ~RL2~ и т.д.
|
~LF~
|
Перенос строки (хочется видеть SMS отформатированной, так что бы разные данные были на разных строках) |
~DT~
|
Текущая дата (год, месяц, день) из RTC (часы реального времени)
|
~TM~
|
Текущее время в рамках дня (часы, минуты, секунды) из RTC (часы реального времени)
|
Полный список всех Ke-команд управления и динамических переменных поддерживаемых модулем можно найти в соответствующем документе
Описание Ke-команд управления

Присвоим на следующем шаге символическое имя для события:

По умолчанию, сразу после создания CAT событие будет выключено. Его следует включить соответствующей "кнопочкой" в панели управления.

Если теперь отправить SMS с текстом "VOROTA_ON" (регистр символом имеет значение) на номер SIM карты в модуле Laurent-5G как в
скором времени мы услышим щелчок включения 1-го реле и получим SMS с подтверждением факта приема команды и текущим состоянием 1-го реле.

Факт обработки события так же можно наблюдать через увеличение счетчика срабатываний.
На компактной панели справа можно увидеть так же факт изменения состояния 1-го реле:

© Дмитрий Иванов
10 Ноября 2020 года
http://www.kernelchip.ru