Своими рукамипрактическая инструкция

Мост между фермой и облаком: локальная сеть датчиков + LLM

Редакция Фермозавра·25 июля 2026 г.·8 мин чтения

Сырые MQTT-данные остаются дома. Раз в сутки Raspberry Pi собирает короткую сводку и спрашивает LLM: «есть ли риски?». Гибрид экономит деньги, бережёт приватность и переживает обрыв интернета.

Мост между фермой и облаком: локальная сеть датчиков + LLM

У многих уже есть «домашняя нервная система» фермы: ESP32, датчики, иногда LoRa, брокер MQTT, графики, бот. Параллельно есть мощные облачные языковые модели. Если скармливать API каждую минуту все точки температуры и каждое фото — будет дорого, шумно и небезопасно. Нужен мост: дома считаем смысл, наружу отправляем короткую сводку, ответ возвращаем человеку — не реле.

Эта статья — про такую гибридную схему. LLM как консультант разобран в предыдущем материале. Зрение камеры — в контуре ESP32-CAM. Здесь — как подружить локальную сеть с облаком без утечки «внутренностей» хозяйства. Обзор серии — план.

Зачем мост: три боли одним решением

Деньги. Облачные модели тарифицируют объём текста (и тем более изображений). Тысячи сырых строк с датчиков — как возить на базар каждый помидор отдельно вместо ящика.

Приватность. В сыром потоке легко случайно утащить лишнее: точные координаты, имена, режимы охраны, фото с людьми. Сводка «теплица-2, сутки, мин/макс» гораздо безопаснее, если вы её сами составляете.

Связь. Интернет на участке бывает капризным. Локальные пороги («слишком жарко — открой») должны жить без облака. Облачный совет — премия, когда сеть есть.

Аналогия: вы не звоните агроному каждую минуту с показаниями термометра. Раз в день говорите: «Ночью было 11, днём 34, почва суховата, камера ругнулась на ряд 3 — что проверить?» Мост делает из фермы такой ежедневный звонок автоматически.

Архитектура простыми словами

  1. Сбор: датчики и контроллеры публикуют в MQTT; Raspberry Pi пишет историю в InfluxDB, SQLite или хотя бы CSV.
  2. Локальный фильтр: жёсткие пороги и простые аномалии (как в статьях про датчики и влажность). Аварии не ждут облако.
  3. Агрегация раз в N часов: скрипт собирает мин/макс/среднее, число поливов, список алертов камеры, флаги «странно».
  4. Мост: если есть интернет и наступило окно (например, 6:30 и 20:00) — сводка уходит в LLM через API.
  5. Ответ: только в бот хозяину. Не в actuators/cmd.

Опционально дома можно держать маленькую локальную модель для грубой сортировки «стоит ли вообще будить облако». Но на старте хватает правил: «если за сутки не было алертов и всё в коридоре — облако не трогаем».

Что такое хорошая сводка

Сводка — не дамп базы. Это один экран смысла, который человек и модель успевают понять.

{
  "field": "teplica-2",
  "period": "2026-08-09T00:00/24h",
  "crop": "tomato",
  "temp_c": {"min": 11.2, "max": 34.1, "mean": 22.4},
  "rh_pct": {"min": 48, "max": 92},
  "soil_vwc": {"min": 0.18, "max": 0.41},
  "irrigation_mm": 4.2,
  "vents": {"opens": 7, "max_open_pct": 60},
  "alerts": ["frost_risk_night", "cam3_late_blight_0.81"],
  "notes": "Вчера вечером меняли шланг на ряду 1",
  "question": "Есть ли риски на ближайшие сутки? Что проверить утром без химии?"
}

В промпт к сводке снова добавьте запрет: не назначать СЗР, сначала полевые проверки, признавать нехватку данных. Связка с текстом консультанта — из статьи про LLM.

Реальный суточный ритм

Утро. Pi собрал ночь: минимум температуры, влажность, был ли риск заморозка, сработала ли камера. Если флаги есть — запрос в облако: «что осмотреть первым». Вы получаете чек-лист к кофе, идёте в теплицу.

День. Локально работают полив и вентиляция по правилам. Облако молчит — и правильно.

Вечер. Короткая сводка дня + ваши заметки («пересадили», «был град»). Модель помогает набросать запись в журнал и список на завтра. Опять же — советы, не команды клапанам.

Приватность: что можно слать, чего нельзя

Облако — чужой компьютер. Относитесь к сводке как к открытке, которую может прочитать почтальон.

  • Можно: обезличенные агрегаты по «теплица-2», классы алертов без точных GPS дома, общие фазы культуры.
  • Осторожно: отдельные фото — лучше кроп листа без фона с техникой и людьми; или вообще не слать фото, а только класс модели зрения.
  • Нельзя без нужды: ФИО и телефоны сотрудников, пароли Wi‑Fi/MQTT, схемы сигнализации, точный адрес и координаты, финансовые детали контрактов.

Если сомневаетесь — оставьте данные дома и используйте локальную LLM. Гибрид имеет смысл, когда вы явно контролируете содержимое «открытки».

Ложные тревоги на уровне моста

Мост может создать новый вид шума: каждый вечер красивый, но бесполезный отчёт. Или наоборот — молчание, когда сводка слишком «гладкая» и вырезала важный пик.

Как настроить:

  • Шлите в облако только если есть триггер: алерт камеры, выход за порог, резкий скачок, ваш ручной запрос.
  • Храните локально полный ряд — для себя и для разбора ошибок.
  • Если модель три дня подряд советует одно и то же при стабильной картине — повысьте порог триггеров.
  • Сверяйте советы с фактом на грядке; пометки «полезно / мимо» улучшают и промпт, и пороги.

Хороший мост скучен в спокойные дни и разговорчив в странные. Если он болтает всегда — вы кормите облако зря.

Офлайн и аварии

При обрыве интернета:

  1. Пороги температуры, протечки, критической сухости — продолжают работать локально.
  2. Очередь сводок копит файлы; когда сеть вернулась — можно отправить пачкой или только последнюю.
  3. Никакого «раз облако молчит — не поливаем». Полив и климат не зависят от LLM.

Критические действия (перегрев, затопление) — по жёстким правилам, как в будущих агентах: без ожидания ответа чата.

Стоимость и экономия

Грубый ориентир:

  • 1–3 облачных запроса в сутки со сводкой на половину экрана — обычно дёшево по сравнению с потоковой болтовнёй.
  • Экономия ×10–×100 относительно «шлём все точки раз в минуту» — нормальна, если агрегируете честно.
  • Raspberry Pi на мост у вас, скорее всего, уже есть как «мозг» MQTT; отдельная закупка часто не нужна.

Считайте не только рубли API, но и время: короткий утренний чек-лист экономит хаотичный обход «всего сразу».

Постепенный rollout

  1. Этап A. Научитесь строить сводку и читать её сами — без LLM. Если сводка бессмысленна человеку, облаку она тоже не поможет.
  2. Этап B. Ручная отправка сводки в чат LLM раз в день (скопировал JSON — вставил).
  3. Этап C. Скрипт на Pi + API по расписанию, ответ только вам.
  4. Этап D. Триггеры «только при алертах»; антиспам; журнал пользы.
  5. Этап E. Подключение к оркестратору: совет → propose → confirm человеком → исполнитель. Это уже мини-агенты.

Железо поля при этом остаётся прежним: камеры, метеостанция (если есть), почвенные датчики. Мост — слой смысла, не замена датчикам.

Как собрать агрегатор на Raspberry Pi без «магии»

На практике мост — это один скрипт по cron или systemd-timer. Псевдологика понятна даже без глубокого программирования:

  1. Раз в час (или по событию алерта) читаете последние сутки из базы/CSV.
  2. Считаете мин, макс, среднее по температуре, влажности воздуха и почвы.
  3. Считаете, сколько раз открывалась вентиляция и сколько мм «накапал» полив.
  4. Забираете список алертов камеры и датчиков за период.
  5. Если триггеров нет — выходите молча. Если есть — собираете JSON/текст и зовёте API.
  6. Ответ кладёте в бот и в локальный лог advice_YYYY-MM-DD.txt.
# идея: не слать облако без причины
if not alerts and all_in_normal_band(summary):
    exit(0)
reply = llm_api(system_prompt_safe, summary)
notify_bot(reply)
save_local(summary, reply)

Системный промпт тот же, что в статье про консультанта: роль помощника, запрет назначать СЗР, просьба признавать нехватку данных. Меняется только «тело» — сводка вместо ручного рассказа.

Что класть в сводку из зрения и климата

Из камеры лучше не тащить каждый JPEG. Достаточно строк вида: «CAM-3, 11:40, late_blight 0.81». Если очень хотите картинку в облако — кроп листа, без лиц и без табличек с адресом. Из климата — коридоры и выбросы, а не тысяча точек. Из полива — суммарные мм и факт «после команды влажность не выросла» (частый признак засора ленты).

Так сводка остаётся короткой, а LLM получает то, на что способна хорошо: связать несколько фактов в порядок проверки.

Разбор типичных сбоев моста

  • «Облако советует проветрить, а форточка уже открыта». Значит, в сводку не попал статус вентиляции — допишите поле vents.
  • «Советует полить, а вы вчера уже лили». Добавьте irrigation_mm и время последнего полива.
  • «Молчит при реальной проблеме». Триггеры слишком жёсткие или алерт камеры не доходит до агрегатора — проверьте MQTT и лог.
  • «Счёт API вырос». Кто-то включил отправку каждый час без фильтра; верните правило «только по алертам + 1 плановый утренний».
  • «Интернет моргает». Очередь файлов + локальные пороги; не ставьте LLM в разрыв аварийного контура.

Мост отлаживают как капельный полив: сначала смотрят, куда течёт, потом крутят вентили. Не стесняйтесь неделю гонять агрегатор в режиме «только сохранить сводку локально, API не вызывать».

Сколько времени займёт привыкание

На первой неделе вы будете править поля сводки: то забудете указать культуру, то не передадите статус форточек. Это нормально. К третьей неделе утренний отчёт начинает ощущаться как сводка от бригадира: коротко, по делу, без лишней паники. Если через месяц ответы облака всё ещё «общие» и не про вашу теплицу — вернитесь к содержимому JSON: модель не виновата, если вы кормите её пустыми цифрами без контекста полива, камеры и ваших заметок.

И ещё один практический совет: держите рядом бумажный или цифровой журнал «что посоветовали — что сделали — что вышло». Без этой петли мост останется красивой игрушкой. С петлёй он становится частью агрономии хозяйства — такой же, как запись поливов и осмотров.

Главное

Мост между фермой и облаком — это дисциплина агрегации и границ. Сырые ряды и лишние детали живут дома. Наружу уходит короткая сводка по вашим правилам. Ответ LLM — человеку, не насосу. Аварии закрываются локальными порогами. Так вы получаете пользу сильной текстовой модели без счёта «за каждый градус» и без ощущения, что теплица рассказывает о себе всему интернету. Когда сводки стабильны — можно собирать нескольких мини-помощников под одним MQTT-оркестратором.

💬 Комментарии

Чтобы оставить комментарий, войдите или зарегистрируйтесь

Загрузка комментариев...

Похожие статьи