update: статус проекта, исправлен баг распиновки

This commit is contained in:
2026-05-29 08:38:17 +00:00
parent 60e312bbf6
commit 0269a8f750
+37 -98
View File
@@ -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)