Сезам, откройся… или как оправдать свою лень прогрессом

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Кто не помнит арабскую сказку "Али-Баба и сорок разбойников", и их волшебную пещеру, для входа и выхода из которой требовался секретный пароль. Может кто-то вспомнит еще короткий и забавный рассказ А. Беляева, где та же команда открывала двери в доме престарелого магната. Но теперь для создания этого не надо учиться колдовать или даже продавать заработанные тяжким трудом текстильные фабрики...

Собственно мой Сезам, внизу по центру мотор и контролер управления
Собственно мой Сезам, внизу по центру мотор и контролер управления

Кто со мной знаком по жизни, знает что на самом деле я ленивая жопа, и предпочитаю, чтобы мне как можно меньше надо было бегать самому. Тем не менее, поскольку живу я за городом, мне нужен дом, а к дому машина, а чтобы было, куда машину ставить, забор... Ну а к забору обычно прилагаются ворота. Ну а чтобы выехать куда-то, ворота нужно вначале открыть, а потом, как ни странно, еще и закрыть. Пока дочь ездила с нами в школу, этот вопрос решался бессовестной эксплуатацией бесплатного детского труда, но поскольку дочь вся в меня, вопрос надо было решать правильно... и к воротам был куплен двигатель. И НАСТУПИЛО СЧАСТЬЕ... Увы, недолгое. Нет, с двигателем все было в порядке, он успешно открывал и закрывал ворота... Но... Брелок четко срабатывал лишь в пределах 10-15 метров от ворот, что вынуждало ожидать открытия, стоя на дороге, часто срабатывал в кармане в процессе работы по двору, не работал режим пешехода. Автозакрывание ворот тоже работало грустно - открылись, подождали 30 секунд, закрылись - и не их дело, что ты не успел проехать. К тому же, надо было не забывать пультик. Да и открыть ворота, если кто-то приехал, а никого нет дома - задача почти невыполнимая. Вообще-то, в Китае, в котором, как в Греции, есть все, эту проблему уже обмозговали, измыслили и решили, изобретя коробочку с вай-фаем, реле и магнитным датчиком, которая через очень китайское облако и отдельное приложение с телефона позволяла осуществить часть мечт. Но увы, только часть, а очень хотелось большего!

Дома у меня уже настроена система УД, которая на гордое название умного еще не претендует (а нефиг быть умнее хозяина), но зато Дом теперь Управляемый, так что хотелось добавить ворота в общую систему.

Хочешь сделать хорошо - сделай сам, и поэтому было принято решение разработать самодельный контроллер, способный испольнять мечты в как можно большей мере.

Скажу сразу, решение не для всех, к плате управления мотором придется подпаиваться, что влечет снятие с гарантии (хотя существует и способ с бесконтактными фотодатчиками).

Контроллер играет роль надстройки над платой управления, принимая сигналы светодиодов датчиков и мотора, и коммутируя кнопку управления.

Принимаемые сигналы - мотор-открытие, мотор-закрытие, ворота закрыты, ворота открыты, препятствие, кнопка звонка, кнопка ворот.

Отдаваемые сигналы - лампа движения, лампы забора, кнопка управления воротами.

Передача сигнала - сеть wi-fi, двухсторонняя.

Информация от контроллера - состояние ворот в процентах (100 - полностью открыты), состояние освещения, режим блокировки, внешний звонок.

Информация от УД - процент открытия ворот, включение освещения забора, режим блокировки закрытия ворот.

Протокол - MQTT, выбран просто по желанию, шифрование и пароль не используется, информация ходит только внутри локалки, но в принципе ничто не мешает шифровать с применением парольной фразы и текущего времени.

Функционал.

  1. Обычное управление воротами по кнопке.

  2. Управление воротами от УД с желаемым процентом раскрытия.

  3. Умный режим пешехода - при открытии, при пересечении фотолинии, ворота останавливаются, ожидают 15 секунд, закрываются.

  4. Умный режим закрытия - после открытия ворота ожидают проезда по пересечению фотолинии, делают выдержку 15 секунд, закрываются

  5. Режим блокировки - в этом режиме датчик фотолинии блокирует закрытие ворот по препятствию, автозакрытие отключено, управление кнопками и УД фунционирует.

  6. Забытые ворота - если через десять минут после открытия, нет сигнала о закрытии, УД закрывает их автоматически.

  7. Управление подсветкой забора (одна из ламп забора так же является индикатором активности ворот)

  8. Прием сигнала от внешней кнопки звонка с выдачей сигнала на УД (Камера с микрофоном и динамиком идет в обход контроллера)

