Моніторинг ґрунтових датчиків: мобільний додаток з LoRaWAN

Агрономи втрачають час і врожай, коли дані про вологість ґрунту надходять із запізненням або в нечитабельному вигляді. Ми розробляємо мобільні застосунки з інтеграцією LoRaWAN, які перетворюють сирі показники датчиків на зрозумілі сповіщення про необхідність поливу. Наша команда реалізує проєкт під ключ — від налаштування декодування до подальшої підтримки, забезпечуючи надійний моніторинг полів.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Моніторинг ґрунтових датчиків: мобільний додаток з LoRaWAN

Інтеграція з пристроями (BLE, NFC, IoT, HomeKit)Середнійвід 4 годин до 2 днів
Часті запитання

Реалізація моніторингу ґрунтових датчиків через мобільний додаток

Ґрунтові датчики видають сирі дані в нечитабельних форматах — бінарні пачки за протоколами Modbus RTU, SDI-12 або LoRaWAN. Кожен датчик вимагає унікального декодування: один виробник використовує зміщення байтів, інший — масштабування. Доводиться враховувати тип ґрунту, калібрування та LoRaWAN-стек, інакше цифри перетворюються на шум. Наш мобільний додаток для моніторингу ґрунтових датчиків забезпечує зручний контроль за допомогою LoRaWAN. Ми реалізували такі проєкти для агрогосподарств: інтеграція ChirpStack, декодування Cayenne LPP, відображення профілю вологості з урахуванням повної вологоємності (ПВ). Наша команда має понад 5 років досвіду в IoT та 30+ реалізованих проєктів, що підтверджує високу експертизу. Ми надаємо гарантію на всі рішення та маємо сертифікати відповідності.

Агроном отримує сповіщення на смартфон: вологість на глибині 30 см впала до 15% при польовій вологоємності 45% — пора запускати полив. Без мобільного додатку це б залишилося непоміченим до візуального огляду. Саме тому система моніторингу з датчиками та LoRaWAN окупається за один сезон. Наприклад, базова система з 10 датчиків коштує близько $3000 та окупається за 1-2 сезони завдяки економії поливу.

Як працює моніторинг ґрунтових датчиків через LoRaWAN?

Ґрунтовий датчик — зазвичай Modbus RTU або SDI-12 на дротовому інтерфейсі, або LoRaWAN/NB-IoT для бездротового. Популярні моделі: Sentek Drill & Drop (SDI-12), Vegetronix VH400 (аналоговий 0-3В), TEROS 12 (SDI-12), Decagon 5TM — всі з різними форматами виведення даних. Мобільний додаток отримує ці дані через IoT-шлюз або LoRaWAN Network Server — ніколи напряму. Саме тому LoRaWAN став стандартом для польового моніторингу: він дає дальність та енергоефективність, але потребує грамотного налаштування джойнерів і частотних планів. Як зазначає специфікація LoRaWAN 1.0.4, максимальна дальність у відкритому полі сягає 10 км. LoRaWAN дає дальність у 10 разів більшу, ніж Wi-Fi, при мінімальному енергоспоживанні.

Таблиця протоколів
Протокол Дальність Швидкість Застосування
Modbus RTU до 1200 м (дріт) до 115 кбіт/с Локальні мережі теплиць
SDI-12 до 60 м (дріт) 1200 біт/с Метеостанції, датчики ґрунту
LoRaWAN до 10 км (відкрите поле) 0.3-50 кбіт/с Польовий агромоніторинг

Що вимірює датчик і як інтерпретувати

Три основні параметри ґрунту:

VWC (Volumetric Water Content) — об'ємна вологість у відсотках. Значення 0-100%, на практиці для більшості ґрунтів робочий діапазон 10-40%. Датчик вимірює діелектричну проникність ґрунту, перерахунок у VWC — за формулою Топпа або за калібрувальними даними виробника для конкретного типу ґрунту.

EC (Electrical Conductivity) — електропровідність, мСм/см. Показує засоленість і концентрацію поживних речовин. Норма для більшості культур: 0.5-2.0 мСм/см. Вище 4 мСм/см — стрес для рослин.

Температура ґрунту — важлива для проростання насіння (більшість культур не проростають нижче 8-10°C) і активності мікроорганізмів.

Тип ґрунту Норма VWC (%) Польова вологоємність (ПВ, %)
Пісок 5-10 15
Супісок 10-20 25
Суглинок 20-35 45
Глина 30-45 55

Без контексту типу ґрунту та ПВ число VWC безглузде. Додаток має показувати не лише сирі значення, а й агрономічну інтерпретацію: «Вологість 19% при ПВ=45% для супіщаного ґрунту» — це сухо.

Як декодувати дані TEROS 12 через Cayenne LPP?

ChirpStack — open-source LoRaWAN Network та Application Server. REST API та gRPC інтерфейс:

// Kotlin, Retrofit для ChirpStack API
interface ChirpStackApi {
    @GET("api/devices/{devEui}/events")
    suspend fun getDeviceEvents(
        @Header("Grpc-Metadata-Authorization") token: String,
        @Path("devEui") devEui: String,
        @Query("limit") limit: Int = 100,
    ): DeviceEventsResponse
}

data class DeviceEvent(
    val publishedAt: String,
    val data: String, // Base64-encoded payload
    val rxInfo: List<RxInfo>,
)

