Модуль управления координатным домофоном
Устройство подключается в разрыв линии между домофоном и трубкой.
Выполняет функции:
- Детекция входящего вызова
- Ответ на входящий вызов
- Завершение вызова
- Открытие двери
Так же модуль содержит в себе два входа тип сухой контакт (Срабатывает при замыкании входа на GND)
Работа без абонентской трубки
Устройство может работать без подключения трубки, для этого необходимо установить джампер J1
Назначение клемников
1: Вход 1
2: Вход 2
3: Линия (-)
4: Линия (+)
5: Трубка (-)
6: Трубка (+)
Распределение GPIO
- Вход 1: GPIO32
- Вход 2: GPIO25
- Вход детектора звонка: GPIO26
- Выход Реле ответа на входящий звонок: GPIO27
- Выход Реле открытия двери : GPIO12
- Выход Зуммер: GPIO13
Выбор программного режима работы порта
Выбор программного режима работы порта осуществляется через функции gpio.mode(GPIO, mode), где mode может быть gpio.INPUT или gpio.OUTPUT.
Определение режима удобно прописать в файл init.lua, т.к. это требуется только однократно.
Инициализация модуля
Для этого достаточно добавить в init.lua команду dp.begin() После этого, при входящем звонке будет вызывать скрипт dp.lua
Тайминги
Для разных домофонов необходимы разные тайминги, по умолчанию они такие:
- DP_TIMING_CALL_TIMEOUT = 3*1000
- DP_TIMING_ANSWER_TIMEOUT = 60*1000
- DP_TIMING_OPEN_TIMEOUT = 1000
- DP_TIMING_BEFORE_ANSWER = 400
- DP_TIMING_BEFORE_OPEN = 1000
Примеры использования
Ответить на звонок и открыть дверь:
dp.answer()
dp.open()
dp.answer()
dp.open()
Сбросить вызов:
dp.answer()
dp.hangup()
dp.answer()
dp.hangup()
Проверить, что сейчас идет вызов:
if dp.status() == dp.CALL begin
print("CALL!")
end
if dp.status() == dp.CALL begin
print("CALL!")
end
Добавить входы модуля в объекты:
gpio.addInput(32, gpio.INPUT_PULLUP, 2, "IN1")
gpio.addInput(25, gpio.INPUT_PULLUP, 2, "IN2")
gpio.addInput(32, gpio.INPUT_PULLUP, 2, "IN1")
gpio.addInput(25, gpio.INPUT_PULLUP, 2, "IN2")
Установить таймаут открытия, для автозавершения в 2000мс:
dp.setTiming(3, 2000)
dp.setTiming(3, 2000)