Разработка мобильного IoT-приложения для мониторинга теплиц

Реализация мониторинга теплиц через мобильное IoT-приложение Тепличное хозяйство на 10 гектаров потеряло 80% урожая томатов из-за того, что мобильное приложение не показало отказ нагревателя ночью. Диспетчер увидел оповещение только утром — к тому моменту температура упала до 5°C. Как избежать та

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка мобильного IoT-приложения для мониторинга теплиц
Средний
от 4 часов до 2 дней

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

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

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

  • 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

Реализация мониторинга теплиц через мобильное IoT-приложение

Тепличное хозяйство на 10 гектаров потеряло 80% урожая томатов из-за того, что мобильное приложение не показало отказ нагревателя ночью. Диспетчер увидел оповещение только утром — к тому моменту температура упала до 5°C. Как избежать таких сценариев? Наше мобильное IoT-приложение решает эту задачу через надежный стек MQTT, критических алертов и автоматического управления. За 7 лет работы мы запустили более 20 проектов в агросекторе, и каждый требовал индивидуальной архитектуры.

Теплица — замкнутая среда, в которой каждый параметр влияет на урожайность. Колебания температуры даже на 2°C могут снизить урожайность на 10-15%. Влажность, CO₂, освещённость, влажность почвы, pH и EC питательного раствора — все эти величины необходимо отслеживать в реальном времени. В отличие от открытого поля, в теплице хорошая связность (Wi-Fi, Zigbee), но жёсткие требования к надёжности: критическое падение температуры ночью или отказ увлажнителя могут уничтожить урожай за несколько часов.

Мы используем промышленные датчики с интерфейсами I²C, UART и SDI-12, подключаемые к ESP32. Данные публикуются в MQTT-брокер с QoS 1, что гарантирует доставку без дублирования. Мобильное приложение подписывается на соответствующие топики и отображает актуальную информацию на дашборде. Для управления климатом используются команды на реле через MQTT. Наша компетенция — полный цикл разработки приложения для теплицы.

Какие датчики и протоколы используем?

Стандартный набор для одной секции теплицы:

  • Температура/влажность воздуха: SHT40 (I²C), DHT22 (One-Wire) — на узлах на основе ESP32
  • CO₂: MH-Z19B (UART) или SenseAir S8 (Modbus)
  • Освещённость: VEML7700 (I²C), люкс и фотосинтетически активная радиация (PAR)
  • Почвенная влажность: TEROS 12 (SDI-12)
  • EC/pH питательного раствора: Atlas Scientific EZO-EC и EZO-pH (I²C UART)

Узлы на ESP32 с прошивкой на ESPHome или Tasmota публикуют данные в MQTT. Home Assistant или кастомный MQTT-брокер (Mosquitto) агрегирует. Мобильное приложение — через REST API или WebSocket на бэкенде.

Почему MQTT лучше HTTP для IoT?

MQTT обеспечивает асимметричный push с минимальной задержкой. В отличие от HTTP polling, нагрузка на сеть в 10–15 раз ниже. Для теплиц с 50+ секциями это критично: каждое устройство отправляет данные раз в 30 секунд. MQTT QoS 1 гарантирует доставку без дублирования. Мы используем его для всех сценариев реального времени.

Подробнее о протоколе можно прочитать в Wikipedia. Сравнение MQTT и HTTP для IoT:

Критерий MQTT HTTP
Модель Publish-Subscribe Request-Response
Задержка <10 мс (push) >100 мс (polling)
Нагрузка на сеть Низкая (persistent connection) Высокая (каждый запрос)
Гарантия доставки 3 уровня QoS N/A (нужны ретраи)
Масштабирование Топики, автоматическая балансировка Ограничено сервером

Реальное время через MQTT на Android

class GreenhouseMonitorService : Service(), MqttCallbackExtended { private lateinit var mqttClient: MqttAndroidClient private val sectionData = ConcurrentHashMap<String, GreenhouseSectionState>() fun startMonitoring(sections: List<String>) { sections.forEach { sectionId -> mqttClient.subscribe("greenhouse/$sectionId/+", 1) } } override fun messageArrived(topic: String, message: MqttMessage) { val parts = topic.split("/") val sectionId = parts[1] val parameter = parts[2] val value = String(message.payload).toDoubleOrNull() ?: return val current = sectionData.getOrPut(sectionId) { GreenhouseSectionState(sectionId) } val updated = when (parameter) { "temperature" -> current.copy(temperatureC = value) "humidity" -> current.copy(humidityPercent = value) "co2" -> current.copy(co2Ppm = value.toInt()) "light_lux" -> current.copy(lightLux = value.toInt()) "soil_moisture" -> current.copy(soilMoistureVwc = value) "ec" -> current.copy(nutrientEc = value) "ph" -> current.copy(nutrientPh = value) else -> current } sectionData[sectionId] = updated broadcastUpdate(updated) } } 

