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
This commit is contained in:
+119
@@ -0,0 +1,119 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user