From 0269a8f750734151691de5cd14593b042c2c4740 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 29 May 2026 08:38:17 +0000 Subject: [PATCH] =?UTF-8?q?update:=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0,=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=B1=D0=B0=D0=B3?= =?UTF-8?q?=20=D1=80=D0=B0=D1=81=D0=BF=D0=B8=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TASKS.md | 135 +++++++++++++++---------------------------------------- 1 file changed, 37 insertions(+), 98 deletions(-) diff --git a/TASKS.md b/TASKS.md index f10b203..17fc12b 100644 --- a/TASKS.md +++ b/TASKS.md @@ -1,108 +1,47 @@ -# TASKS.md — Открытые задачи и планы +# TASKS — Весовой контроллер -> Обновлено: 2026-05-24 +## ✅ Выполнено -## 🔴 Критические (блокируют запуск) +- [x] ESP32 + W5500 Ethernet — работает, получает IP по DHCP +- [x] DS3231 RTC + NTP синхронизация +- [x] MQTT подключение к VPS (77.222.43.248:1884) +- [x] Веб-интерфейс: статус, журнал, настройки (http://192.168.20.xxx) +- [x] Настройки в EEPROM (два MQTT сервера, пороги стабилизации) +- [x] Парсер формата НЕВА ВСП4 (ww+00017.5kg) +- [x] Машина состояний: EMPTY→LOADING→STABLE→WAIT_GO→LEAVING +- [x] Команда GO от сервера через MQTT (scales/weighing/go) +- [x] Сервер автоматически отправляет GO через 5 сек (заглушка) +- [x] Реле светофор GPIO32/GPIO33 с дебаунсом 30 сек +- [x] **КРИТИЧЕСКИЙ БАग ИСПРАВЛЕН**: кабель был на DB9 пин 2 (выход чипа) + → нужен пин 3 (вход R1IN чипа). Из-за этого не работало несколько дней. -### 1. Заменить модуль MAX3232 (HW-044) -**Статус:** Выявлена неисправность 2026-05-24 -**Проблема:** Модуль HW-044 бракованный — не преобразует RS232 в TTL. На TXD пине постоянное напряжение 3.25В, не меняется при передаче данных с терминала. -**Что проверено:** -- RS232 сигнал с терминала A9 есть: -4.46В на DB9 пин 2 ✅ -- Питание MAX3232: 3.3В ✅ -- Подключение правильное: TXD→GPIO16, RXD→GPIO17 ✅ -- При замере TXD модуля при нагруженной платформе: постоянное 3.25В ❌ (должно меняться 0↔3.3В) -**Что нужно:** Заказать новый модуль MAX3232 (SP3232 или HW-044). Взять 2-3 штуки про запас. -**Проверка нового модуля:** Подключить, встать на платформу, замерить TXD пин — должно прыгать ~1.5-2В на тестере. +## 🔄 В процессе -### 2. Провести on-site тест после замены MAX3232 -**Статус:** Ожидает выполнения задачи #1 -**Что проверить:** -- Напряжение на TXD модуля меняется при нагрузке на платформе -- Появление RAW байтов `[RAW] 0x02` в Serial Monitor -- Появление строк `[SCALE]` с весом -- Публикация MQTT событий → приём на сервере -- Отображение на дашборде https://scales.zeroday.su +- [ ] Подключение A9/TITAN — слабый RS232 сигнал, TTL выдаёт 0.2-1.2V + Решение: WaveShare USB/RS232 изолированный модуль (в пути, ~30 мая) +- [ ] Новый модуль MAX3232 (куплен, едет) ---- +## 📋 Предстоит -## ✅ Выполнено (2026-05-24) +- [ ] Купить и подключить светофор +- [ ] Настроить второй MQTT сервер (локальный, разработчики) +- [ ] Интеграция с ИИ системой (камеры + номер авто) +- [ ] Перенести команду GO из заглушки в реальную логику ИИ +- [ ] Добавить время дебаунса реле в веб-настройки +- [ ] Пушнуть финальную прошивку v2 в репо -- ESP32 инициализируется корректно (RTC, ETH, UART, MQTT) -- W5500 Ethernet получает IP по DHCP (192.168.20.252) -- MQTT подключается к брокеру 77.222.43.248:1884 ✅ -- Дашборд https://scales.zeroday.su работает ✅ -- Настройки терминала A9: bt=4 (9600 baud), tF=0 (непрерывная передача) ✅ -- RS232 сигнал с терминала подтверждён тестером (-4.46В на DB9 пин 2) ✅ -- Кабель DB15→DB9 проверен, распайка правильная ✅ +## 🐛 Известные проблемы ---- +| Проблема | Статус | +|----------|--------| +| A9: слабый RS232, TTL 0.2-1.2V | Ждём WaveShare | +| MAX3232 деградирует после 5V | Куплен новый | +| Время на RTC иногда 2000-й год | NTP синхронизируется при старте, исправлено | -## 🟡 Важные (следующая итерация) - -### 3. Переключить MQTT с plain на MQTTS (порт 8883) -**Статус:** Готово на стороне сервера, не реализовано в прошивке -**Что сделано:** nginx stream proxy на 8883 настроен и работает -**Что нужно:** Переписать прошивку ESP32 под MQTTS после подтверждения RS232-потока - -### 4. Персистентность данных в PostgreSQL -**Статус:** PostgreSQL установлен, не подключён -**Сейчас:** История хранится in-memory (100 событий), теряется при рестарте -**Что нужно:** -- Создать таблицу `weighing_events` -- Подключить `pg` npm модуль в server.js -- Писать каждое событие в БД -- API `/api/history` отдаёт из БД с пагинацией - -### 5. Распознавание номерных знаков -**Статус:** Зарезервировано в JSON (`"plate": null`) -**Пока:** Поле зарезервировано, не реализовано - ---- - -## 🟢 Улучшения (будущее) - -### 6. Авторизация на дашборде -Сейчас https://scales.zeroday.su открыт без авторизации. Добавить basic auth или JWT. - -### 7. Алерты при ошибках связи -Уведомление (Telegram, email) если ESP32 отключился от MQTT > X минут. - -### 8. Экспорт истории -Кнопка "Скачать CSV" на дашборде для выгрузки истории взвешиваний. - -### 9. Watchdog и автовосстановление в прошивке -Добавить hardware watchdog и логику reconnect при обрыве Ethernet/MQTT. - -### 10. OTA обновление прошивки -Механизм обновления прошивки ESP32 через сеть. - ---- - -## 🐛 Известные баги - -| # | Описание | Приоритет | -|---|---|---| -| B1 | DS3231 нестабильно определяется при наличии ETH | Низкий | -| B2 | `received frame was truncated` в логах при старте W5500 | Некритично | -| B3 | При Reset ESP32 через кнопку EN — Serial Monitor теряет начало лога | Cosmetic | - ---- - -## 🔵 Запасной план: переход на RS485 - -**Контекст:** Терминал A9 поддерживает RS485 (пины 1+, 2- на DB15). USB-RS485 адаптер CH340 уже есть в наличии. Заказаны модули RS485 для ESP32 (приедут 2026-05-30). - -**Если MAX3232 опять не заработает:** -1. Перепаять кабель DB15 на пины 1, 2, 8 (RS485+ / RS485- / GND) -2. Подключить USB-RS485 к ноутбуку для проверки (PuTTY/Arduino IDE Serial @ 9600 8N1) -3. Если данные идут — заменить MAX3232 на модуль RS485 (MAX485 или с автонаправлением) -4. Обновить прошивку: UART работает так же, без управления DE/RE если автонаправление - -**Преимущества RS485 над RS232:** -- Помехоустойчивее (дифференциальная пара) -- Длина линии до 1200м vs 15м у RS232 -- Промышленный стандарт для весового оборудования - -**Что заказано:** 2-3 модуля RS485 с автонаправлением, приедут 2026-05-30 +## 📡 Инфраструктура +- Дашборд: https://scales.zeroday.su +- MQTT VPS: 77.222.43.248:1884 (esp32/Esp32Scales#2026) +- Топик данных: scales/weighing/event +- Топик GO: scales/weighing/go +- Веб ESP32: http://192.168.20.xxx (DHCP)