Проект является аппаратным и embedded-модулем комплексной системы автоматизированного минибара для гостиниц.
Задача заключалась в разработке собственного контроллера, который связывает датчики, исполнительные механизмы и вычислительный модуль системы. Контроллер должен был отслеживать состояние оборудования, принимать управляющие команды, передавать телеметрию и сохранять работоспособность при ошибках отдельных компонентов или временной потере связи.
Готовые промышленные платы не полностью соответствовали требованиям проекта по количеству подключаемых устройств, форм-фактору, стоимости и логике взаимодействия с периферией. Поэтому потребовалось разработать специализированную электронную плату и прошивку под конкретную конфигурацию минибара.
В проекте я отвечал за проектирование аппаратной архитектуры, разработку принципиальной электрической схемы, подготовку печатной платы, программирование микроконтроллера, протокол обмена и интеграцию устройства с основным вычислительным модулем.
При разработке учитывались реальные условия эксплуатации:
— ограниченное пространство внутри корпуса;
— необходимость подключения нескольких датчиков и исполнительных устройств;
— электрические помехи и нестабильность питания;
— ошибки периферийных компонентов;
— необходимость диагностики без физического доступа к устройству;
— восстановление работы после перезагрузки;
— связь с локальным edge-компьютером и облачной системой.
Я спроектировал аппаратно-программный модуль, состоящий из специализированной печатной платы, микроконтроллера, подключённой периферии и прошивки управления.
Архитектура взаимодействия:
Датчики и исполнительные устройства → микроконтроллер → локальный вычислительный модуль → MQTT → облачный backend
Работа над аппаратной частью включала:
— определение состава входов, выходов и интерфейсов контроллера;
— подбор микроконтроллера и электронных компонентов;
— проектирование принципиальной электрической схемы;
— разработку цепей питания и защиты;
— подключение цифровых и аналоговых датчиков;
— разработку интерфейсов для исполнительных механизмов;
— подготовку и трассировку печатной платы;
— проверку правил проектирования;
— подготовку файлов для производства;
— сборку и пайку прототипов;
— проверку электрических соединений и уровней сигналов;
— поиск и устранение аппаратных неисправностей.
Прошивка контроллера обеспечивала:
— инициализацию микроконтроллера и периферии;
— чтение состояний подключённых датчиков;
— управление исполнительными устройствами;
— фильтрацию дребезга и нестабильных сигналов;
— передачу телеметрии основному вычислительному модулю;
— приём и выполнение управляющих команд;
— контроль доступности периферии;
— формирование кодов ошибок;
— ведение диагностического состояния;
— повторную инициализацию компонентов после сбоя;
— безопасное поведение при потере связи;
— восстановление работы после перезагрузки.
Для обмена между микроконтроллером и основным вычислительным модулем был разработан прикладной протокол. Сообщения содержали тип команды, адрес или идентификатор устройства, полезную нагрузку и результат выполнения.
На стороне вычислительного модуля аппаратные события преобразовывались в сообщения более высокого уровня и передавались в общую событийную систему. Это позволило отделить низкоуровневую работу с электроникой от Python backend, Computer Vision и бизнес-логики продукта.
Особое внимание уделялось обработке нештатных ситуаций:
— отсутствие ответа от датчика;
— некорректные значения;
— обрыв или замыкание линии;
— повторная отправка команды;
— перезапуск контроллера;
— отключение основного вычислительного модуля;
— временная потеря подключения к серверу.
Диагностическая информация передавалась в локальный сервис и могла использоваться для удалённого мониторинга через backend и Telegram-бота.
Разработан и протестирован рабочий прототип специализированного контроллера для автоматизированного минибара.
Печатная плата объединила необходимые интерфейсы для подключения датчиков, исполнительных механизмов и основного вычислительного модуля. Прошивка обеспечивала опрос оборудования, выполнение команд, передачу телеметрии и обработку аппаратных ошибок.
Контроллер был интегрирован с остальными компонентами системы:
— Computer Vision модулем;
— локальными Python-сервисами;
— MQTT-инфраструктурой;
— облачным backend;
— базой данных;
— системой удалённого мониторинга.
Аппаратная и программная части прошли тестирование в составе end-to-end прототипа. Система могла получать события от оборудования, передавать их в локальный сервис и синхронизировать состояние с облачной платформой.
Собственная плата позволила адаптировать устройство под требования проекта, уменьшить зависимость от готовых контроллеров и сохранить возможность дальнейшего изменения аппаратной конфигурации.
Мой вклад включал:
— разработку аппаратной архитектуры;
— проектирование принципиальной схемы;
— трассировку печатной платы;
— подбор компонентов;
— сборку и пайку прототипов;
— разработку embedded-прошивки;
— проектирование протокола обмена;
— интеграцию контроллера с основным вычислительным модулем;
— диагностику аппаратных и программных ошибок;
— испытания платы в составе готовой системы.
Я отвечал за проектирование контроллера, разработку печатной платы, embedded-прошивку и интеграцию устройства с основным вычислительным модулем.