# 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.