From c02d07704f60cf7a161aa554939737e6b382ef64 Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 3 May 2026 11:10:55 +0000 Subject: [PATCH] docs: add PROJECT_KNOWLEDGE.md --- PROJECT_KNOWLEDGE.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 PROJECT_KNOWLEDGE.md diff --git a/PROJECT_KNOWLEDGE.md b/PROJECT_KNOWLEDGE.md new file mode 100644 index 0000000..b1f86e0 --- /dev/null +++ b/PROJECT_KNOWLEDGE.md @@ -0,0 +1,36 @@ +# PROJECT_KNOWLEDGE.md — FarmBox + +## Что это + +**FarmBox** — локальный edge-сервер для фермы. Разворачивается на Mini PC или Raspberry Pi прямо на объекте, работает полностью без интернета. Принимает данные от ESP32-датчиков по LoRa, агрегирует через MQTT и синхронизирует в облако когда есть связь. + +**Является частью системы AgroTO/OpsCore** → полная документация: https://git.zeroday.su/admin/agroto + +## Состав репо + +| Папка | Описание | +|---|---| +| `firmware/lora_gateway/` | Прошивка ESP32 LoRa-шлюза (приёмник) | +| `firmware/sensor_node/` | Прошивка ESP32-датчика (передатчик, моточасы, temp, ток) | +| `iot-bridge/` | Node.js мост между MQTT и облачным API OpsCore | +| `sync-agent/` | Агент синхронизации локал ↔ облако | +| `mosquitto/` | Конфиг Mosquitto MQTT брокера | +| `docker-compose.yml` | Весь стек: Mosquitto + InfluxDB + Node-RED + Grafana + farm-cmms + sync-agent | +| `install.sh` | Скрипт установки на чистый Ubuntu/Raspberry Pi | + +## Как работает + +1. ESP32 sensor_node отправляет данные (моточасы, температура, ток) по LoRa +2. ESP32 lora_gateway принимает, пересылает в Mosquitto по WiFi +3. iot-bridge подписывается на MQTT, пишет в локальный PostgreSQL и вызывает `/api/iot/*` OpsCore +4. sync-agent синхронизирует данные с облаком при наличии интернета + +## Режимы OpsCore + +- **Облако** — напрямую через интернет +- **Локально** — через `farmbox.local` (mDNS, avahi-daemon) +- **Офлайн** — IndexedDB кэш + очередь мутаций (автосинхронизация при появлении сети) + +## Полная документация по IoT задачам + +→ см. раздел **🟡 IoT** в [agroto/TASKS.md](https://git.zeroday.su/admin/agroto/src/branch/main/TASKS.md)