2.3 KiB
2.3 KiB
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 |
Как работает
- ESP32 sensor_node отправляет данные (моточасы, температура, ток) по LoRa
- ESP32 lora_gateway принимает, пересылает в Mosquitto по WiFi
- iot-bridge подписывается на MQTT, пишет в локальный PostgreSQL и вызывает
/api/iot/*OpsCore - sync-agent синхронизирует данные с облаком при наличии интернета
Режимы OpsCore
- Облако — напрямую через интернет
- Локально — через
farmbox.local(mDNS, avahi-daemon) - Офлайн — IndexedDB кэш + очередь мутаций (автосинхронизация при появлении сети)
Полная документация по IoT задачам
→ см. раздел 🟡 IoT в agroto/TASKS.md