# CHANGELOG.md — История изменений > Восстановлено по истории чатов с Claude > Проект: Весовой контроллер ESP32 / Zemic TITAN 9 --- ## [Unreleased] — Ожидает on-site теста ### Запланировано - Настройка P5=3 на весах (RS232 передача) - On-site тест с платформой - Переход на MQTTS (порт 8883) --- ## [0.4.0] — 2026-03-29 ### Добавлено - ETH + MQTT работают стабильно: `[ETH] IP: 192.168.2.2`, `[MQTT] Connecting... OK` - DS3231 RTC обнаруживается при правильном порядке инициализации - Финальная схема подключения W5500 подтверждена (GPIO4 CS, MOSI/MISO swapped) - Платформа физически подключена к MAX3232 — пайка подтверждена ### Исправлено - DS3231 начал работать после перестановки Wire.begin() **перед** ETH.begin() - W5500 "version mismatched" исправлен заменой синего модуля на зелёный (3.3V) ### Изменено - Прошивка переработана под `ETH.h` + `NetworkClient` (ESP32 core 3.x) вместо `Ethernet.h` + SSLClient --- ## [0.3.0] — 2026-03-27 ### Добавлено - Открытие порта 1884 в Mosquitto для прямого подключения ESP32 (plain MQTT) - Прошивка успешно подключается к серверу 77.222.43.248:1884 - Выявлена и решена проблема GPIO5 → перешли на GPIO4 как CS для W5500 ### Исправлено - SPI конфликт из-за GPIO5 (strapping pin) — заменён на GPIO4 - MOSI/MISO перепутаны на модуле W5500 — исправлено компенсацией в прошивке --- ## [0.2.0] — 2026-03-27 ### Добавлено - Переход с `Ethernet.h` + SSLClient на нативный `ETH.h` из ESP32 core 3.x (Espressif) - Обнаружение дефектного синего W5500 (RJ45 трансформатор не работал) — замена на зелёный 3.3V модуль - NTP синхронизация через Google NTP (216.239.35.0) - Реализована логика управления реле (светофор: красный/зелёный) - Добавлен локальный веб-сервер на ESP32 для отображения статуса ### Исправлено - TLS handshake провалы с SSLClient — отказались в пользу ETH.h - "W5500 version mismatched" после замены дефектного модуля на рабочий --- ## [0.1.0] — 2026-03-26 ### Добавлено - Первичная архитектура: ESP32 + W5500 + MAX3232 + DS3231 + реле - Развёрнут Node.js/Express backend на `/var/www/scales/` (порт 3016) - Настроен Mosquitto MQTT broker с авторизацией - Пользователь `esp32` для контроллера (publisher) - Пользователь `scales-server` для бэкенда (subscriber) - Получен SSL сертификат для `scales.zeroday.su` через certbot - Настроен nginx reverse proxy (HTTPS → 3016, WebSocket upgrade) - Настроен nginx stream proxy (MQTTS 8883 → localhost:1883) - Фронтенд дашборд: реальное время, история взвешиваний, график, светофор - WebSocket для realtime обновлений без перезагрузки страницы - PM2 процесс `scales` (id=13) для автозапуска сервера - REST API: `/api/status`, `/api/history` - Определён MQTT топик: `scales/weighing/event`, QoS 1 - Определён формат данных весов: `ww000.000kg` (ASCII, 9600 бод, 8N1) - JSON payload: device_id, timestamp, weight_kg, weight_raw, stable, plate ### Технические решения - RS232 → MAX3232 → GPIO16 (RX2) ESP32 - Реле: GPIO32 (красный), GPIO33 (зелёный) через BC547 транзисторы - Питание: 5V 2A PSU для всей системы - Весы DB25 пин 2 (TXD) → MAX3232 RX; DB25 пин 7 (GND) → общий GND