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

6.6 KiB
Raw Blame History

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.