Skip to content

minsk-hackerspace/pacs-bramnik

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

pacs-bramnik

Техническое задание: СКУД «Брамник» (PACS)

  1. Общие сведения Система предназначена для обеспечения контроля доступа в помещение хакерспейса и управления доступом к оборудованию (станкам). Система должна быть отказоустойчивой, расширяемой и иметь открытый, документированный код для поддержки будущими поколениями участников.
  2. Архитектура системы Система строится по иерархическому принципу с разделением на следующие узлы: «Мама Утка» (Центральный сервер): Основная машина, обеспечивающая синхронизацию, взаимодействие с Telegram-ботом, сайтом и хранение основной базы данных. «Утята-подростки» (Дверные контроллеры): Полуавтономные устройства на базе Embedded Linux, способные принимать решения об открытии двери при отсутствии связи с сервером. «Утята» (Контроллеры станков): Ведомые устройства (предположительно на ESP32 или STM32) без собственной базы данных, полностью зависящие от команд сервера.
  3. Аппаратное обеспечение Хост сервера/двери: Raspberry Pi 1 или Pine64 (Ox64). Микроконтроллер-мост (для дверей): Atmega 328p для автономного управления замком по i2c (на текущем этапе). Считыватель: ZKT KR602E (поддержка NFC-карт и кодов). Замок: Электромеханический CISA 12011.40.0. Питание: ИБП Mean Well PCS-60A с использованием LiFePO4 аккумуляторов для обеспечения автономности до 2-х суток. Связь: Основной канал — Ethernet (медь), резервный — USB 4G-модем для синхронизации с сайтом при падении локальной сети. Использование WiFi в критических узлах запрещено.
  4. Программное обеспечение и стек технологий Основной язык (Сервер): Go (выбран по результатам голосования для обеспечения надежности и простоты поддержки). Язык контроллеров: C/C++. Интерфейс взаимодействия: REST API. Ограничения: Отказ от Docker и Kubernetes из-за ограниченных ресурсов оперативной памяти (RAM 1G на VPS). Хранение данных: Локальная БД на флэш-памяти для автономной работы.
  5. Функциональные требования Сценарии доступа: NFC-карты: Считывание ID, проверка срока оплаты участника в локальной или удаленной базе, команда на открытие. Пользовательские коды: Генерация кодов через сайт/бот (срок жизни ~10 часов). Экстренный код: 8-значный код, захардкоженный в памяти контроллера, открывающий дверь без участия сервера. Интеграция: Синхронизация с базой данных сайта (REST API). Уведомления в Telegram-канал о каждом открытии двери. Автономность: При потере питания и связи система должна продолжать работу на аккумуляторах, пропуская участников по картам и экстренному коду.
  6. Процесс разработки и эксплуатации Управление кодом: Репозиторий в организации GitHub, обязательное использование Pull Requests и Code Review. Документация: Обязательное создание программной и эксплуатационной документации для будущих участников. Этапы: Разработка ТЗ. Проектирование системы (System Design). Создание MVP (минимально жизнеспособного продукта)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors