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

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация мониторинга теплиц через мобильное IoT-приложение
Средняя
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

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

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

Датчики и протоколы

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

  • Температура/влажность воздуха: 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: 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).

Разработка приложения мониторинга теплицы с реальным временем, управлением климатом и критическими алертами: 5-8 недель. Многосекционная теплица с полным журналированием и экспортом: 2-3 месяца. Стоимость рассчитывается индивидуально.