О клиенте
Наш клиент специализируется на разработке и производстве оборудования для полевых исследований и образовательных решений. В линейку продукции компании входят компактные портативные лаборатории, оснащенные встроенными датчиками и универсальными интерфейсами расширения, которые позволяют проводить исследования в области экологии, химии и физики.
Для расширения сценариев применения оборудования в научно-исследовательской и образовательной среде компании потребовалось разработать универсальное программное решение, обеспечивающее полноценное управление лабораториями и работу с экспериментальными данными на мобильных и настольных платформах.
- Регион: Европа
- Отрасль: 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;
- Офлайн-хранение данных измерений и результатов анализа.
Сценарий работы пользователя
- Пользователь подключает портативную лабораторию к приложению по Bluetooth или USB.
- Приложение определяет доступные датчики и позволяет выбрать нужную комбинацию, количество измерений и частоту опроса.
- Пользователь настраивает процесс измерений в соответствии с задачами исследования.
- Приложение собирает данные с нескольких датчиков и отображает результаты на графиках в реальном времени.
- Аналитика с помощью ИИ помогает выявлять тенденции, аномалии и значимые изменения в собранных данных.
- В версиях для Windows и Linux исследователи могут добавлять к результатам комментарии, изображения, маркеры и графики статистических распределений.
- Пользователь может повторить эксперимент с теми же настройками, чтобы оценить стабильность работы оборудования и разброс полученных данных.
- Полный набор данных эксперимента, включая результаты измерений и аннотации, можно экспортировать в стандартных форматах для отчетности или дальнейшего анализа.
Технологический стек
Для обеспечения высокой производительности на разных платформах, визуализации данных в реальном времени, взаимодействия с оборудованием и локальной аналитики мы использовали следующий технологический стек:
- Фреймворк: 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.