Files
weighing-controller/TASKS.md
T
2026-05-26 13:37:23 +00:00

6.1 KiB
Raw Blame History

TASKS.md — Открытые задачи и планы

Обновлено: 2026-05-24

🔴 Критические (блокируют запуск)

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

Выполнено (2026-05-24)

  • 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 проверен, распайка правильная

🟡 Важные (следующая итерация)

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