Роутеры LT5x имеют 3 универсальные линии GPIO, которые могут работать в трех режимах:
- АЦП - измерение напряжения (до 60В на один канал)
- Сухой контакт (сигнал замыкание/размыкание)
- Открытый коллектор (управление питанием внешних подключенных устройств)
В данной статье рассмотрим способ реализации чтения состояния Сухого контакта через SMS.
Поскольку готового решения для реализации такой функции нет, был разработан bash-скрипт, который считывает состояние входа (путем отслеживания напряжения) и сравнивает с пороговым значением напряжения (3585мВ). Если значение напряжения выше порогового - контакт разомкнут, и наоборот.
1. Скачать скрипт
Необходимо скачать скрипт по ссылке - sms_IO1_state.sh
2. Изменить номер входа IO
В текстовом редакторе можно изменить номер входа, с которого необходимо получать состояние.
В квадратных скобках можно указать номер входа X, где X = 0 - IO1, X = 1 - IO2, X = 2 - IO3
3. Подключение к роутеру и загрузка скрипта
Подключаемся к роутеру через WinSCP, создаем пользовательскую директорию (например, /etc/userscript) и переносим туда файл со скриптом.
4. Включение службы управления по SMS
Переходим в web-интерфейс, Сервисы - Управление по SMS, включаем службу, указываем пароль для SMS и разрешенный номер телефона:
5. Настройка SMS команды
В меню Сервисы - Управление по SMS, в пункте "Команда по SMS" укажем текст SMS, команду на выполнение скрипта, запустим и включим ответ по SMS
6. Выдача прав на исполнение скрипта
Переходим в терминал SSH и выдаем права на исполнение скрипта командой:
chmod +x /etc/userscript/sms_IO1_state.sh
7. Проверка работы скрипта
Можем проверить работу скрипта. Для этого отправим SMS команду для запуска скрипта и воспроизведем замыкание и размыкание контакта на входе: