惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
F
Full Disclosure
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Recent Announcements
Recent Announcements
美团技术团队
L
LangChain Blog
P
Privacy & Cybersecurity Law Blog
M
MIT News - Artificial intelligence
www.infosecurity-magazine.com
www.infosecurity-magazine.com
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
S
Security @ Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Help Net Security
Help Net Security
L
LINUX DO - 最新话题
S
Secure Thoughts
O
OpenAI News
Hacker News - Newest:
Hacker News - Newest: "LLM"
A
About on SuperTechFans
NISL@THU
NISL@THU
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
Recent Commits to openclaw:main
Recent Commits to openclaw:main
F
Fortinet All Blogs
B
Blog
IT之家
IT之家
T
Tor Project blog
L
Lohrmann on Cybersecurity
Webroot Blog
Webroot Blog
博客园 - 叶小钗
Simon Willison's Weblog
Simon Willison's Weblog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
量子位
Security Latest
Security Latest
TaoSecurity Blog
TaoSecurity Blog
S
Schneier on Security
C
Cisco Blogs
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Last Week in AI
Last Week in AI
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
Cisco Talos Blog
Cisco Talos Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google DeepMind News
Google DeepMind News
SecWiki News
SecWiki News

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как мы автоматизировали свой поселок
lak_inside · 2026-05-11 · via Все публикации подряд на Хабре

Как мы автоматизировали свой поселок

Уровень сложностиПростой

Время на прочтение14 мин

Охват и читатели646

Кейс

Все началось с того, что управляющая компания в нашем поселке обанкротилась. Работать она перестала, и инфраструктура постепенно начала приходить в запустение — въездную группу вместе со шлагбаумами продали на торгах, мусор перестали вывозить, фонари постепенно начали выходить из строя и по ночам улицы погружались в темноту. Соседи собрались, провели общее собрание и основали ТСН — товарищество собственников недвижимости. С этого момента мы оказались в ситуации, когда управлять поселком нужно самостоятельно, а многие вещи приходится осваивать с нуля.

Общий вид нового въезда в поселок

Общий вид нового въезда в поселок

Организовать площадку для сбора мусора или наладить работу КПП со шлагбаумами — задачи, с которыми средний человек вряд ли столкнется. Но нам такая возможность выпала, ведь жизнь поселка надо было как-то налаживать, а кроме нас самих это никому не было нужно.

Я же всегда любил сооружать нехитрые системы автоматизации «на коленке» — умный дом, различные контроллеры, интеграции. И произошедшее воспринял как шанс попробовать себя в более масштабных DIY-проектах, полезных для общества. В этой статье постараюсь изложить полученный опыт, который может пригодиться не только жителям поселков, но и многоквартирных домов, где жизнь устроена во многом похоже. Весь код, использованный в этом проекте, выложен в свободный доступ.

Контроль въезда на территорию

В большинстве поселков и СНТ въезд ограничен, в том или ином виде. На въезде стоят ворота или шлагбаум, которые открывают жители самостоятельно, либо рядом еще дежурит охранник. Заманчиво было полностью все автоматизировать, но решили, что без охранника первое время мы точно не обойдемся: кто-то должен быть на месте на случай поломки оборудования, отключения электричества или просто объяснять людям, как что работает. Таким образом, задача разделилась на две: как жителям самим открывать шлагбаум и как работать охраннику.

Самостоятельное открытие

Популярные варианты управления шлагбаумом.
Пульты от шлагбаумов Nice

Пульты от шлагбаумов Nice

RFID-считыватели дальнего действия

RFID-считыватели дальнего действия

  1. Радио пульт. Распространенная история: закупается куча пультов (в нашем случае нужно было 1000 шт., каждый по 1000 руб., итого миллион рублей на пульты) и раздается жителям. У пультов очень ограниченный радиус действия (чтобы открыть гостям, нужно самому приехать к шлагбауму), у них садятся батарейки, некоторые модели можно скопировать. Весь процесс работы с пультами бесконтрольный и не поддается никакому учету, потому что приемники не поддерживают никакой внешней интеграции (нельзя удаленно добавить пульт, удалить пульт, сделать временный пульт, зафиксировать событие открытия и с какого пульта оно было сделано).

  2. Различные физические ключи: некоторые необходимо прикладывать к считывателю, некоторые умеют считываться на расстоянии. Механизм похож на радио пульты, но гораздо дешевле, от 20 рублей за ключ. Также их гораздо легче администрировать: можно за пару секунд добавить ключ, сидя дома за компьютером, есть считыватели с возможностью управления по локальной сети. Основной минус – пользователю нужно каждый раз открывать окно и прикладывать ключ к считывателю. Есть варианты, работающие на расстоянии, но для их стабильной работы ключ должен быть верно расположен внутри машины (в современных автомобилях стекло может плохо пропускать радио сигнал и для расположения транспондера на нем выделяется специальное место). Подобные считыватели используются в соседнем с нами поселке и их опыт показывает, что это неудобно, хоть в теории и звучит неплохо. Также этот способ не позволяет пропускать гостей.

  3. Звонок по номеру телефона. Крайне распространенный вариант: есть номер телефона, известный всем жителям или даже написанный на въезде, а к шлагбауму подключено GSM-реле с симкой, на котором также хранится список номеров жителей. Житель звонит, его номер распознается и находится в списке, шлагбаум открывается. Метод отличный, если его правильно организовать: житель сможет открыть въезд и себе и гостям. Подвид данного варианта это открытие через приложение: пользователь получает логин и пароль от приложения, заходит в него и получает в нем кнопку «Открыть шлагбаум». Работает моментально, тогда как звонок занимает секунд 10-20. Стоимость реле около 5 тысяч рублей, это самый дешевый способ. Также есть небольшая ежемесячная плата за сим-карту либо в случае с приложением – плата за приложение.

  4. Распознавание автомобильных номеров. Самый современный вариант. На въезде висит камера, видео с нее обрабатывает программа и при распознавании номера производит поиск по списку разрешенных номеров. Если номер найден – передает команду на реле, подключенное к шлагбауму. Номер автомобиля всегда к нему прикреплен, у него не сядет батарейка, он не потеряется (хочется верить, по крайней мере). Его вряд ли кто-то станет копировать и передавать третьим лицам. Минусов у метода мало, но они есть. Номер может быть покрыт грязью или снегом, тогда его придется почистить перед въездом. Номера других стран считывают не все системы распознавания. Также этот вариант дороже остальных.

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

Не буду рекламировать используемую нами систему, скажу только, что все перечисленное она делать умеет: дает пользователям редактировать свои номера телефонов и автомобилей, по кнопке открывать шлагбаум, а также предоставляет номер телефона, при звонке на который открывается шлагбаум. Все это делается через недорогое (2000 руб) Ethernet-реле, подключенное к шлагбауму и к интернету. Также эта система дает возможность выгружать все данные пользователей по REST API , что открывает возможности для интеграции.

Интерфейс приложения для жителей поселка

Интерфейс приложения для жителей поселка

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

Итого сейчас все работает так:

  • при распознавании номера автомобиля, отправляется запрос в систему и она, если номер есть в базе, сама дает команду реле открыть шлагбаум

  • при звонке на их номер телефона, она также сама проверяет, есть ли такой телефон в базе. Если номер есть, шлагбаум открывается. Если номера нет, то проигрывается уведомление об этом.

    Домофон на стойке у въезда

    Домофон на стойке у въезда

Дополнительно к этому, на въезде поставили умный домофон. Зачем? Потому что можем. По информации от производителя, это была первая установка такого домофона у шлагбаума, обычно их используют на подъездах. На домофоне можно набрать номер дома -- и у жителя зазвонит телефон, при условии что на нем установлено приложение домофона. Домофон может быть единственной системой пропуска через шлагбаум, он достаточно удобен в использовании и не слишком дорог (25 т. р.), общее впечатление от него положительное.

Работа охраны

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

Обычно работа охраны в поселке организована так: у них есть мобильный телефон и пульт от шлагбаума. По телефону им могут позвонить и попросить пропустить определенную машину. Поначалу так работала охрана и у нас, но опыт показал полную неэффективность такого подхода.

Во-первых, номер телефона становится многим известен, а у охранника нет технической возможности проверить, житель звонит или кто-то посторонний. Во-вторых, охранник очень склонен пропускать всех подряд. Представьте себя на его месте: приехала машина и водитель настойчиво просит его пропустить. Можно с ним спорить, рассказывать о правилах проезда, что ему нужно зарегистрироваться в системе и там пропуск сделать, а можно просто...пропустить. И об этом никто не узнает и за это ничего не будет. Ответственный сотрудник, конечно, так делать не станет, но на практике с небольшим упорством можно убедить открыть проезд абсолютное большинство охранников. Осложняется ситуация тем, что охранники работают вахтовым способом: приезжают на некоторый срок (обычно 2 недели или месяц), живут на месте и работают посменно. Получается, каждые 2 недели новые охранники, и если даже какую-то смену удается обучить и заставить работать, то вскоре их меняют другие и все начинается заново.

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

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

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

Телефон

Первым пришло на ум решение: загрузить в телефон список контактов и сказать охране: "Всем, чей номер не определился, говорить зарегистрировать свой номер и дальнейших разговоров не вести". Затея полностью провалилась, разумеется, следить за тем, определился номер или нет, всем было лень. Попробовали ограничить звонки с неизвестных номеров, оказалось что сделать это не так-то просто, удалось только при помощи стороннего приложения. Но возникла другая проблема: тем, кто не в списке (а это были и некоторые жители), программа просто сбрасывала звонок, и пользователю не было очевидно, что произошло. Посыпались жалобы, что телефон не работает. Обновления списка контактов приходилось делать вручную через Google контакты, позже написал скрипт для автоматического обновления, но все равно была задержка: с только что добавленного номера телефона не получалось дозвониться, что прибавляло претензий к нашей работе.

Отдельная проблема это мессенджеры: в них нельзя ограничить круг людей, которые могут вам позвонить/написать первыми (в tg есть настройка "Контакты и Premium-подписчики", но этого тоже мало). Возможность полностью заблокировать пользователей не из списка контактов появилась только в Max.Также проблемой было поведение охранников: то авиа режим включат, то что-то установят нехорошее. У сотрудников в возрасте были проблемы в целом с управлением смартфоном.

Решение нашлось радикальное: IP-телефония со своей АТС. Проводной телефон это устройство, знакомое старшему поколению, управление проще некуда: сняли трубку, положили трубку. Настройки на аппарате заблокированы. А на АТС можно настроить любое поведение: на звонки с незнакомых номеров зачитывать сообщение, для номеров из базы получать информацию о пользователе и проигрывать ему различные уведомления при необходимости. Такой неожиданный простор для возможностей привел к мыслям об интеграции АТС с некоей программой для ведения пропусков, ведь охранник услышанное по телефону просто записывал на бумажку.

Телефон и планшет на рабочем месте охранника

Телефон и планшет на рабочем месте охранника

Планшет

Поначалу на посту охраны стоял ноутбук, но за полгода он пришел в безобразное состояние от сигаретных смол и дорожной пыли, стало понятно, что долго он там не протянет. Так родилось решение, которое используется и сейчас. Был куплен самый дешевый планшет, установлен в держатель и воткнут в зарядку. На планшете открыт браузер, в браузере -- веб-интерфейс, созданный за пару вечеров. По мере использования, интерфейс сильно изменился, стало понятно что он должен быть упрощен до предела: исключены любые всплывающие окна или меню, на экране гарантированно отображаются все элементы интерфейса. Должна отсутствовать возможность выйти в главное меню и изменить любые настройки, выключить экран. Защита от дурака, возведенная в абсолют. В этом сильно помог Fully Kiosk Browser: приложение, делающее ровно то что описано выше.

Интерфейс планшета в темных тонах, охрана по ночам предпочитает сидеть в темноте.

Интерфейс планшета в темных тонах, охрана по ночам предпочитает сидеть в темноте.

На данный момент все вместе работает так: при входящем звонке АТС вызывает API нашего сервера, получает ответ (из какого дома звонят, либо номер не найден). Если номер не найден, проигрывает сообщение и вешает трубку. Если номер найден, то сервер посылает номер дома в веб-интерфейс на планшете. Там он подставляется в поле "№ дома", курсор становится на "№ авто" и открывается цифровая клавиатура. Остается ввести цифры номера и нажать "Добавить". После этого курсор остается на том же поле, на случай если нужно ввести несколько номеров подряд. Через 5 минут после звонка клавиатура автоматически исчезает, а поля очищаются.

Можно заметить, что пропуск по трем цифрам гос. номера это не слишком безопасно для КПП, где в пиковые дни проезжает более 1000 автомобилей. Однако, это удобство пользователей: трудно запомнить номер целиком, с буквами и кодом региона, а с тремя цифрами как-то справляются. В первую очередь, звонят на КПП чтобы заказать пропуск представители старшего поколения, кому трудно разобраться с приложением.

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

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

Контроль

Все действия охранника теперь происходят через нашу систему, пора подумать о том, что помешает ему открыть шлагбаум произвольной машине. В момент открытия шлагбаума с кнопки отправляется сообщение в группу в мессенджере с картинкой с камер. Открытие с кнопки может иметь разные причины (например, приехала скорая помощь, полиция или у шлагбаумов идет уборка), поэтому охрана пишет краткий ответ с описанием причины открытия. В группе находятся начальник охранной организации и пара инициативных жителей, вызвавшихся контролировать работу охраны. Если сообщение охранник оставляет без ответа, это сразу всем заметно.

Сообщения бота в группе

Сообщения бота в группе

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

Бот для уведомления о гостях

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

Сообщение для жителя о приезде гостя

Сообщение для жителя о приезде гостя

Оборудование и инфраструктура

Строить систему начали с видеонаблюдения (камер для считывания номеров автомобилей и просто обзорных) и после изучения вариантов стало понятно, что видео оптимально записывать на сервер, а не на видеорегистратор. Сервер дешевле (комп подойдет самый маломощный, софт бесплатно, затраты только на жесткие диски) и поддерживает любое количество камер, имеет удобный веб-интерфейс. Использовали бесплатный сервер yucca, могу искренне его порекомендовать. Подключение камер организовать было легко: камеры сейчас можно найти за 1-2 т.р. (Tiandy например), подключаются они просто в локальную сеть, ту же что и сервер, только нужно использовать PoE-коммутаторы. С монтажом и настройкой справится любой, кто немного имел дело с локальными сетями или посмотрел 15-минутное обучающее видео по теме и попрактиковался обжимать разъемы RJ-45. Провода от камер провели в имеющееся неподалеку от шлагбаумов помещение, где и разместили сервер.

Веб-интерфейс сервера видеонаблюдения yucca

Веб-интерфейс сервера видеонаблюдения yucca

Следующий шаг это система распознавания номеров. Дорогой софт (30-50 т.р.) и достаточно требовательный к железу, уже не получится запустить на найденном на балконе Пентиум-4. Сначала купили программу Сарапульских систем, много с ней было проблем, но в итоге заставили работать более-менее стабильно. Потом в дополнение к ней купили Автомаршал, и он хорошо заработал сразу из коробки, без дополнительных настроек. Так и работают вместе, но на разных шлагбаумах. Обе программы работают на windows (сейчас появились и версии для linux, но на тот момент не было), поэтому понадобился еще один компьютер, более современный и с windows.

Затем появился описанный выше сервер для работы с пропусками, с веб-интерфейсом на планшете и базой данных. Он был написан на python + flask и тоже лучше работал на linux. К нему появилась АТС asterisk, которая тоже работала на linux, и стало понятно, что весь этот зоопарк нужно как-то объединить, чтобы не держать несколько компьютеров и было легко администрировать удаленно. Был куплен мини-ПК за 30 т.р. с 14-ядерным процессором Intel 12900H, который отлично справился со всеми этими сервисами и другими, реализованными позднее. На него был установлен гипервизор proxmox и несколько виртуальных машин с софтом, описанным выше. Proxmox легок в освоении и очень выручил когда вышел из строя ssd диск. Купили новый диск, восстановили виртуальные машины из бэкапов и все продолжило работать как будто ничего и не произошло. Также очень удобно, что можно работать с одной виртуальной машиной, не трогая другие, которые должны работать 24/7 для работы пропускной системы.