Контроллер — ESP32, с внешней антенной, внешние входы развязаны через фототранзисторы Ps817, выходы — через стандартный релейный модуль, так что схема тривиальна (платы нет, потому что все спаяно просто на макетке). Опишу только назначение выводов dev-модуля ESP согласно описанию платы в среде Arduino.

14 пин – внешняя кнопка ворот

21 пин — уличная звонковая кнопка

32 пин — датчик полностью открытых ворот

33 пин — датчик полностью закрытых ворот

25 пин — датчик фотолинии

26 пин — датчик работы мотора на открывание

27 пин — Датчик работы мотора на закрывание

По умолчанию все оптотранзисторы подключены выходом 4 на плюс питания платы, таким образом при сигнале на входе на пине появляется высокий уровень. Но у меня в плате мотора некоторые светодиоды, как например датчик фотолинии, светятся по умолчанию и гаснут при действии. Если у вас по другому, просто поменяйте в операторах сравнения statusg значения сработки согласно расписке.

Выходы реле — Реле срабатывает на низкий уровень сигнала. Используются следующие пины:

22 пин — Индикатор движения

23 пин — подсветка забора

18 пин — кнопка привода

19 пин - резерв

В принципе можно в том же Китае купить плату на ESP восемью входами и 4 реле, но мне цена показалась несколько неадекватной относительно сборки из модулей — но это дело вкуса. Вместо тех же ps817 можно использовать корпусированные фототранзисторы, в таком случае пайки к плате мотора не потребуется, лишь несколько капель «китайских соплей».Так же, возможно существуют и контроллеры мотора с выходами этих сигналов для внешних блоков, но я с такими не знаком

Для упрощения разбора используются однонаправленные потоки. Gate — от ворот до УД, gatein – от УД до ворот. Формат протокола стандартный, открытый.

УД — у меня настроен Мажордомо, в котором в Простых устройствах добавлено Открываемое, уровень которого соответственно привязан к уровню ворот в MQTT. Так же в бот Телеграмма Мажордомо добавлены кнопки для управления уровнями, и вывод текущего состояния ворот. Как говорится, умному достаточно, тем более, что вариантов УД сейчас достаточно и в каждом логика слегка своя.

Возможные изменения — вместо Wi-Fi можно использовать GSM модуль и написать простейший бот телеграмма прямо в контроллере (проверено в другом проекте, но явно излишне здесь). Если у вас есть привод без платы управления, контроллер можно слегка допрограммировать, добавив так же модуль измерения тока, для определения перегрузки и получить автоматическую систему (сделано на более раннем варианте мотора, который, к сожалению, из-за малой мощности не смог запускаться в сибирские морозы и был отправлен в отставку)

Почему не пошли готовые варианты?

Частично это мои личные заморочки — система должна управляться локально и точка (без вкусно), протокол внешней связи должен быть управляем, сменяем, и контролируем. Устройства, с которых я могу управлять, тоже должны определяться мной.

Отсутствие обратной связи в доступном формате.

Интерес к самостоятельной разработке.


Удовлетворена ли моя лень?

Нет, есть еще простор для уменьшения труда — обучить систему реагировать на камеру, смотрящую на гараж и открывать ворота, когда я выезжаю. А так же встроить в машину gps с передатчиком, который будет автоматически впускать меня домой.

Кот в мешке тут.

https://github.com/kotleopold78/gatecontrol

Источник: https://habr.com/ru/articles/784480/


Интересные статьи

Интересные статьи

В предыдущих сериях Это вторая статья в моей серии «для самых маленьких» — предыдущая была посвящена «классическому» Telegram-боту, наследуемому от TelegramLongPollingBot. Для кого написано Е...
В течение своей карьеры я имел опыт работы над многими масштабными проектами, от проработки стратегий компании, выбора идеальных продуктов, реорганизации ключевых алгоритмов user-flow и и...
Можно представить себе redux-saga (middleware) как администратора камер хранения. В камеры хранения можно класть эффекты на неопределенный срок и забирать их от...
Короче, я хорошо помню, как в 2013 году я сел и написал небольшой сайт за один день. Это был сайт про события моего родного города. На одной странице выводились все мероприятия на ...
Однажды, в одной продуктовой команде захотели разработать мобильное приложение, чтобы проверить гипотезу востребованности продукта и его удобства для пользователей. И то, что в команде не было мо...