docs: add CHANGELOG.md — project history reconstructed from chat logs

This commit is contained in:
2026-05-03 10:46:45 +00:00
parent 031cf56c1c
commit baa70ec255
+85
View File
@@ -0,0 +1,85 @@
# 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