Система управления данными для тестирования бытовой техники

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

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

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

Запрос

Одному из ведущих поставщиков бытовой техники необходимо было внедрить программную систему для своих контрольно-измерительных приборов.

Они искали технологического партнера с опытом разработки прошивки и ПО.

Решение

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

  • Разработка встроенного Linux. Одноплатный компьютер управляет реле, датчиками температуры, вольтметром, амперметром, расширителем портов общего назначения и записывает собираемые ими данные.
  • Бэкэнд разработка. Мы внедрили систему баз данных для сбора, обработки и систематизации данных, записанных одноплатным компьютером.
  • Фронтенд разработка. Мы создали веб-систему бизнес-аналитики, которая отображает данные, собранные с датчиков.
              Использованные технологии
              • Мы использовали четырехъядерный одноплатный компьютер для аппаратной части этого проекта.
              • Мы создали специализированный образ Linux для аппаратной части.
              • Для сокетного соединения между аппаратной частью и сервером используется библиотека ZeroMQ.
              • Программное обеспечение аппаратной части и часть серверного ПО реализованы на C/C++.
              • Для разработки графического интерфейса мы использовали HTML, CSS и JS (Javascript).
              • Backend часть реализована на PHP.

                          Функциональность системы

                          Проект состоял из трех частей: 1) одноплатный компьютер, 2) сервер базы данных и 3) веб-интерфейс.

                          Функционал, который мы реализовали для каждой части:

                          Одноплатный компьютер

                          • Подключение к серверу базы данных;
                          • Макросы для разных датчиков и электронных компонентов;
                          • Экосистема с API для запуска тестовых приложений;
                          • Поддержка расширителя портов MCP23017;
                          • Поддержка различных датчиков температуры;
                          • Измерения напряжения, тока и мощности, которые потребляет тестируемый прибор

                          Сервер базы данных

                          • База данных на основе системы PostgreSQL;
                          • Rest API для связи с веб-интерфейсом;
                          • Сокетное соединение с одноплатным компьютером на основе библиотеки ZeroMQ;
                          • Перенаправление трафика между сокетами для обеспечения прямого доступа к тестируемому устройству через веб-интерфейс.

                          Веб-интерфейс

                          • Разграничение прав пользователей;
                          • Возможность написания тестовых скриптов на С-подобном языке;
                          • Возможность назначить тестовый сценарий для запуска на нескольких испытуемых устройствах одного типа (например, на утюгах);
                          • Возможность выполнения нескольких тестовых сценариев на одном тестируемом устройстве;
                          • Графики и логи, отображающие результаты выполненных тестов;
                          • Мониторинг испытуемого устройства в режиме реального времени.

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

                          1. Мы реализовали два пользовательских режима: тестовый и режим отладки.

                          В тестовом режиме пользователь может просматривать результаты тестирования как онлайн, так и офлайн.

                          В режиме отладки пользователь может наблюдать за процессом тестирования в режиме реального времени.

                          2. С каждого тестируемого устройства ежесекундно собирается 1-10 измерений. При среднем времени тестирования около 10 часов каждый индивидуальный график с результатами тестирования должен отображать от 36 000 до 360 000 пунктов для каждого сенсора.

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

                          3. Мы реализовали API для реле, датчика температуры и других датчиков, чтобы упростить работу с ними, используя сценарии для тестирования.

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

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

                          Итоги

                          Система измерения и тестирования основана на одноплатном компьютере, который действует как посредник между сервером и датчиками, подключенными к тестируемому устройству.

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