Маленький, но удивительно мощный мини-ПК и вставленный в него GSM-модем

Маленький, но удивительно мощный мини-ПК и вставленный в него GSM-модем

Отдельного внимания заслуживает реализация IP-телефонии. Перейти на нее нужно было, не потеряв уже записанный всеми жителями мобильный номер. Самым простым решением было купить виртуальный номер, настроить переадресацию всех вызовов с мобильного номера на него, а с него настроить переадресацию на АТС asterisk, установленную на нашем сервере. Реализация этого была уже не так проста, IP-телефония это целый набор устаревших технологий, наложенных друг на друга. Периодически связь виртуальной АТС и нашего сервера ломалась из-за изменения настроек на стороне этой АТС. Оплата этой схемы тоже была не дешевой, переадресация каждого вызова стоила для нас 15 руб. Детально описывать эту схему не буду, потому что нашлось гораздо более стабильное, красивое и дешевое решение, которое называется chan_dongle. Это модуль asterisk, который поддерживает работу со старыми GSM-модемами, которые легко найти по 500 р. на Авито или просто в дальнем углу ящика стола. Оказалось, что у этих модемов можно включить работу с голосом и буквально звонить через них и принимать звонки. Таким образом, схема крайне упростилась: есть компьютер, на нем сервер asterisk с GSM-модемом, и в одной локальной сети с ним находится IP телефонный аппарат. Даже без интернета эта схема продолжит работать, фактически она ничем не уступает использованию смартфона, добавляя при этом массу новых возможностей.

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

P.S. Еще одна история

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

WeMos D1 с припаянным приемником 433 МГц и антенной в четверть длины волны

WeMos D1 с припаянным приемником 433 МГц и антенной в четверть длины волны

Затея эта потерпела фиаско, т.к. пульт использовал алгоритм шифрования Nice Flor-S и при каждом нажатии на кнопку передавал различные посылки. Разобраться в этом было совершенно невозможно:

16:59:07.318 -> 1100000001111111000100000100000110000000111111100010000010000011010000011111110001000001000001100100001111111000100000100000110000000111111100010000010000011000001111111000100000100000
16:59:15.851 -> 1100110011110100100010111011100111101001000101110011001111010010001011101111100111101001000101110000110011110100100010111011100111101001000101
16:59:20.253 -> 1100001000000000000011011010000000000000110000001000000000000011001000000000000011110010000000000000111010000000000000
16:59:26.557 -> 110011010010001100111100010100100011001111010100100011001111000101001000110011110111010010001100111100000101001000110011
16:59:31.682 -> 1110110000111001101110111111110000111001101110111111000011100110111011111111110000111001101110111100110000111001101110111100011100001110011011101111
16:59:34.949 -> 11111010000000101111111111110100000001011111001110100000001011111000111101000000010111110111101000000010111110011111010000000101111
16:59:37.300 -> 1110010000000000010101000101100000000000000101010001011000000000000101010001011000000000000001010100010110110000000000010101000101100000000000000001010100010
16:59:40.001 -> 111100001011100011001100010001110010111000110011000100011000101110001100110001000111110010111000110011000100011000001011100011001100010001100000101110001100110001000
16:59:43.213 -> 1101001111100111011100001111100111011101110011111001110111000000111110011101110100111110011101111100111110011101
16:59:45.818 -> 11110001101101110101110000011011011101011100011011011101011000011011011101011111000110110111010110000001101101110101
16:59:48.333 -> 111000111111110110001000111000111111110110001000111000111001111111101100010001110001111110111111110110001000111000111000011111111011000100011100011100001111111101100010001110001

Из желания победить уже эту задачу был использован SDR-приёмник, подключенный к компьютеру. Используя rtl_433 получилось очень стабильно определять факт нажатия на кнопку пульта и даже определять, на какую из двух его кнопок было нажатие. Определить, что это именно нужный пульт, а не просто какой-то сосед ворота себе открывает, по прежнему было невозможно, но если кому-то захочется так же поиграть с пультами от шлагбаумов, эта информация может быть полезна. В итоге от использования пультов полностью отказались, заменив их на планшет.