update: статус проекта, исправлен баг распиновки
This commit is contained in:
@@ -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
|
- [ ] Подключение A9/TITAN — слабый RS232 сигнал, TTL выдаёт 0.2-1.2V
|
||||||
**Статус:** Ожидает выполнения задачи #1
|
Решение: WaveShare USB/RS232 изолированный модуль (в пути, ~30 мая)
|
||||||
**Что проверить:**
|
- [ ] Новый модуль MAX3232 (куплен, едет)
|
||||||
- Напряжение на TXD модуля меняется при нагрузке на платформе
|
|
||||||
- Появление RAW байтов `[RAW] 0x02` в Serial Monitor
|
|
||||||
- Появление строк `[SCALE]` с весом
|
|
||||||
- Публикация MQTT событий → приём на сервере
|
|
||||||
- Отображение на дашборде https://scales.zeroday.su
|
|
||||||
|
|
||||||
---
|
## 📋 Предстоит
|
||||||
|
|
||||||
## ✅ Выполнено (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)
|
||||||
|
|||||||
Reference in New Issue
Block a user