Files
weighing-controller/HARDWARE.md
T
admin 35e5ffea1e Initial: backup from Claude Project 'Весовое оборудование'
- PROTOCOL.md: topology, JSON schema, MQTT topic, auth, retry logic
- HARDWARE.md: components, GPIO map, ASCII wiring, power, calibration
- FIRMWARE_NOTES.md: stack (ESP32 core 3.x), libraries, main loop, known issues, TODO
- INDEX.md: manifest + current status + blockers

Current blocker: TITAN 9 P5 default = no RS232 output.
Fix: call Zemic +7(472)277-71-19, set P5=3, then test on-site.
Related server repo: admin/scales
2026-04-30 12:26:31 +03:00

120 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hardware: Весовой контроллер на ESP32
## Используемые компоненты
| Компонент | Примечание |
|----------------------------------|----------------------------------------------------------------------------------|
| ESP32-WROOM (ESP32 Dev Module) | Основной контроллер |
| W5500 Ethernet модуль | Зелёный компактный модуль 3.3V (синий оказался бракованным — см. ниже) |
| MAX3232 модуль | RS232 ↔ 3.3V TTL, питание 3–5В, 15×9 мм, рабочая t −40…+85°C |
| DS3231 RTC модуль | Часы реального времени с батарейкой; синхронизация NTP (Google 216.239.35.0) |
| 2-канальное реле (оптоизолятор) | На транзисторах BC547, управление светофором (красный / зелёный) |
| Блок питания 5В 2А | Питание всей схемы |
| Zemic TITAN 9 (весовой индикатор)| Основан на Zemic A12E; разъём DB25 (RS-232); весовая платформа до 50–60 т |
> **Важно:** Синий W5500 (первый заказанный) оказался бракованным — RJ45-трансформатор не работал
> несмотря на горящий светодиод питания. Заменён на зелёный компактный модуль 3.3V.
## Схема подключения
### W5500 → ESP32 (SPI)
```
W5500 ESP32
----- -----
MOSI → GPIO23
MISO → GPIO19 ⚠️ MOSI/MISO на модуле подписаны наоборот —
SCK → GPIO18 в прошивке SPI.begin(18, 23, 19, 4) — переставлены!
CS → GPIO4 ⚠️ GPIO5 — strapping pin, вызывает конфликт SPI при старте
RST → GPIO26 используем GPIO4
3.3V → 3.3V
GND → GND
```
### MAX3232 → ESP32 (UART RS232)
```
Весы DB25 MAX3232 (RS232 side) MAX3232 (TTL side) ESP32
--------- ------------------ ------------------ -----
Pin 2 TXD → RX (RS232)
TX (TTL) → GPIO16 (RX2)
Pin 7 GND → GND GND
VCC (3.3V) ← 3.3V
```
> Весы DB25: передача данных только на TXD + GND — 2 провода минимум.
> RXD нужен только если отправлять команды (T — тара, Z — обнуление, R — запрос веса).
> DTR может использоваться для питания гальваноразвязки (уточнить по конкретному экземпляру).
### Реле → ESP32 (светофор)
```
ESP32 Схема Нагрузка
----- ----- --------
GPIO32 → 1 кОм → база BC547 → коллектор → реле К1 → КРАСНЫЙ сигнал
GPIO33 → 1 кОм → база BC547 → коллектор → реле К2 → ЗЕЛЁНЫЙ сигнал
GND → эмиттер BC547
5V → обмотка реле (через диод защиты 1N4007)
```
### DS3231 → ESP32 (I2C)
```
DS3231 ESP32
------ -----
SDA → GPIO21
SCL → GPIO22
VCC → 3.3V
GND → GND
```
> **Порядок инициализации:** DS3231 должен инициализироваться **до** вызова `ETH.begin()`,
> иначе возникает конфликт I2C.
### Полная карта GPIO
| GPIO | Функция |
|------|----------------------|
| 4 | W5500 CS (SPI) |
| 16 | RS232 RX (Serial2) |
| 17 | RS232 TX (Serial2) |
| 18 | W5500 SCK |
| 19 | W5500 MISO |
| 21 | DS3231 SDA (I2C) |
| 22 | DS3231 SCL (I2C) |
| 23 | W5500 MOSI |
| 26 | W5500 RST |
| 32 | Реле КРАСНЫЙ |
| 33 | Реле ЗЕЛЁНЫЙ |
## Питание
- Общий источник: **5В 2А** (блок питания)
- ESP32 питается через USB/VIN от 5В
- W5500: **3.3V** (зелёный модуль имеет встроенный стабилизатор, но питается от 3.3V напрямую)
- MAX3232: 3.3V от ESP32
- DS3231: 3.3V от ESP32 + CR2032 батарейка для хранения времени
- Реле: 5В обмотка через BC547 (логика 3.3V с ESP32 управляет через транзистор)
## Корпус / монтаж
Монтаж предполагается в техническом отсеке на объекте рядом с весовым индикатором TITAN 9.
Корпус и способ крепления — TBD (на усмотрение Алексея на месте).
## Калибровка датчиков
Весовой индикатор TITAN 9 используется как готовый прибор — **калибровка датчиков выполняется
внутри индикатора**, не на стороне ESP32. ESP32 только принимает уже откалиброванные данные по RS232.
Параметры индикатора (настраиваются через сервисное меню с паролем):
| Параметр | Назначение | Нужное значение |
|----------|------------------------------------|------------------------|
| P3 | Скорость порта | 1 = 9600 baud |
| P4 | Что передавать | 2 = брутто |
| P5 | Режим передачи | **3 = при стабилизации** |
> ⚠️ **Текущий статус:** P5 стоит в режиме "нет передачи" (заводской дефолт).
> Для входа в сервисное меню нужен пароль — уточнить у Zemic: **+7 (472) 277-71-19**.
> Тест без подключённой платформы не даст RS232-вывода даже при правильном P5.