Мобильный мониторинг промышленного оборудования: IIoT-приложение

Представьте: производственная линия, 500 датчиков вибрации, температуры и давления. Каждую секунду — 250 000 сэмплов. Оператор не может уследить за всем. Нужно мобильное приложение, которое покажет только критические отклонения. Мы разрабатываем такие решения — от сбора данных с PLC до уведомлений н

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Мобильный мониторинг промышленного оборудования: IIoT-приложение
Сложный
от 1 недели до 3 месяцев

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    897
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    784
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1218
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1081
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1004
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    600

Представьте: производственная линия, 500 датчиков вибрации, температуры и давления. Каждую секунду — 250 000 сэмплов. Оператор не может уследить за всем. Нужно мобильное приложение, которое покажет только критические отклонения. Мы разрабатываем такие решения — от сбора данных с PLC до уведомлений на смартфоне. Свяжитесь с нами для обсуждения архитектуры вашего IIoT-решения. Наш опыт — более 10 лет в промышленном интернете вещей (IIoT), более 50 проектов для заводов. Без правильной архитектуры приложение захлебнётся в потоке данных. Поэтому на первом этапе мы проектируем систему сбора и нормализации данных на Edge-шлюзах, а затем строим надёжный real-time канал передачи.

Мобильный мониторинг промышленного оборудования: ключевые технические решения

Edge-компонент — промышленный шлюз (Moxa, Advantech, Siemens IPC) или кастомный Linux-сервер — нормализует данные с разных протоколов и публикует агрегаты в MQTT или отдаёт через REST/WebSocket. Для мобильного приложения важны два потока: реальное время — текущие значения ключевых параметров, обновление раз в 1-5 секунд через WebSocket; и история — тренды за смену, сутки, неделю через REST API с пагинацией и агрегацией.

Как устроен сбор данных в реальном времени?

На уровне оборудования данные собирает Edge-компонент: промышленный шлюз (Moxa, Advantech, Siemens IPC) или кастомный Linux-сервер. Он нормализует данные с разных протоколов (OPC-UA, Modbus, MQTT) и публикует агрегаты в MQTT или отдаёт через REST/WebSocket.

Датчики → PLC / Edge Gateway → Time-Series DB (InfluxDB / TimescaleDB) ↓ Backend API (REST + WebSocket) ↓ Мобильное приложение 

Агрегация и нормализация на Edge-шлюзе — мобильный мониторинг промышленного

Согласно документации OPC-UA Part 6, шлюз преобразует адресное пространство OPC-UA в плоские тэги. Для Modbus — маппинг регистров на физические величины (например, регистр 40001 = температура с коэффициентом 0.1). Агрегация: среднее, минимум, максимум за окно 1 секунда. Это снижает трафик в 10-100 раз.

Протокол Применение Частота опроса Сложность интеграции
OPC-UA PLC, CNC 1-1000 мс Средняя
Modbus RTU/TCP Датчики, контроллеры 10-1000 мс Низкая
MQTT IoT-устройства 1-60 с Низкая
Siemens S7 SIMATIC S7 10-100 мс Высокая

Почему архитектура сбора данных — главный вызов?

Используем Flutter с WebSocket. Для надёжности — автоматическое переподключение с экспоненциальной задержкой.

class EquipmentMonitorRepository { WebSocketChannel? _channel; final StreamController<EquipmentState> _stateController = StreamController.broadcast(); Stream<EquipmentState> get stateStream => _stateController.stream; void connect(String equipmentId, String token) { _channel = WebSocketChannel.connect( Uri.parse('wss://iiot.factory.com/ws/equipment/$equipmentId'), ); _channel!.stream .map((event) => json.decode(event as String)) .map(EquipmentState.fromJson) .listen( _stateController.add, onError: _handleError, onDone: _scheduleReconnect, ); _channel!.sink.add(json.encode({'auth': token})); } void _scheduleReconnect() { Future.delayed(const Duration(seconds: 5), () => connect(_lastId, _lastToken)); } } 
Пример реализации BLoC для управления состоянием
class EquipmentMonitorBloc extends Bloc<EquipmentEvent, EquipmentMonitorState> { StreamSubscription<EquipmentState>? _subscription; EquipmentMonitorBloc(this._repository) : super(EquipmentMonitorInitial()) { on<StartMonitoring>((event, emit) async { _subscription = _repository.stateStream.listen( (state) => add(StateUpdated(state)), ); _repository.connect(event.equipmentId, event.token); }); on<StateUpdated>((event, emit) { final current = event.state; final isAlert = current.temperature > 85.0 || current.vibrationRms > 12.5; emit(EquipmentMonitorRunning(state: current, hasAlert: isAlert)); }); } } 

WebSocket в 20 раз быстрее HTTP polling при передаче телеметрии. Сравните:

Способ Задержка Нагрузка на батарею Нагрузка на сервер
HTTP polling >1 сек Высокая Высокая
WebSocket <100 мс Низкая Низкая
gRPC-stream <50 мс Средняя Средняя

Визуализация трендов и отклонений

Для исторических данных используем fl_chart (Flutter) или MPAndroidChart. Ключевая оптимизация — агрегация на стороне API. Запрос к InfluxDB-based API:

GET /api/v1/equipment/{id}/trend? parameter=temperature& from=2023-01-15T06:00:00Z& to=2023-01-15T18:00:00Z& resolution=300 # агрегация по 5 минут 

Ответ — массив из 144 точек вместо 43 200. Чарт рисует без фризов.

Baseline и отклонения

Полезная функция — отображение baseline (нормального диапазона) на графике. Если ток двигателя в норме 12-15А, выделяем зону, и оператор сразу видит отклонение:

LineChartData buildTrendChart(List<TrendPoint> data, Range baseline) { return LineChartData( extraLinesData: ExtraLinesData( horizontalLines: [ HorizontalLine(y: baseline.min, color: Colors.green.withOpacity(0.3)), HorizontalLine(y: baseline.max, color: Colors.green.withOpacity(0.3)), ], ), betweenBarsData: [ BetweenBarsData( fromIndex: 0, toIndex: 0, color: Colors.green.withOpacity(0.1), ), ], lineBarsData: [ LineChartBarData( spots: data.map((p) => FlSpot(p.timestamp.toDouble(), p.value)).toList(), color: data.any((p) => p.value > baseline.max || p.value < baseline.min) ? Colors.red : Colors.blue, ), ], ); } 

Что нужно учесть при разработке?

  • Агрегация данных — не передавать сырые сэмплы, только агрегаты.
  • Офлайн-режим — кешировать последние показатели и алерты в локальной БД.
  • Эскалация алертов — если оператор не принял алерт за 5 минут, уведомить мастера.
  • Безопасность — TLS, JWT, шифрование на устройстве.
  • Тестирование — симуляция до 10 000 устройств.

Для снижения трафика на Edge-шлюзе применяется скользящее окно: из 25 600 сэмплов с вибродатчика формируется 1-10 агрегатов — среднее, пик, RMS, частота основного тона.

Этапы разработки

  1. Аудит источников данных — разбор протоколов и частоты опроса.
  2. Проектирование архитектуры — выбор Edge-компонента и Time-Series DB.
  3. Разработка бэкенда — API агрегации, WebSocket, алерты.
  4. Разработка мобильного приложения — UI, тренды, пуш-уведомления.
  5. Интеграция и тестирование — на реальном оборудовании.
  6. Деплой и поддержка — App Store / Google Play, мониторинг.

Что входит в результат?

  • Исходный код мобильного приложения (iOS/Android/Flutter).
  • Бэкенд-сервис с API и WebSocket.
  • Документация по интеграции и развёртыванию.
  • Доступ к репозиторию и CI/CD.
  • Обучение операторов (до 2 часов).
  • Гарантия 6 месяцев на баги.

Стоимость и сроки

Разработка приложения для одного типа оборудования с WebSocket и трендами — от 4 до 8 недель. Полный цикл с офлайн-режимом и эскалацией — от 2 до 4 месяцев. Стоимость рассчитывается индивидуально после анализа ваших источников данных. Типичная экономия от внедрения составляет миллионы рублей в год за счёт снижения простоев и затрат на внеплановые остановки. Закажите бесплатную консультацию инженера по мобильной разработке.