Recent Changes - Search:

Главная страница

Проекты

Статьи

Домашний WiFi роутер

Архив проектов

Загрузки

GitHub

SourceForge

edit SideBar

PlumbingController

Контроллер водопровода

За основу буду брать систему защиты от протечки для стиральной машины.

Задачи модуля:

  • перекрытие подачи воды по команде;
  • защита от протечки: перекрыть ввод и полотенцесушитель в случае срабатывания датчиков;
  • переключение источника горячей воды: центральное водоснабжение или водонагреватель;
  • учет расхода воды.

Характеристики:

  • Количество управляемых вентилей: 6
    • 2шт - ввод холодной и горячей воды;
    • 2шт - вход и выход водонагревателя;
    • 2шт - полотенцесушитель.
  • Количество входов для счетчиков расхода воды: 2
  • Количество входов для датчиков протечки: 4
  • Автономное питание от батареи в случае отключения электричества.

Структурная схема

Структурно, устройство состоит из 3-х модулей:

  • основной модуль, который: управляет вентилями, следит за протечками, общается с Mеsh сетью через коммуникационный модуль и к которому подключаются остальные модули;
  • модуль управления и индикации с LCD дисплеем;
  • модуль сенсоров, который обслуживает сенсоры: счетчики расхода, датчики температуры и датчики давления.

На самом деле, отдельный модуль сенсоров не нужен, но из-за ограничения размеров корпуса, все необходимые разъемы не помещаются в один ряд, поэтому их нужно размещать в два этажа отдельными платами. Поэтому, конструктивно удобнее разместить на второй плате контроллер и передавать данные со счетчиков по SPI интерфейсу. Одновременно, на модуле сенсоров будет размещена EEPROM для хранения значения счетчиков.

Необходимое количество GPIO портов

НазначениеВыводов на единицуКол-во кдиницОбщее кол-во
модуль управления (ATmega8515)
светодиоды двухцветные21122
светодиоды одноцветные122
кнопки122
энкодер313
SPI414
итого33
модуль сенсоров (ATmega1284P)
счетчики расхода (INT)122
датчики температуры122
датчики давления (АЦП)122
EEPROM (I2C)212
SPI515
итого13
главный контроллер
вентили4624
датчики протечки248
модуль управления (SPI)111
LCD/LED дисплей717
модуль сенсоров (SPI)212
SPI313
BLE Mesh модуль (RS232)214
контроллер питания414
итого??

Выбор микроконтроллеров

  • Главный контроллер: ATmega2560-16A
  • Модуль управления: ATmega8515 (*)
  • Модуль сенсоров: ATmega1284P (**)

* Atmega8515 не имеет контроллера I2C, поэтому для связи будет использована шина SPI.
** ATmega1284P имеет контроллер I2C, но для унификации с модулем управления, также будет использована шина SPI, но с дополнительным выходом прерывания

Конфигурация узлов и моделей BLE Mesh

Чем мы хотим управлять и что хотим контролировать.

Управлять, разумеется, мы может только вентилями. Для этого подойдет простой On/Off сервер. Но существует ряд ограничений:

  1. В случае протечки (аварии), все вентили закрываются. Открыть их потом с помощью команды BLE Mesh будет нельзя.
  2. Существуют запрещенные комбинации открытия вентилей (TODO: расписать эти комбинации), которые нельзя будет настроить с помощью BLE Mesh.

TODO: предусмотреть возможность отключения датчиков протечки.
Для датчиков протечки можно сделать отдельную ноду с моделями серверов: OnOff и Sensor.

Контролировать нужно будет следующие параметры:

  • неисправность вентилей (вентиль не открылся/закрылся за определенное время) - 6шт;
  • состояние датчиков протечки: нормально, авария, неисправность - 4шт;
  • значения счетчиков расхода воды: текущий расход (л/с), общее потребление (M3) - 2шт.

Всвязи с этим появляются следующие проблемы:

  1. Вентили, счетчики и датчики протечки практически никак друг с другом не связаны логически. Разве что, счетчики воды можно совместить с первыми двумя вентилями (вентили ввода). Датчики же вообще никак не связаны ни с вентилями, ни со счетчиками. Поскольку, одинаковые модели не должны располагаться на одном узле, нам придется, либо создавать 12 от дельных узлов, либо группировать модели сенсоров с моделями OnOff как получится, и ограничется 6-ю узлами.
  2. В стандартах GATT Specification отсуствуют такие параметры, как: неисправность вентиля, состояние датчика протечки, расход и потребление жидкостей (TODO: хотя, два последних еще могут быть). Поэтому, придется колхозить свои кастомные значения и отходить от спецификации. Хотя, состояние несиправности вентилей и датчиков протечки можно будет попробовать запихнуть в модель Health.

Модуль индикации и управления

Состоит из трех частей: алфавитно-цифрового LED дисплея (одна строка, 20 символов), дополнительного модуля светодиодной индикации и модуля управления с энкодером и тремя кнопками: Select, Ок и Cancel.

Элементы управления и индикации

  1. Алфавитно-цифровой индикатор. Отображает элементы меню и различную информацию.
  2. Индикаторы состояния вентилей.
    Красный - вентиль закрыт.
    Мигающий красный - вентиль в процессе закрывания.
    Зеленый - вентиль открыт.
    Мигающий зеленый - вентиль в процессе открывания.
    Мигающий попеременно красный и зеленый - неисправность вентиля.
  3. Индикаторы датчиков протечки.
  4. Индикаторы счетчиков расхода.
  5. Индикатор состояния питания.
  6. Кнопка "Ок".
  7. Кнопка "Cancel".
  8. Ручка энкодера и кнопка "Select".

Меню настройки и управления

Структура

  • Главный экран
    • Управление
      • Открыть/Закрыть/Авто для каждого вентиля
      • Включить/Выключить датчик протечки
    • Информация
      • Текущие значения счетчиков расхода
      • Значения датчиков температуры
      • Значения датчиков давления
      • Заряд батареи
      • Статус подключения к Mesh сети: подключено/не подключено, адрес узла
      • Версия прошивки
    • Настройка
      • Группы вентилей
      • Тип вентиля: двух/пяти проводные
      • Задержка срабатывания датчиков протечки
      • Текущее значение счетчиков расхода
      • Калибровка датчиков давления

Информация на главном экране

  • Загрузка
    • Приветственное сообщение: "Plumbing Cоntroller"
    • Установка вентилей в закрытое состояние
    • Тестирование датчиков протечки
  • Основное состояние
    • дисплей выключен
    • работа от батареи - остаточный заряд батареи
  • Переключение групп вентилей
    • Цель переключения, прогресс
  • Авария от датчиков протечки
    • Датчик протечки неисправен: просто сообщение о неисправности, подробности - на дополнительном дисплее
    • Сработал датчик протечки
      • Таймер до перехода в аварийный режим
      • Сообщение о том, что устройство находится в аварийном режиме

Ссылки

Edit - History - Print - Recent Changes - Search
Page last modified on February 16, 2026, at 09:16 pm