fun decodePayload(base64Data: String): SoilReading {
    val bytes = Base64.decode(base64Data, Base64.DEFAULT)
    // Декодування залежить від кодування виробника датчика
    // TEROS 12 Cayenne LPP формат:
    val vwc = ((bytes[1].toInt() and 0xFF) shl 8 or (bytes[2].toInt() and 0xFF)) / 100.0
    val temp = ((bytes[4].toInt() and 0xFF) shl 8 or (bytes[5].toInt() and 0xFF)) / 100.0 - 40
    val ec = ((bytes[7].toInt() and 0xFF) shl 8 or (bytes[8].toInt() and 0xFF)) / 100.0
    return SoilReading(vwc = vwc, temperature = temp, electricalConductivity = ec)
}

Для реального часу через MQTT — ChirpStack публікує події в топики виду application/{appId}/device/{devEui}/event/up. ChirpStack підтримує інтеграцію з будь-яким бекендом.

Переваги LoRaWAN для польових датчиків

LoRaWAN забезпечує дальність до 10 км у відкритому полі при мінімальному енергоспоживанні. Датчики працюють від батарей до 5 років. У поєднанні з ChirpStack та REST API це дає гнучку інтеграцію з мобільним додатком.

Дашборд: кілька датчиків на полі

Стандартна конфігурація — 3-5 датчиків на горизонти глибини (10, 30, 60, 90 см) в одній точці вимірювання. Дашборд показує профіль вологості за глибиною — вертикальний барчарт ефективніший за звичайний список:

Widget buildMoistureProfile(List<SoilLayerReading> layers) {
  return Padding(
    padding: const EdgeInsets.all(16),
    child: Row(
      children: [
        // Вісь глибини
        Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: layers.map((l) => Text('${l.depthCm} см')).toList(),
        ),
        const SizedBox(width: 8),
        Expanded(
          child: Column(
            children: layers.map((layer) {
              final isLow = layer.vwc < layer.fieldCapacity * 0.5;
              return Container(
                margin: const EdgeInsets.symmetric(vertical: 2),
                height: 32,
                child: LinearProgressIndicator(
                  value: layer.vwc / 60.0, // нормуємо до 60% макс
                  backgroundColor: Colors.grey.shade200,
                  color: isLow ? Colors.orange : Colors.blue,
                ),
              );
            }).toList(),
          ),
        ),
      ],
    ),
  );
}

Як налаштувати поріг поливу та тренди?

Головна аналітична функція — показати момент, коли вологість опустилася до порогу поливу (irrigation threshold), і коли повернулася до цільового рівня після поливу. Це допомагає агроному підтвердити, що система іригації відпрацювала коректно.

Графік із fl_chart з горизонтальною лінією порогу:

LineChartData buildTrendChart(List<SoilReading> readings, double threshold) {
  return LineChartData(
    extraLinesData: ExtraLinesData(
      horizontalLines: [
        HorizontalLine(
          y: threshold,
          color: Colors.orange,
          strokeWidth: 1.5,
          dashArray: [5, 5],
          label: HorizontalLineLabel(
            show: true,
            labelResolver: (_) => 'Поріг поливу',
          ),
        ),
      ],
    ),
    lineBarsData: [
      LineChartBarData(
        spots: readings
            .map((r) => FlSpot(r.timestamp.toDouble(), r.vwc))
            .toList(),
        isCurved: true,
        color: Colors.blue,
        dotData: const FlDotData(show: false),
      ),
    ],
  );
}

Налаштування та типи алертів

Два типи алертів для ґрунтових датчиків: за порогом вологості (нижче X% — потрібен полив) та за EC (вище Y мСм/см — ризик засолення). Доставка через FCM. Важливий момент: алерт за вологістю потрібно фільтрувати за часом доби та днями — якщо щойно пройшов дощ, алерт «потрібен полив» надлишковий. Бекенд має враховувати дані метеостанції або прогнозу погоди.

Налаштування системи моніторингу: покрокова інструкція

  1. Вибір та встановлення датчиків (Modbus RTU для теплиць, LoRaWAN для поля).
  2. Налаштування шлюзу та LoRaWAN Network Server (ChirpStack).
  3. Декодування даташиту датчика в Cayenne LPP або кастомний парсер.
  4. Розробка мобільного дашборду (Flutter) з профілем вологості та графіками трендів.
  5. Налаштування алертів з урахуванням погоди та типів ґрунту.
  6. Тестування в полі та деплой у магазини додатків.

Що входить в роботу

  • Проєктування архітектури збору даних (вибір протоколів, шлюзів, Network Server)
  • Налаштування LoRaWAN Network Server (ChirpStack) та REST API
  • Розробка мобільного додатку для iOS/Android (SwiftUI / Jetpack Compose)
  • Інтеграція з метеостанціями та врахування типу ґрунту
  • Тестування в польових умовах та deploy в App Store / Google Play
  • Документація та навчання агрономів

Типові помилки при інтеграції:

  • Плутанина з кодуванням Cayenne LPP (різні виробники використовують різні зміщення)
  • Відсутність фільтрації алертів за погодою (хибні спрацьовування після дощу)
  • Ігнорування типу ґрунту при інтерпретації VWC (для супіску та глини норми різні)

Розробка додатку моніторингу ґрунтових датчиків з LoRaWAN-інтеграцією, профілями вологості та алертами займає 3-5 тижнів. Вартість розраховується індивідуально. Зв'яжіться з нами — ми підготуємо оцінку за один день. Напишіть нам — і дізнайтеся, як система окупиться у вашому господарстві.

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

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714