docs: add PROJECT_KNOWLEDGE.md
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user