Initial commit: контроллер насосов v8.2 + документация
Прошивка Wemos D1 Mini для мониторинга трёх насосов: OLED, веб-панель, webhook-уведомления, сброс Wi-Fi кнопкой. Адрес webhook задаётся через веб-панель и хранится в EEPROM; в исходнике не хранится, так как содержит секретный токен. Добавлены README.md (техдокументация) и MANUAL.md (руководство). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
# Контроллер насосов v8.2 — руководство пользователя
|
||||
|
||||
Документ для монтажника и обслуживающего персонала.
|
||||
Техническое описание кода — в [README.md](README.md).
|
||||
|
||||
---
|
||||
|
||||
## 1. Что делает прибор
|
||||
|
||||
Контроллер следит за тремя насосами:
|
||||
|
||||
* **Насос 1** и **Насос 2** — основные;
|
||||
* **Резерв** — аварийный (экстренный) насос.
|
||||
|
||||
Прибор:
|
||||
|
||||
1. показывает состояние на экране;
|
||||
2. включает выход «Авария», если **оба** основных насоса остановлены;
|
||||
3. включает выход «Резерв», когда запускается резервный насос;
|
||||
4. отправляет уведомления на сервер (webhook) через интернет;
|
||||
5. показывает панель мониторинга в браузере в локальной сети.
|
||||
|
||||
---
|
||||
|
||||
## 2. Подключение
|
||||
|
||||
### 2.1 Питание
|
||||
|
||||
5 В через microUSB (блок питания не менее 500 мА).
|
||||
|
||||
### 2.2 Датчики насосов
|
||||
|
||||
К каждому входу подключается **сухой контакт** — свободный контакт пускателя
|
||||
насоса или датчика потока.
|
||||
|
||||
| Клемма платы | Что подключить |
|
||||
|---|---|
|
||||
| `D5` и `GND` | Контакт насоса 1 |
|
||||
| `D6` и `GND` | Контакт насоса 2 |
|
||||
| `D7` и `GND` | Контакт резервного насоса |
|
||||
|
||||
**Контакт замкнут = насос работает.** Полярность не важна, внешние резисторы
|
||||
и питание на контакты подавать не нужно.
|
||||
|
||||
### 2.3 Выходы аварии
|
||||
|
||||
| Клемма | Когда `HIGH` (3.3 В) |
|
||||
|---|---|
|
||||
| `D8` | Авария: оба основных насоса стоят |
|
||||
| `D0` | Работает резервный насос |
|
||||
|
||||
Выходы логические, 3.3 В, ток до ~12 мА. **Реле, сирену или лампу напрямую
|
||||
подключать нельзя** — только через транзисторный ключ или релейный модуль
|
||||
с оптронной развязкой.
|
||||
|
||||
### 2.4 Кнопка сброса Wi-Fi
|
||||
|
||||
Обычная кнопка без фиксации между `D3` и `GND`.
|
||||
|
||||
> Кнопку нельзя держать нажатой в момент включения питания — плата уйдёт в
|
||||
> служебный режим и не запустится.
|
||||
|
||||
### 2.5 Экран
|
||||
|
||||
OLED 128×64 (I2C): `SDA → D1`, `SCL → D2`, `VCC → 3V3`, `GND → GND`.
|
||||
|
||||
---
|
||||
|
||||
## 3. Первое включение
|
||||
|
||||
1. Подайте питание. На экране появится `PUMP CTRL v8 / Starting...`.
|
||||
2. Прибор не найдёт сохранённой сети и поднимет свою точку доступа:
|
||||
|
||||
```
|
||||
Имя сети: Pump_Control_Set
|
||||
```
|
||||
|
||||
3. Подключитесь к ней с телефона или ноутбука (пароль не требуется).
|
||||
4. Откройте в браузере `http://192.168.4.1` — откроется страница настройки.
|
||||
5. Выберите вашу Wi-Fi-сеть, введите пароль, нажмите **Save**.
|
||||
6. Прибор перезагрузится и покажет на экране полученный IP-адрес.
|
||||
**Запишите этот адрес** — по нему открывается панель мониторинга.
|
||||
|
||||
Если за 2 минуты сеть не настроена, прибор переходит в автономный режим:
|
||||
экран, выходы аварии и логика работают, webhook и веб-панель — нет.
|
||||
|
||||
---
|
||||
|
||||
## 4. Экран
|
||||
|
||||
```
|
||||
PUMP CONTROLLER v8
|
||||
────────────────────────
|
||||
PUMP 1 : RUNNING
|
||||
PUMP 2 : STOPPED
|
||||
BACKUP : STANDBY
|
||||
────────────────────────
|
||||
192.168.1.42
|
||||
STATUS: OK
|
||||
```
|
||||
|
||||
| Надпись | Значение |
|
||||
|---|---|
|
||||
| `PUMP 1/2 : RUNNING` | Насос работает |
|
||||
| `PUMP 1/2 : STOPPED` | Насос остановлен |
|
||||
| `BACKUP : ACTIVE` | Резервный насос запущен |
|
||||
| `BACKUP : STANDBY` | Резерв в ожидании |
|
||||
| `WiFi: NO CONNECTION` | Нет связи с сетью |
|
||||
| `INIT...` | Идёт запуск (первые ~4 секунды) |
|
||||
| `STATUS: OK` | Норма |
|
||||
| `WARN: BACKUP RUNNING` | Работает резерв — требуется внимание |
|
||||
| `!! ALARM: NO PUMPS !!` (мигает) | **Авария: подача воды прекращена** |
|
||||
|
||||
---
|
||||
|
||||
## 5. Панель в браузере
|
||||
|
||||
Откройте `http://<IP-адрес прибора>` в любом браузере в той же сети.
|
||||
|
||||
На странице:
|
||||
|
||||
* три карточки насосов с индикаторами;
|
||||
* панель состояния системы (`SYS_OK` или `CRITICAL`);
|
||||
* кнопка **Сбросить Wi-Fi**;
|
||||
* поле **Webhook URL** для смены адреса уведомлений.
|
||||
|
||||
Страница обновляется автоматически при изменении состояния насосов.
|
||||
|
||||
### Адрес уведомлений
|
||||
|
||||
**На новом приборе адрес не задан** — панель покажет
|
||||
`не задан - уведомления отключены`, и сообщения на сервер отправляться не будут.
|
||||
Введите адрес в поле под заголовком `Webhook URL` и нажмите **Сохранить**.
|
||||
|
||||
Адрес сохраняется в память прибора и переживает отключение питания и сброс
|
||||
Wi-Fi. Максимальная длина — 220 символов.
|
||||
|
||||
---
|
||||
|
||||
## 6. Уведомления на сервер
|
||||
|
||||
При изменении ситуации прибор отправляет сообщение на настроенный адрес:
|
||||
|
||||
| Событие | Что означает |
|
||||
|---|---|
|
||||
| `MAIN PUMPS` / `ALARM` | Оба основных насоса стоят |
|
||||
| `MAIN PUMPS` / `OK` | Работа восстановлена |
|
||||
| `EMERGENCY PUMP` / `STARTED` | Запустился резервный насос |
|
||||
| `EMERGENCY PUMP` / `STOPPED` | Резервный насос остановился |
|
||||
|
||||
Уведомления отправляются один раз на каждое изменение, а не повторяются.
|
||||
Если в момент события связи не было — уведомление **не будет** отправлено
|
||||
позже, оно теряется.
|
||||
|
||||
---
|
||||
|
||||
## 7. Сброс настроек Wi-Fi
|
||||
|
||||
Нужен при смене роутера или пароля сети.
|
||||
|
||||
**Способ 1 — кнопкой:**
|
||||
нажмите и держите кнопку на `D3`. На экране появится полоса и обратный отсчёт
|
||||
от 3 секунд. Дождитесь конца — прибор перезагрузится и снова поднимет точку
|
||||
доступа `Pump_Control_Set`. Отпустите кнопку раньше — ничего не произойдёт.
|
||||
|
||||
**Способ 2 — через браузер:**
|
||||
на панели мониторинга нажмите **Сбросить Wi-Fi**.
|
||||
|
||||
Webhook URL при сбросе Wi-Fi **не стирается**.
|
||||
|
||||
---
|
||||
|
||||
## 8. Задержки срабатывания
|
||||
|
||||
Задержки заданы намеренно, чтобы не срабатывать на кратковременные пуски и
|
||||
остановки:
|
||||
|
||||
| Событие | Задержка |
|
||||
|---|---|
|
||||
| Фиксация нового состояния датчика | 3 секунды |
|
||||
| Авария основных насосов (после фиксации) | ещё 5 секунд |
|
||||
| **Итого до сигнала аварии** | **~8 секунд** |
|
||||
| Реакция на резервный насос | ~3 секунды |
|
||||
|
||||
---
|
||||
|
||||
## 9. Диагностика
|
||||
|
||||
| Симптом | Причина / что делать |
|
||||
|---|---|
|
||||
| Экран не горит | Проверьте питание и провода SDA/SCL. Если адрес дисплея `0x3D`, требуется правка прошивки (константа `OLED_ADDR`) |
|
||||
| Экран горит, но насосы всегда `STOPPED` | Контакты датчиков не замыкаются на `GND`; проверьте общий провод |
|
||||
| Насосы всегда `RUNNING` | Вход замкнут на `GND` постоянно — проверьте контакт пускателя |
|
||||
| `WiFi: NO CONNECTION` | Сеть недоступна или сменился пароль → выполните сброс Wi-Fi (раздел 7) |
|
||||
| Панель в браузере не открывается | Проверьте, что компьютер в той же сети; уточните IP на экране прибора |
|
||||
| Уведомления не приходят | Проверьте адрес webhook на панели и доступность сервера. Смотрите лог в мониторе порта (115200 бод), строка `[HTTP] Код:` |
|
||||
| Прибор не стартует после включения | Была нажата кнопка `D3` при подаче питания либо `D8` притянут к плюсу нагрузкой |
|
||||
|
||||
Подробный лог работы выводится в USB-порт: скорость **115200 бод**
|
||||
(Arduino IDE → Инструменты → Монитор порта).
|
||||
|
||||
---
|
||||
|
||||
## 10. Безопасность
|
||||
|
||||
Прибор не имеет пароля на веб-панель. Любой пользователь локальной сети может
|
||||
открыть панель, сбросить Wi-Fi и изменить адрес уведомлений. Устанавливайте
|
||||
прибор в закрытом технологическом сегменте сети, не в гостевом Wi-Fi.
|
||||
|
||||
Контроллер выполняет **функцию мониторинга и сигнализации**, а не защиты.
|
||||
Он не заменяет штатную автоматику защиты насосной станции.
|
||||
Reference in New Issue
Block a user