Update TASKS: MAX3232 brak detected, progress 2026-05-24
This commit is contained in:
@@ -1,43 +1,51 @@
|
|||||||
# TASKS.md — Открытые задачи и планы
|
# TASKS.md — Открытые задачи и планы
|
||||||
|
|
||||||
> Обновлено: 2026-05-03
|
> Обновлено: 2026-05-24
|
||||||
|
|
||||||
## 🔴 Критические (блокируют запуск)
|
## 🔴 Критические (блокируют запуск)
|
||||||
|
|
||||||
### 1. Настроить P5 на весах Zemic TITAN 9
|
### 1. Заменить модуль MAX3232 (HW-044)
|
||||||
**Статус:** Не выполнено
|
**Статус:** Выявлена неисправность 2026-05-24
|
||||||
**Проблема:** Параметр P5 (режим RS232 передачи) стоит в дефолтном значении "нет передачи". Данные с весов не поступают.
|
**Проблема:** Модуль HW-044 бракованный — не преобразует RS232 в TTL. На TXD пине постоянное напряжение 3.25В, не меняется при передаче данных с терминала.
|
||||||
**Что нужно:** Войти в сервисное меню, перейти к P5, установить значение **3** (передача при стабильном весе).
|
**Что проверено:**
|
||||||
**Пароль меню:** `1`
|
- RS232 сигнал с терминала A9 есть: -4.46В на DB9 пин 2 ✅
|
||||||
**Контакт для консультации:** Zemic support: +7 (472) 277-71-19
|
- Питание 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 тест с платформой
|
### 2. Провести on-site тест после замены MAX3232
|
||||||
**Статус:** Ожидает выполнения задачи #1
|
**Статус:** Ожидает выполнения задачи #1
|
||||||
**Что проверить:**
|
**Что проверить:**
|
||||||
- Появление строк `[SCALE]` в Serial Monitor
|
- Напряжение на TXD модуля меняется при нагрузке на платформе
|
||||||
- Корректный парсинг формата `ww000.000kg`
|
- Появление RAW байтов `[RAW] 0x02` в Serial Monitor
|
||||||
|
- Появление строк `[SCALE]` с весом
|
||||||
- Публикация MQTT событий → приём на сервере
|
- Публикация MQTT событий → приём на сервере
|
||||||
- Отображение на дашборде https://scales.zeroday.su
|
- Отображение на дашборде 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)
|
### 3. Переключить MQTT с plain на MQTTS (порт 8883)
|
||||||
**Статус:** Готово на стороне сервера, не реализовано в прошивке
|
**Статус:** Готово на стороне сервера, не реализовано в прошивке
|
||||||
**Что сделано:** nginx stream proxy на 8883 настроен и работает
|
**Что сделано:** nginx stream proxy на 8883 настроен и работает
|
||||||
**Что нужно:** Переписать прошивку ESP32 под MQTTS после подтверждения RS232-потока
|
**Что нужно:** Переписать прошивку ESP32 под MQTTS после подтверждения RS232-потока
|
||||||
**Подход:** Использовать `ETH.h` + нативный TLS из ESP32 core 3.x (SSLClient отказался — TLS handshake fail)
|
|
||||||
|
|
||||||
### 4. Разобраться с DS3231 RTC
|
### 4. Персистентность данных в PostgreSQL
|
||||||
**Статус:** Нестабильное обнаружение
|
|
||||||
**Симптом:** Иногда `[RTC] DS3231 OK`, иногда `[RTC] DS3231 NOT found!`
|
|
||||||
**Гипотеза:** Конфликт I2C и SPI при инициализации
|
|
||||||
**Временное решение:** NTP через Google (216.239.35.0) работает стабильно — RTC некритично
|
|
||||||
**Что попробовать:** Увеличить `delay()` между Wire.begin() и ETH.begin(); проверить качество пайки SDA/SCL
|
|
||||||
|
|
||||||
### 5. Персистентность данных в PostgreSQL
|
|
||||||
**Статус:** PostgreSQL установлен, не подключён
|
**Статус:** PostgreSQL установлен, не подключён
|
||||||
**Сейчас:** История хранится in-memory (100 событий), теряется при рестарте
|
**Сейчас:** История хранится in-memory (100 событий), теряется при рестарте
|
||||||
**Что нужно:**
|
**Что нужно:**
|
||||||
@@ -46,29 +54,28 @@
|
|||||||
- Писать каждое событие в БД
|
- Писать каждое событие в БД
|
||||||
- API `/api/history` отдаёт из БД с пагинацией
|
- API `/api/history` отдаёт из БД с пагинацией
|
||||||
|
|
||||||
### 6. Распознавание номерных знаков
|
### 5. Распознавание номерных знаков
|
||||||
**Статус:** Зарезервировано в JSON (`"plate": null`)
|
**Статус:** Зарезервировано в JSON (`"plate": null`)
|
||||||
**Описание:** Внешняя АСУ или камера должна заполнять поле `plate` номером авто
|
|
||||||
**Пока:** Поле зарезервировано, не реализовано
|
**Пока:** Поле зарезервировано, не реализовано
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🟢 Улучшения (будущее)
|
## 🟢 Улучшения (будущее)
|
||||||
|
|
||||||
### 7. Авторизация на дашборде
|
### 6. Авторизация на дашборде
|
||||||
Сейчас https://scales.zeroday.su открыт без авторизации. Добавить basic auth или JWT.
|
Сейчас https://scales.zeroday.su открыт без авторизации. Добавить basic auth или JWT.
|
||||||
|
|
||||||
### 8. Алерты при ошибках связи
|
### 7. Алерты при ошибках связи
|
||||||
Уведомление (Telegram, email) если ESP32 отключился от MQTT > X минут.
|
Уведомление (Telegram, email) если ESP32 отключился от MQTT > X минут.
|
||||||
|
|
||||||
### 9. Экспорт истории
|
### 8. Экспорт истории
|
||||||
Кнопка "Скачать CSV" на дашборде для выгрузки истории взвешиваний.
|
Кнопка "Скачать CSV" на дашборде для выгрузки истории взвешиваний.
|
||||||
|
|
||||||
### 10. Watchdog и автовосстановление в прошивке
|
### 9. Watchdog и автовосстановление в прошивке
|
||||||
Добавить hardware watchdog и логику reconnect при обрыве Ethernet/MQTT.
|
Добавить hardware watchdog и логику reconnect при обрыве Ethernet/MQTT.
|
||||||
|
|
||||||
### 11. OTA обновление прошивки
|
### 10. OTA обновление прошивки
|
||||||
Механизм обновления прошивки ESP32 через сеть (ArduinoOTA или HTTP OTA).
|
Механизм обновления прошивки ESP32 через сеть.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -77,5 +84,6 @@
|
|||||||
| # | Описание | Приоритет |
|
| # | Описание | Приоритет |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| B1 | DS3231 нестабильно определяется при наличии ETH | Низкий |
|
| B1 | DS3231 нестабильно определяется при наличии ETH | Низкий |
|
||||||
| B2 | `received frame was truncated` в логах при старте W5500 | Некритично (cosmetic) |
|
| B2 | `received frame was truncated` в логах при старте W5500 | Некритично |
|
||||||
| B3 | При Reset ESP32 через кнопку EN — Serial Monitor теряет начало лога | Cosmetic (добавить delay в setup) |
|
| B3 | При Reset ESP32 через кнопку EN — Serial Monitor теряет начало лога | Cosmetic |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user