Обычное дело: мы используем cookie. Здесь можно узнать зачем
Хорошо

Система управления отопительным оборудованием: обратная разработка

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

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

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

Данный кейс является хорошим примером такого переосмысления исходного решения.

Запрос

Заказчик этого проекта поставляет котельное, электронагревательное, вентиляционное и насосное оборудование для частных потребителей и коммерческих предприятий. Он также предлагал клиентам иностранную систему для управления и мониторинга оборудования. Однако из-за санкций и ухода зарубежных поставщиков она оказалась недоступна. Поэтому владелец предприятия начал искать подрядчика для реверс-инжиниринга и создания аналогичной системы. Поскольку КЕДР Solutions – одна из немногих компаний на российском рынке, которые могут разработать как аппаратное, так и программное обеспечение, клиент выбрал нашу команду.

Перед нами поставили задачу спроектировать аналогичную систему, которая позволяет дистанционно управлять оборудованием (котлами, вентиляционными системами, теплыми полами, насосами) по шине eBus. К проекту предъявлялись следующие требования:
  1. Заказчику требовалась не просто копия исходной системы, а ее улучшенный аналог, при разработке которого были бы учтены и исправлены недостатки оригинала. Новое решение должно было быть более гибким и лучше адаптированным под бизнес-требования клиента.
  2. Решение следовало разработать так, чтобы в будущем его можно было легко адаптировать для работы с новыми моделями оборудования, которое может пополнить предложение заказчика.
  3. Отображение показателей в пользовательском приложении должно было настраиваться извне. Так заказчик мог бы адаптировать программу под любое оборудование – как уже поставляемое компанией, так и новое.
  4. Заказчик также попросил КЕДР Solutions взять на себя серийное производство тестовой партии устройств – шлюзов для связи оборудования с интернетом.

Решение

Разработанное нами решение включает в себя следующие ключевые компоненты:
  • Шлюз, который обеспечивает передачу данных и команд между оборудованием и интернетом.
  • Интерпретатор – микросервис, который переводит данные в понятный для каждого компонента системы формат.
  • Мобильное приложение, предназначенное для управления оборудованием и мониторинга его состояния.
  • Административный сервис – серверное приложение, в котором хранятся нужные для работы системы данные и которое служит интерфейсом для настройки мобильного приложения и других компонентов системы.
Схема работы системы управления отопительным оборудованием, разработанной компанией КЕДР Solutions.

Шлюз

Основную логику работы системы было решено перенести на сервер, а устройство – существенно упростить. Спроектированный нами шлюз передает сигналы между оборудованием и интернетом, а также обрабатывает специальные команды по взаимодействию с eBus. Устройство подключается к котлам или другим устройствам по шине eBus и может выходить в сеть по Ethernet или Wi-Fi для обмена данными с сервером по протоколу MQTT.

В начале работы наш инженер собрал макет будущего устройства, взяв за основу плату, созданную для системы умного дома в рамках другого проекта. Оно выполнено на базе похожего микроконтроллера, а также имело нужные нам сетевые интерфейсы – Ethernet и Wi-Fi, – поэтому максимально подходило для этой роли. Собранный макет позволил команде изучить особенности работы шины eBus и начать работу над встроенным ПО для шлюза еще до прибытия образца исходного устройства.

Интерпретатор

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

Административный сервис

Мы также разработали административный сервис. Он представляет собой серверное приложение, которое выполняет следующие функции:
  • Ведение и администрирование базы данных;
  • Настройка параметров и шаблонов для оборудования;
  • Настройка отображения параметров оборудования в пользовательском приложении;
  • Поддержка технических запросов и сбор технической информации;
  • Управление подписками пользователя на дополнительные сервисы;
  • Контроль доступа пользователей к различным компонентам системы;
  • Автоматический сбор статистики с клиентского оборудования;
  • Мониторинг неисправностей и отслеживание сбоев;
  • Обеспечение связи между пользователями, сервисными центрами и технической поддержкой;
  • Формирование различных технических отчетов.

Мобильное приложение

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

Сложности проекта и их решение

Универсальность решения

Несмотря на то, что система предназначалась для работы с оборудованием по шине eBus, заказчик попросил сделать систему легко адаптируемой под новые модели оборудования и альтернативные протоколы связи. Эту возможность мы реализовали в административном сервисе – в частности, в схеме базы данных. Кроме того, команда написала интерпретатор так, чтобы он мог работать с неизвестными типами сообщений.

Гибкость приложения

Заказчик предлагает клиентам самое разное отопительное оборудование, параметры которого должны отображаться в пользовательском приложении. От нас требовалось сделать решение так, чтобы сотрудники клиента сами могли настраивать отображаемые параметры для каждой модели устройств. Это потребовало серьезной работы, однако мы добились нужной гибкости. В административном сервисе можно добавить в список новое оборудование, а также выбрать, какие параметры и где именно будут отображаться в мобильном приложении. Таким образом, в будущем заказчику не потребуется обновлять приложение для каждой новой модели – достаточно лишь настроить программу.

Передача данных на оборудование

eBUS – это цифровая шина управления, разработанная для обмена данными между отопительным оборудованием и управляющими устройствами. Она используется в устройствах множества производителей и позволяет объединять в одну сеть до 25 управляющих и 228 ведомых устройств. Наша команда впервые работала с этой технологией, поэтому часть времени пришлось потратить на ее изучение.

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

Дизайн мобильного приложения

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

В итоге клиент выбрал вот такой дизайн: цвет круга отображает разницу между двумя параметрами внутри него.
Макет главного экрана приложения для управления отопительным оборудованием.
Это позволяет быстро понять, в каком состоянии находится оборудование. Так, на изображении выше на экран выводятся текущая (24 ℃) и желаемая (0 ℃) температура котла, а оранжевый цвет показывает, что котел все еще остывает.

Выполненные работы

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

Использованные технологии

  • Altium Designer для создания принципиальной схемы и дизайна печатной платы.
  • Микроконтроллер – ESP32.
  • Прошивка для шлюза – язык С++.
  • Административный сервис разработан на Java и XML с помощью фреймворка Jmix.
  • Дополнительные микросервисы написаны на языке Go в Visual Studio Code.
  • Интерпретатор – язык Go.
  • Мобильное приложение разработано на С/С++ с помощью фреймворка Qt под ОС Android и iOS.

Итоги

  • Заказчик проекта получил улучшенный аналог зарубежной системы дистанционного управления и мониторинга отопительного оборудования.
  • По просьбе клиента при разработке этого решения мы усовершенствовали устаревший функционал и устранили слабые места оригинала.
  • Система была спроектирована гибкой и универсальной. Ее можно быстро адаптировать под новые модели оборудования без существенных затрат на доработку ПО.
  • Сейчас проект подходит к завершению. Мы изготовили 30 тестовых образцов шлюза, которые испытываются в реальных условиях эксплуатации. Команда устраняет недочеты и готова обеспечить клиенту техническую поддержку системы, когда она будет выведена на рынок.

Экспертиза КЕДР Solutions и вовлеченность заказчика в проект позволили создать современный, масштабируемый и технологически независимый аналог зарубежного решения. Его гибкость и универсальность позволят бизнесу клиента занять прочное положение на рынке. Мы же, со своей стороны, получили ценный опыт работы над масштабным проектом, в котором был использован ряд нестандартных решений.