Дашборд секций и пороговые значения

Для теплицы с несколькими секциями — горизонтальный PageView или TabBar с дашбордом каждой секции. На каждой карточке секции — цветовые индикаторы параметров: зелёный (норма), жёлтый (внимание), красный (критично).

Пороговые диапазоны для томатов как пример:

Параметр Критично мало Норма Критично много
Температура ночь < 12°C 15-18°C > 25°C
Температура день < 18°C 22-28°C > 35°C
Влажность < 50% 65-80% > 90%
CO₂ < 400 ppm 800-1200 ppm > 1500 ppm
EC раствора < 1.5 2.0-3.5 > 5.0
pH раствора < 5.5 5.8-6.5 > 7.0

Конфигурацию порогов хранит бэкенд, мобильное приложение скачивает при старте и кеширует в SharedPreferences.

Как управлять климатом из приложения?

Управление климатом — ключевая функция автоматизации теплицы. Форточки, обогреватели, увлажнители, CO₂-генераторы управляются из приложения. MQTT команды на реле:

Future<void> setVentilation(String sectionId, bool open) async { _mqttClient.publishMessage( 'greenhouse/$sectionId/vent/command', MqttQos.exactlyOnce, (MqttClientPayloadBuilder()..addString(open ? 'OPEN' : 'CLOSE')).payload!, ); } 

Для автоматических сценариев (открыть форточку если температура > 28°C) логика может быть и на бэкенде (Node-RED, Home Assistant automation), и в самом приложении как локальное правило.

Как настроить критические алерты?

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

На Android: FCM с PRIORITY_HIGH + Foreground Service с Wake Lock для надёжного получения в ночном режиме. На iOS: Critical Alerts через entitlement com.apple.developer.usernotifications.critical-alerts — воспроизводятся на полной громкости независимо от режима Не беспокоить.

Дополнительно — звонок через Twilio Voice API для нескольких ответственных по эскалации, если алерт не подтверждён за 10 минут.

Что даёт журнал событий и отчёты?

Агроном смотрит не только текущие данные, но и историю: когда включался обогреватель, когда открывались форточки, какова температура была в 2 ночи. Журнал событий с фильтрацией по типу и периоду — важная функция.

Экспорт отчётов в Excel/CSV — требование большинства промышленных клиентов для документирования условий выращивания. Формируется на бэкенде, мобильное приложение скачивает и открывает через Share Sheet (iOS) или FileProvider (Android).

Процесс разработки

Мы работаем по следующему плану:

  1. Аналитика: изучаем ваши теплицы, датчики, сценарии. Готовим архитектурную документацию.
  2. Проектирование: прототип UI/UX, спецификация API и MQTT топиков.
  3. Реализация: пишем код приложения (iOS/Android), бэкенда и прошивок ESP32.
  4. Тестирование: интеграционное тестирование с вашими датчиками, нагрузочное тестирование.
  5. Деплой: загрузка в App Store и Google Play, настройка MQTT-брокера, пусконаладка.
  6. Поддержка: 3 месяца технической поддержки после запуска, обучение вашей команды.

Пример конфигурации MQTT топиков: каждая секция теплицы использует иерархию топиков — greenhouse/{sectionId}/temperature, greenhouse/{sectionId}/humidity, greenhouse/{sectionId}/co2, greenhouse/{sectionId}/vent/command, greenhouse/{sectionId}/heater/status. Это упрощает фильтрацию на стороне приложения и бэкенда.

Что входит в разработку

Мы предоставляем полный пакет:

  • Архитектурная документация (диаграммы, спецификация API)
  • Исходный код приложения (iOS/Android) и бэкенда
  • Настройка MQTT-брокера и интеграция с датчиками
  • Загрузка в App Store и Google Play (аккаунты ваши)
  • Техническая поддержка 3 месяца после запуска
  • Обучение вашей команды работе с системой

Сроки и гарантия

Базовая версия с мониторингом и уведомлениями — от 5 недель. Многосекционная теплица с полным журналированием и экспортом — до 3 месяцев. Стоимость рассчитывается индивидуально. На весь код предоставляем 12 месяцев гарантии. Закажите разработку — свяжитесь с нами для оценки вашего проекта.

Оценим проект бесплатно — напишите нам, и мы подготовим коммерческое предложение в течение 2 дней.