Как узнать текущее состояние GPIO (Сухой контакт) в роутере LT50 / LT51

Как узнать текущее состояние GPIO (Сухой контакт) в роутере LT50 / LT51

Роутеры 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 команду для запуска скрипта и воспроизведем замыкание и размыкание контакта на входе: