Из автоматизации ИТП в DIY: как теплотехник скрестил ПР200, Orange Pi и Zigbee — АСУ ТП: сообщество инженеров

Из автоматизации ИТП в DIY: как теплотехник скрестил ПР200, Orange Pi и Zigbee

Коротко о статье

Инженер-теплотехник рассказывает, как построил домашнюю автоматизацию на промышленном контроллере ПР200, одноплатном компьютере Orange Pi и Zigbee-устройствах. Из статьи можно узнать об архитектуре с двумя контурами (проводной защитный и беспроводной комфортный), интеграции ПР200 через шлюз Elphin EW11, использовании MQTT, Node-RED и разработке мобильного приложения на Flutter.

Главное
  • Система разделена на два независимых контура: проводной на ПР200 для критических функций и беспроводной на Orange Pi для мониторинга.
  • ПР200 связан с Orange Pi через конвертер Elphin EW11, который преобразует Modbus RTU в Modbus TCP по Wi-Fi.
  • На Orange Pi развёрнуты Mosquitto MQTT, Zigbee2MQTT, Modbus-поток и Node-RED для сбора и обработки данных.
  • Для удалённого доступа используется бесплатный публичный MQTT-брокер Clusterfly, куда дублируются локальные топики.
  • Мобильное приложение на Flutter разработано с помощью ИИ и позволяет просматривать показания датчиков, управлять краном и настраивать топики.
  • Автор отмечает, что при наличии понимания физики процессов и навыков поиска информации можно освоить смежные IT-технологии.
Термины и технологии
  • ПР200
  • Orange Pi
  • Zigbee
  • Modbus RTU
  • Modbus TCP
  • MQTT
  • Node-RED
  • Elphin EW11
  • Flutter
  • Clusterfly

Кому полезно: Инженерам АСУ ТП и КИПиА, интересующимся домашней автоматизацией и смежными IT-технологиями.

По теме на сайте

Первоисточник: habr.com

Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.

Месяц назад я опубликовал свою первую статью о том, как в 50 лет написал универсальный Android-SCADA движок на Flutter для промышленных ИТП. Честно скажу — я не ожидал такой теплой поддержки в комментариях. Мозг снова ожил, и я решил: раз уж я стер границу между КИПиА и IT в рабочих проектах, пора навести порядок дома.

Домашней автоматизацией я никогда не занимался. У меня был свободный ПР200, и я решил построить на нем автоматику собственного дома, подтянув туда технологии умного дома, о которых раньше только читал: Linux, MQTT, Zigbee и Node-RED.

О том, как промышленный инженер продирался сквозь дебри консоли Linux с помощью Google, и как старая SCADA-идея эволюционировала в домашнюю систему — читайте под катом.

Архитектура: Разделяй и властвуй

Как инженер, я сразу заложил железобетонный принцип: критическая инфраструктура не должна зависеть от операционной системы сервера. Если Orange Pi зависнет, заглючит Linux или отвалится Wi-Fi — дом не должен замерзнуть или утонуть.

Поэтому я разделил систему на два независимых контура:

  1. Проводной контур безопасности (Нижний уровень): Котельная и ввод ХВС. Всё самое важное заведено на ОВЕН ПР200. Логика защиты от протечек зашита прямо в него через OwenLogic. Если датчик на полу видит воду — реле закрывает кран без всякого участия Linux.
  2. Беспроводной контур комфорта (Верхний уровень): Датчики в комнатах и логика мониторинга. Работает на Orange Pi и беспроводных датчиках.

Железо проекта:

  • ОВЕН ПР200 — сердце проводной части.
  • Датчики давления (4-20 мА) — установлены на котле и на вводе холодной воды.
  • Накладные датчики температуры PT1000 — два штуки (на подачу и обратку котла).
  • Кран с электроприводом (220В) — на вводе ХВС.
  • Orange Pi (взял б/у на Авито) + Zigbee-USB координатор («свисток»).
  • Беспроводные Zigbee-датчики: протечка на кухне и в ванной, температура/влажность в коридоре пока решил остановиться на этих трех.

Кран и датчик протечки проводной на дискретный вход ПР200

Накладные датчики температуры до и после котла

Один из экранов ПР200 в данном случае с давлениями в отоплении и настройки подпитки

Датчик температуры и влажности

Датчик протечки zigbee

Как подружить ПР200 с Wi-Fi: Elphin EW11

ПР200 общается по Modbus RTU через RS-485. Тянуть провод через весь дом к Orange Pi не хотелось. Проблему решил миниатюрным конвертером Elphin EW11.

Он подключается к порту ПР200, ловит домашний Wi-Fi и выступает прозрачным шлюзом Modbus RTU в Modbus TCP. Теперь контроллер виден в локальной сети, и с него можно забирать регистры по TCP.

Столкновение с неизведанным: Бой с Linux и Node-RED

Если во Flutter и Dart с помощью ИИ вьезжать было относительно комфортно, то мир Linux встретил меня сурово. Мои знания консоли были равны нулю. Я просто понимал общую концепцию (кто куда должен передавать данные) и начал нещадно гуглить каждый шаг.

Этот этап отнял у меня больше всего времени. В КИПиА как? Скачал OwenLogic или софт для панелей EKF, нажал пару кнопок инсталлятора — и работаешь. В Linux «просто установить программу» — это квест из конфигурационных файлов, прав доступа и пакетов.

На Orange Pi я развернул настоящий ИТ-зоопарк:

  1. Mosquitto MQTT — локальный брокер (сердце обмена данными).
  2. Zigbee2MQTT — демон, который слушает свисток, забирает данные с датчиков протечки/климата и кидает их в топики Mosquitto.
  3. Modbus-поток — опрашивает по Modbus TCP наш Elphin EW11 и перекладывает данные с ПР200 в те же MQTT-топики.
  4. Node-RED — визуальная среда, где я настраивал логику.

Именно с Node-RED я возился дольше всего. То не ставились нужные ноды (пакеты), то они не хотели запускаться из-под нужного пользователя, то отваливались права на чтение портов. Пришлось познать дзен SSH-сессий и выучить команду sudo chmod, чтобы выдать права на запуск сервисов.

Зато когда на экране Node-RED выстроились связи, и данные с датчика давления 4-20 мА, подключенного к ПР200, побежали в MQTT-топик параллельно с беспроводным датчиком климата — это был чистый инженерный кайф.

Node-Red датчики протечки и температуры-влажности

Датчики температуры и давления из ПР 200

Новое приложение на Flutter: Привет, Clusterfly!

Иметь систему автоматизации и не видеть ее параметры за пределами дома — скучно. Белый IP или сложные VPN городить не хотелось. Я нашел простое решение: бесплатный публичный MQTT-брокер Clusterfly. Node-RED на Orange Pi дублирует туда все локальные топики.

А дальше встал вопрос визуализации. Ставить тяжелый Home Assistant не хотелось — я же автор собственного SCADA-движка! Готовые утилиты из сторов сначала поставил, но потом захотелось своего.

Я снова открыл VS Code, позвал своего проверенного «цифрового джуна» (нейросеть) и на базе своего прошлого опыта написал кастомное мобильное приложение на Flutter. Теперь уже писал по советам из комментариев со встроенной нейросетью прямо в VS code. Стало еще удобнее чем копипаст из Deepsek chat. Особенно оценил существенное сокращение времени на поиск багов. Но обратная сторона еще меньше контроля и своего погружения. Когда разбираешься с тем же ИИ делая копи паст невольно приходится параллельно разбираться и самому и каждый баг становится твоим маленьким опытом. Когда ИИ встроена в среду разработки, многие вещи вообще проходят мимо, не работало раз и заработало. Вообщем двоякое мнение. Но скорость на порядок выше.

ИИ помогал мне писать функции для работы с протоколом MQTT по SSL, верстать интерфейс и обрабатывать входящие пакеты. Также по аналогии с конфигурациями ИТП в предыдущей статье сделал возможность сохранять конфигурацию топиков и настроек брокер в json файле чтобы в случае переустановки на другой телефон заново не настраивать. В итоге получился аккуратный интерфейс, где на экранах я вижу показания своих датчиков давлений и температур, могу закрыть кран с холодной водой, посмотреть аварии. А также могу настроить новые топики или подредактировать уже существующие. Всё это обновляется мгновенно из любой точки мира через Clusterfly. Сам интерфейс на первых порах тестирования сделал скромным, возможно потом можно будет его приукрасить манометрами, термометрами для наглядности.

Датчики из ПР200

Zigbee датчики

Настройки аварийных границ

Настройки топиков

Выводы

Проект успешно работает, и это мое второе серьезное погружение в смежные IT-области.

Если у вас есть понимание физики процессов (как работают датчики, что такое Modbus и зачем нужен клапан) и умение упорно гуглить — вы сможете запустить любой стек технологий понятно что сначала на каком то любительском уровне. Да, на коленке, да, набив кучу шишек об Linux. Но этот «Франкенштейн» из промышленного ПР200, б/у платы с Авито и кода, созданного в тандеме с ИИ, работает пока без сбоев, не просит подписок и надеюсь спасет от протечек)). Но главное удовольствие что в наше время ИИ и доступа к разнообразной технической информации можно сделать самому то, что раньше скорей всего либо было обречено на провал, либо заняло очень много времени.

Коллеги-автоматизаторы, не бойтесь выходить из зоны комфорта известных вам технологий! На примере этих двух статей хотел сказать что в наше время можно смело погружаться в смежные области вашей основной профессии и все получится на своем уровне. Пусть это будет не идеально, но идеально с первого раза не бывает никогда. Потом если появятся еще задачи в этой области будет пролучаться все лучше и лучше. Если нет, то все равно пригодится любая область в которой что то сделал обогащает твой опыт и в основной профессии. Всем удачи!

Источник: https://habr.com/ru/articles/1101298/

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх