Mephimeow 6c170fe1a2 new-g
2026-04-29 12:28:30 +00:00
2026-04-29 12:28:30 +00:00
q
2026-04-29 11:52:46 +00:00
2026-04-29 12:28:30 +00:00
2026-04-29 12:28:30 +00:00

Rostpoliplast — Линия переработки лома во вторичный гранулят

Система автоматизации линии переработки полимерного лома с контролем этапов, телеметрией и QR-сканированием.

Архитектура

┌─────────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐
│  Датчики    │──▶│ Edge GW  │──▶│   MQTT   │──▶│  Backend │
│ (IO-Link)   │   │ (ESP32)  │   │ Broker   │   │  (Go)    │
└─────────────┘   └──────────┘   └──────────┘   └──────────┘
                                                    │
                                              ┌─────┴─────┐
                                              │  InfluxDB │
                                              │  Grafana  │
                                              └───────────┘

Backend API

Запуск

cd backend
docker-compose up -d

Swagger: http://localhost:8080/swagger/index.html

Эндпоинты

Тюки (Bales)

Метод Путь Описание
GET /api/v1/bales Список всех тюков
GET /api/v1/bales/:id Тюк по ID
POST /api/v1/bales Создать тюк (+ RabbitMQ task)
PUT /api/v1/bales/:id Обновить тюк
DELETE /api/v1/bales/:id Удалить тюк
POST /api/v1/bales?type=standard Создать по типу (QR flow)

Типы тюков (Bale Types)

Метод Путь Описание
GET /api/v1/bale-types Список типов
GET /api/v1/bale-types/:id Тип по ID
GET /api/v1/bale-types/qr/:id QR-код для маркировки
POST /api/v1/bale-types Создать тип
PUT /api/v1/bale-types/:id Обновить тип
DELETE /api/v1/bale-types/:id Удалить тип

Линия (Line) — НОВОЕ

Метод Путь Описание
GET /api/v1/line/stages Все этапы линии
GET /api/v1/line/stages/:id Этап по ID
POST /api/v1/line/stages Добавить этап
PUT /api/v1/line/stages/:id Обновить этап
DELETE /api/v1/line/stages/:id Удалить этап
GET /api/v1/line/stats Статистика линии

Датчики (Sensors) — НОВОЕ

Метод Путь Описание
POST /api/v1/sensors/readings Показание датчика
GET /api/v1/sensors/readings/stage/:id История по этапу

События (Events) — НОВОЕ

Метод Путь Описание
POST /api/v1/events Событие на линии
GET /api/v1/events/stage/:id События по этапу

Очередь (Queue)

Метод Путь Описание
GET /api/v1/queue/next Следующая задача

Примеры запросов

# Получить этапы линии
curl http://localhost:8080/api/v1/line/stages

# Отправить показание датчика
curl -X POST http://localhost:8080/api/v1/sensors/readings \
  -H "Content-Type: application/json" \
  -d '{"stage_id": 1, "sensor": "vibration", "value": 42.5, "unit": "mm/s"}'

# Создать событие
curl -X POST http://localhost:8080/api/v1/events \
  -H "Content-Type: application/json" \
  -d '{"stage_id": 3, "event_type": "item_processed", "data": "success"}'

# Статистика линии
curl http://localhost:8080/api/v1/line/stats

Компоненты линии (Line/)

Компонент Описание
controller_* Контроллеры (WAGO, Siemens, Beckhoff, RPi)
drive_* ЧРП (Danfoss, ABB, Schneider, SEW, Lenze)
sensor_* Датчики (вибрация, температура, позиция, ток, уровень)
safety_* Безопасность (Pilz, Siemens, Schneider)
middleware_* Node-RED, Mosquitto, Grafana+InfluxDB
comm_* Коммуникация (Hilscher, Moxa, Turck)
infrastructure_* Шкафы, питание, коммутаторы

QR Сканер

python QR/scanner.py
  • Камера: Raspberry Pi Camera Module v3
  • Библиотеки: pyzbar + OpenCV
  • Клавиши: q — выход, r — сброс

Счетчик товаров (mmWave)

# ESPHome + LD2410B
esphome run ld2410b_counter.yaml
  • Радар 24 ГГц, отслеживание дистанции и энергии
  • Подсчет через конечный автомат (debounce 300ms)
  • MQTT интеграция, настраиваемые пороги

Тесты

cd backend
go test ./... -v

20 тестов покрывают все эндпоинты API.

S
Description
No description provided
Readme 115 KiB
Languages
Go 73.3%
HTML 22.9%
Python 2.6%
Dockerfile 1.1%