Настройка GPIO на роутерах irzOS
Интерфейсы GPIO (General-Purpose Input/Output, входы/выходы общего назначения) позволяют роутерам irzOS взаимодействовать с внешними электрическими цепями и устройствами. В зависимости от выбранного режима работы, вывод GPIO может либо отслеживать внешний сигнал (режим входа), либо управлять внешним оборудованием (режим выхода).
Типичные примеры применения GPIO:
-
мониторинг датчиков и переключателей;
-
управление реле, индикаторами и другим внешним оборудованием;
-
генерация событий на основе изменения электрического состояния входа.
Количество доступных выводов GPIO и их электрические характеристики зависят от модели роутера. Обратитесь к руководству пользователя вашего роутера для получения информации о технических характеристиках и назначении выводов.
| Перед подключением внешнего оборудования к выводам GPIO убедитесь, что электрические характеристики подключаемой цепи соответствуют спецификациям роутера. |
Перед началом работы
При работе с GPIO соблюдайте следующие требования безопасности:
-
Подавайте напряжение на входные выводы GPIO только после полного включения роутера.
-
Напряжение, подаваемое на вход GPIO, ни в коем случае не должно превышать напряжение питания роутера.
| Несоблюдение этих требований может привести к необратимому повреждению оборудования и аннулированию гарантии производителя. |
|
Совместимость по напряжению и использование подтягивающего/стягивающего резистора (например, 10 кОм) зависят от модели. Некоторые роутеры irzOS требуют строгого равенства входного напряжения напряжению питания, в то время как другие допускают разницу при установленном резисторе. Эти детали различаются в зависимости от модели и аппаратной ревизии. |
Перед подключением любой внешней цепи всегда обращайтесь к разделу Работа с GPIO в руководстве пользователя для вашей конкретной модели роутера. В руководстве приведены точные электрические номиналы, назначение выводов и любые требования, специфичные для модели (например, использование резистора), которые применимы к вашему устройству.
Настройка GPIO
Откройте страницу настройки GPIO /peripheral → gpio. Выберите GPIO, который хотите настроить, из списка.
Доступные параметры зависят от выбранного режима работы.
Режим входа
Чтобы настроить GPIO как вход:
-
Установите параметр Direction в значение in.
-
Настройте режим Trigger.
-
При необходимости укажите интервал Debounce.
-
Нажмите Apply.
Параметр |
Описание |
Direction |
Выбирает режим работы GPIO (in или out) |
Value |
Отображает текущий уровень напряжения, обнаруженный на входе GPIO |
Trigger |
Определяет, какой переход входного сигнала генерирует событие: none – события не генерируются; Реакция роутера на событие настраивается отдельно в разделе /events. |
Debounce |
Определяет интервал подавления дребезга в миллисекундах. Помогает избежать ложных срабатываний от дребезга контактов и электрических помех |
| Действия, которые должен выполнить роутер при возникновении события, настраиваются отдельно в разделе /events. |
Режим выхода
Чтобы настроить GPIO как выход:
-
Откройте нужный GPIO.
-
Установите параметр Direction в значение out.
-
Выберите требуемый уровень выхода в поле Value.
-
Нажмите Apply.
Параметр |
Описание |
Direction |
Выбирает режим работы GPIO (in или out) |
Value |
Задаёт уровень напряжения на выходе GPIO: high – подаёт высокий уровень напряжения на выход GPIO; |
Protectd
Служба Protectd обеспечивает активную электрическую защиту выводов GPIO.
Она непрерывно отслеживает линии GPIO на предмет электрических неисправностей, таких как короткие замыкания или перегрузка по току. При обнаружении неисправности соответствующий GPIO автоматически отключается для защиты аппаратного обеспечения роутера.
После устранения внешней неисправности службу необходимо перезапустить вручную со страницы Protectd для восстановления работы GPIO.
| Перезапускайте службу только после устранения неисправности внешней проводки. |
Пример: отправка SMS при изменении состояния GPIO
Следующий пример демонстрирует, как GPIO можно использовать совместно с механизмом Events для выполнения действия при изменении состояния входа GPIO.
В этом примере роутер отправляет SMS-сообщение, когда вход io_1 изменяется с low на high.
Конфигурация состоит из двух шагов:
-
Настройте io_1 для генерации триггера при изменении его состояния.
-
Создайте событие, которое отправляет SMS, когда io_1 переходит в high.
Настройка триггера GPIO
-
Перейдите в /peripheral → gpio → io_1.
-
Настройте параметры по образцу:
-
Direction: in.
-
Trigger: both.
-
-
Нажмите Apply.
При выбранном both события GPIO генерируются при изменении состояния входа в любом направлении: с low на high или с high на low.
Создание события
-
Перейдите в раздел /events.
-
Нажмите Add.
-
В открывшемся окне для параметра Trigger выберите значение gpio.
-
Нажмите OK.
Настройка события
В открывшейся форме настройте событие по образцу и нажмите Apply.
Параметр |
Описание |
Значение |
Disabled |
Отключить настройки интерфейса |
– |
Description |
Описание для заметок о настройке |
GPIO rising edge detected |
Trigger |
Определяет подсистему-источник события |
gpio |
Target |
Конкретный объект-источник события в рамках выбранного триггера. В частности, если в качестве триггера выбран gpio, то источником будет конкретный порт |
io_1 |
Value |
Состояние объекта-источника Target, при достижении которого будет срабатывать заданное действие Action |
1 |
Action |
CLI-команда или несколько команд, разделенных точкой с запятой |
/mobile sms send-sms phone-number=+8613800000000 message="GPIO rising" |
В этой конфигурации io_1 является источником события, а 1 соответствует состоянию high. Поэтому, хотя параметр GPIO Trigger установлен в both, это событие выполняется только когда io_1 изменяется с low на high.
При выполнении условия роутер выполняет настроенное действие Action и отправляет SMS-сообщение GPIO rising на указанный номер телефона.
| Все настройки навсегда сохраняются в память роутера только после выполнения команды /system → config → commit или нажатия кнопки commit в web-интерфейсе. |