Разработка кроссплатформенного приложения для портативного лабораторного оборудования

Кроссплатформенное решение для лабораторного оборудования, которое объединило управление устройствами, сбор данных с датчиков, визуализацию экспериментов в реальном времени и расширенную аналитику на Android, iOS, Windows и Linux.

О клиенте

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

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

  • Регион: Европа
  • Отрасль: IoT / лабораторное оборудование
  • Срок реализации: 2 года

Задача

Традиционное ПО для лабораторий часто представляет собой набор разрозненных приложений: одни используются для полевых исследований на мобильных устройствах, другие — для анализа данных на настольных компьютерах. Такой подход создает проблемы совместимости и увеличивает затраты на разработку.

В рамках проекта требовалось решить следующие ключевые задачи:

  • Обеспечить поддержку Android, iOS, Windows и Linux на базе единой кодовой базы.
  • Реализовать подключение лабораторного оборудования через Bluetooth и USB.
  • Разработать собственный низкоуровневый коммуникационный слой для обхода ограничений BlueZ и существующих USB-библиотек.
  • Обеспечить одновременную обработку нескольких потоков данных при динамическом изменении конфигураций датчиков.
  • Адаптировать пользовательский интерфейс для сенсорного управления на мобильных устройствах и точной работы с мышью на десктопах.
  • Реализовать расширенные инструменты десктопной аналитики, включая аннотирование данных, добавление маркеров на графики и статистический анализ.
  • Внедрить механизмы автоматического выявления тенденций, аномалий и значимых изменений в высокочастотных потоках данных с датчиков.
  • Обеспечить полноценный импорт, экспорт и воспроизведение экспериментов с сохранением результатов измерений, графиков, аннотаций и метаданных.

Обзор проекта

Мы разработали высокопроизводительное кроссплатформенное приложение на базе Flutter для Android, iOS, Windows и Linux, используя единую кодовую базу. Решение объединило управление портативным лабораторным оборудованием, сбор данных с датчиков и мониторинг экспериментов в единой программной среде.

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

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

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

Решение

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

Основные возможности платформы

  • Поддержка Android, iOS, Windows и Linux;
  • Подключение оборудования по Bluetooth Low Energy и USB;
  • Динамическая настройка встроенных и внешних датчиков;
  • Многоканальный сбор данных с датчиков в реальном времени;
  • Интерактивные графики временных рядов и визуализация данных;
  • Выявление тенденций и аномалий с помощью ИИ;
  • Расширенные возможности аннотирования данных и статистического анализа на десктопных системах;
  • Добавление изображений и пользовательских маркеров к графикам;
  • Повтор измерений в один клик;
  • Полный импорт и экспорт экспериментов;
  • Экспорт исследовательских данных в форматах CSV и XML;
  • Офлайн-хранение данных измерений и результатов анализа.

Сценарий работы пользователя

  1. Пользователь подключает портативную лабораторию к приложению по Bluetooth или USB.
  2. Приложение определяет доступные датчики и позволяет выбрать нужную комбинацию, количество измерений и частоту опроса.
  3. Пользователь настраивает процесс измерений в соответствии с задачами исследования.
  4. Приложение собирает данные с нескольких датчиков и отображает результаты на графиках в реальном времени.
  5. Аналитика с помощью ИИ помогает выявлять тенденции, аномалии и значимые изменения в собранных данных.
  6. В версиях для Windows и Linux исследователи могут добавлять к результатам комментарии, изображения, маркеры и графики статистических распределений.
  7. Пользователь может повторить эксперимент с теми же настройками, чтобы оценить стабильность работы оборудования и разброс полученных данных.
  8. Полный набор данных эксперимента, включая результаты измерений и аннотации, можно экспортировать в стандартных форматах для отчетности или дальнейшего анализа.

Технологический стек

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

  • Фреймворк: Flutter для Android, iOS, Windows и Linux
  • Языки: Dart, C/C++
  • Управление состоянием: BLoC / Provider
  • Нативная интеграция: Dart FFI
  • Взаимодействие с оборудованием: Bluetooth Low Energy (BLE), USB Serial API
  • Взаимодействие с оборудованием в Linux: DBus
  • Локальное хранилище: Isar Database
  • Облачная / сетевая база данных: PocketBase
  • Форматы данных: CSV, XML, JSON
  • ИИ и аналитика: ONNX Runtime / TensorFlow Lite
  • Обработка данных: Нативные модули на C/C++ для парсинга телеметрии и цифровой обработки сигналов (DSP)

Результаты

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

Ключевые результаты проекта:

  • Сокращение затрат на разработку до 50%. Использование единой кодовой базы позволило отказаться от поддержки отдельных нативных приложений для каждой операционной системы и снизить затраты на дальнейшее развитие продукта.
  • Стабильная работа оборудования в Linux. Прямая интеграция через DBus позволила преодолеть ограничения системных библиотек и обеспечить надежное взаимодействие с лабораторным оборудованием.
  • Расширенные возможности исследовательского анализа. Реализованы инструменты аннотирования с изображениями, добавления пользовательских маркеров и автоматического построения графиков статистических распределений.
  • Автоматизация анализа данных. Интеграция ИИ-моделей позволила автоматически выявлять тенденции и аномалии, сокращая время обработки результатов экспериментов.
  • Универсальность работы с экспериментальными данными. Реализован перенос полных наборов экспериментальных данных между системами с сохранением структуры и поддержкой стандартных форматов CSV и XML.

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Мы любим новые проекты! Напишите нам, и мы ответим вам в ближайшее время.

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