Русский
Русский
English
Статистика
Реклама

Автоматизация дома

SCADA BortX с поддержкой языка управления в рамках ANSI ISA-88 для ESP8266

13.09.2020 16:10:25 | Автор: admin
Признаюсь честно очень люблю cовременные микроконтроллеры. В частности, производства китайского производителя Espressif Systems с интерфейсом Wi-Fi. Речь, естественно, идет о ESP8266 и ESP32, которые обладают большим потенциалом в образовательном контексте.

image

Конечно, у них есть свои недостатки. Но цена. Это чудо. В частности, если покупаешь условный Witty Cloud за три доллара, в котором даже не надо мучаться вопросами питания и программирования. Сфера применения в IoT позволяет создать собственные проекты автоматизации различными путями классическим образом: путем написания кода и работы в IDE. Или через тот же FLProg. Однако, как всегда, есть нюансы, несколько тормозящие репрезентацию работы в рамках типового применения ESP8266 как аппаратной основы. И проблема вовсе не в сетевом подключении, осуществляемой к домашней/офисной локальной сети с выходом в Internet через роутер. Устройства работают прилежно и могут выступать их в качестве Zigbee-координаторов при определенной конфигурации. ESP8266/ESP32 могут работать как в роли точки доступа так и оконечной станции. При нормальной работе в локальной сети ESP8266 конфигурируется в режим оконечной станции. Для этого устройству необходимо задать SSID Wi-Fi сети и, в закрытых сетях, пароль доступа. Для первоначального конфигурирования этих параметров удобен режим точки доступа. В режиме точки доступа устройство видно при стандартном поиске сетей в планшетах и компьютерах. Остается подключиться к устройству, открыть HTML страничку конфигурирования и задать сетевые параметры. После чего устройство штатно подключится к локальной сети в режиме оконечной станции.

Управление и визуализация данными в реальном времени важная задача. Однако, далеко не всегда доступен быстрый старт в этом деле. А ведь после этого необходим их анализ. Важна также роль линии времени на графике показать частоту и равномерность измерений. История процесса нужна для анализа и диагностики. Без необходимых знаний и анализа весь потенциал данных остается недоиспользованным, что является недоработкой и вызывает необходимость в инструменте, который может придавать значение цифрам и процентам наглядность и облегчать понимание и интерпретацию данных. Это необходимо в области научного эксперимента и в производственном процессе.

Онлайн-инструменты визуализации данных являются подходящим ответом на этот вызов времени. Отдельной задачей видится объединение данных, то есть синтез информации. Масштабирование во времени, выделение участка просмотра, масштабирование по оси Y, сдвиг по оси Y все это необходимые атрибуты инструментов визуализации, благодаря которым даже самые сложные графики и диаграммы, просмотр которых вы осуществляете в панели (dashboard), будут наглядны и понятны. Одним из вариантов онлайн-визуализации данных с поддержкой SCADA является новый проект BortX.

Полагаю, что ознакомление с ним поможет вам в проведении экспериментов в реальном масштабе времени (например в простой реализации ваших замыслов в образовательном процессе). Для работы нужно лишь зашить скетч Спутник на ваш ESP8266. С его кодом вы можете ознакомиться по ссылке. Модификация на ваше усмотрение обязательное условие работы: ввести SSID и пароль для подключения ESP к вашему маршрутизатору. Кстати, пилотный проект спутника находится по адресу.

После загрузки скетча микропроцессор выводит информацию в интернет в виде web-страницы. Регистрация не нужна, ибо каждый микропроцессор имеет уникальный номер и по этому номеру осуществляется доступ через интернет. Сам ID можно узнать, открыв окно состояния COM-порта в Arduino IDE (115кбод/с):

image

По умолчанию идет TCP-порт 6110 использует протокол управления передачей данных (TCP), который является одним из основных протоколов в сетях TCP/IP. TCP является протоколом с установлением соединения и требует квитирования для установки сквозной связи. Только после установления соединения пользовательские данные могут пересылаться в обоих направлениях. Есть возможность установки пароля на страничку и т.д. Но наиболее важным элементом данной системы является условная поддержка языка управления из АСУ ТП.

Язык управления BS-88 основан на стандарте ISA S-88. Пример графического аналога SFC. Язык управления позволяет ESP принимать решения о стратегиях управления на основе текущих условий и позволяет упорядочивать управление ESP в соответствии с потребностями некоторых действий. Этот язык отличается от традиционных языков программирования. Причина в том, что язык описывает действия по управлению производственным процессом.

В соответствии с BS-88, производственный процесс состоит из операций, которые могут происходить одновременно, например, нагрева воды и приготовления компонентов раствора.
В свою очередь операции состоят из фаз, которые выполняются последовательно. Существует только два типа операторов языка управления:

1. Активные операторы.
2. Операторы перехода (с условием или без условия) (transition).

Например, операция нагрева воды:
Фаза 1: открываем водяной клапан;
когда срабатывает датчик уровня, переходим на фазу 2
Фаза 2: закрыть водяной клапан;
включить нагреватель;;
когда температура достигает 60 градусов, переход к фазе 3
Фаза 3: выключить нагреватель;
стоп;

Предположим, что водяной клапан подключен к DO, датчик уровня воды подключен к D5, нагреватель подключен к D1, а A0 это датчик температуры.
Сценарий выглядит следующим образом:

1: $ D0 = 1; // phase1
if($D1 = 1) trans {2}; // wait_for_D5_become_ "on"
2: $ D0 = 0; // phase2
$D2 = 1;
if($А0 >= 60) trans {3}; // wait_for_tempeature
3: $D2 = 0;
stop; // end_of_script


Язык использует написание переменных, таких как принято для ардуино, но на панели переменные могут иметь другое имя, например: Uakk, Set_Ux, Set_temp. Замена имен возможна в редакторе конфигурации. Чтобы получить доступ к редактору, нажмите на значок шестеренки на панели. Есть также переменные для внутренних вычислений или $ X0- $ X9 памяти. У них нет своих полей для отображения, но их можно увидеть, когда мы установим их значения для переменной

$X9 = $ X9 + 1; // автоматическое приращение
$ S3 = $ X9; // отображаем $ X9 в поле S3 приборной панели.


Более полная инструкция по языку управления АСУ ТП размещена на сайте. В режиме конфигурации онлайн прямо с сайта можно задавать сценарии работы:

image

И задавать (менять) названия переменных пинов:

image
Подробнее..

Получение данных с датчика углекислого газа Даджет в системы умного дома

05.07.2020 20:11:11 | Автор: admin
Датчик углекислого газа Даджет KIT MT8057S давно зарекомендовал себя как достаточно надежный и недорогой прибор. Один недостаток, на мой взгляд официально данные с него можно получать только фирменной программой под windows, и никак иначе.

Тем не менее, получить данные в linux относительно несложно. Пришлось использовать небольшой костыль, но в итоге показатели co2 и температуры можно получить в консоль, и отправить дальше.
В этой статье рассмотрена отправка данных в IoBroker и Home Assistant.



Потребуется библиотека libhidapi и небольшая программка co2mon, размещена на гитхабе.

apt-get install git cmake g++ pkg-config libhidapi-dev

Скачиваем и компилируем программу co2mon

mkdir co2
cd co2
git clone github.com/dmage/co2mon.git
cd co2mon
mkdir build
cd build
cmake
make
cd co2mond
mv co2mond ../../../co2mond

Возможно, пути придется подкорректировать под вашу систему.

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

Я не хотел вешать на и без того слабенький сервер умного дома еще один демон, да и данные об углекислом газе не меняются быстро. Поэтому накидал простенький скрипт, который запускает программу, ждет пять секунд, и убивает ее.

#!/bin/bash
cd /home/server/co2
./co2mond -D /home/server/co2 > log.txt &
sleep 5
pkill co2mond
rm log.txt


Добавляем скрипт в cron, я запускаю его раз в минуту, этого более чем достаточно.
Готово! Теперь в двух текстовых файлах, которые создает программа, есть текущие показания климата.
Важный момент для получения данных с usb нужны администраторские права, то есть cron надо запускать от root'a, соответственно создаваемые текстовые файлы будут тоже рутовыми, это надо учитывать.

Теперь вторая часть отправляем полученные данные в системы умного дома. Начнем с IoBroker. Для начала с него, так как на тот момент, когда я задался этой задачей, пользовался им.

Там все просто есть адаптор systeminfo, который умеет читать в том числе и файлы с файловой системы. Не то, чтобы данные температуры были нужны, но почему бы и нет.

Сохраняем, и вуаля:


А потом я перешел на Home Assistant. В нем я использую mosquitto, и данные решил отправлять через него, нацеливаясь на разделение компьютеров в будущем или добавление датчиков. Установку и настройку брокера не рассматриваю, это выходит за пределы статьи.

На компьютер, к которому подключен датчик, надо установить клиент mosquitto, если он не стоит:
apt-get install mosquitto-clients

В конфиг Home Assistant добавляем два сенсора, и перезагружаем:
platform: mqtt
state_topic: co2/co2
name: co2.co2
unit_of_measurement: ppm

platform: mqtt
state_topic: co2/temp
name: co2.temp
unit_of_measurement: C

В скрипт, который получает данные, добавляем четыре строчки:
read co2 /home/server/co2/CntR
read temp /home/server/co2/Tamb
mosquitto_pub -h localhost -t co2/co2 -m $co2 -u пользователь -P пароль
mosquitto_pub -h localhost -t co2/temp -m $temp -u пользователь -P пароль

Готово, вы прекрасны) Теперь наш крон раз в минуту публикует показания датчиков в топик co2, и которого Home Assistant в свою очередь их считывает:


Теперь мы имеем в системе умного дома данные датчиков, и можно запланировать автоматизацию. У меня включается вытяжка, управляемой приточной вентиляции у меня пока нет, но если включить вытяжку, воздух постепенно обновляется.
Подробнее..

Что такое умный термостат?

16.06.2021 12:16:05 | Автор: admin

Некоторое время назад мы попытались дать ответ на этот вопрос. Через призму нашего видения.

Вот, что у нас получилось.

За последнее время мы выпустили несколько крупных обновлений ПО, которые как исправляли некоторые недоработки, так и расширяли функционал устройства.

В целом, на сегодняшний день, термостат обладает всем разнообразием функционала, который мы хотели реализовать в нём. Конечно, будет еще несколько нововведений, добавление более продвинутого расписания; но контроллер, установленный в термостат, себя исчерпал. Надо двигаться дальше.

Последние несколько месяцев наша команда вела разработку нового устройства. Устройства, которое будет не просто термостатом. Оно оставит в себе лучшее от предшественника. Но помимо этого, будет связующим звеном, которое, как мы надеемся, позволит приобщиться к умным домам всем желающим. Тем, кто заинтересован; но, с расстояния, тема умных домов кажется им темным лесом.

Позвольте представить, Панель управления климатом и светом.

По традиции, начнем с начинки. Как и ранее, Панель состоит из двух плат.

Верхняя плата

Мы решили выбрать народный микроконтроллер esp32. Два ядра, BLE, вагон памяти под наши задачи. Что еще можно желать?

ESP32 хорош, но какой умный дом без ZigBee? Компоновка платы позволяет, и мы полностью воспользовались этим, установив модуль NJ5169 (E75).

Нижняя плата

Над начинкой платы мы так же поработали и решили подойти с учетом имеющегося опыта.

Два реле по 10А каждое, контроль потребления на каждый канал. Возможность подключения двух NTC. На наш взгляд, вышло неплохо.

Как насчёт экрана?

Установили экран диагональю 4 дюйма с IPS матрицей (разрешение 480х480px) и емкостным тачскрином.

Данный экран будет доступен и для обладателей предыдущей, 101, модели термостата. Заменить экран можно будет просто сняв старый и установив этот. Он раскроет свой потенциал у тех, кто использует MQTT. А для обладателей HK это будет чуть более информативный экран.

Какие протоколы поддерживает Панель?

Wi-Fi

Cамо собой - для связи с внешним миром.

ZigBee

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

MQTT

Все устройства, которые будут подключены к Панели по Zigbee, как и сами термостаты, будут передавать актуальные данные по MQTT. Можно будет как управлять, так и наблюдать. Подключить Панель можно будет и к нашему облаку, и к любому стороннему MQTT-брокеру.

Так будет выглядеть наше приложение, открывающее удалённый доступ ко всем подключенным устройствам в квартире:

Но на этом варианты применения MQTT не заканчиваются. Для обладателей таких систем как Home Assistant, MajorDoMo, OpenHub и аналогичных, будет возможность подписаться на сторонние топики и за счёт этого собрать свой вариант интерфейса Панели на основе заранее заготовленных нами шаблонов. Такие топики могут содержать как информацию с датчиков, так и управляющие топики для кнопок, реле и тому подобных исполняющих устройств. Также, можно будет связать кнопку и запуск/остановку какого-либо сценария.

Варианты вывода нескольких устройств на экранВарианты вывода нескольких устройств на экран

Вот такой комбайн получился у нас.

Вроде и термостат, а вроде уже что-то более продвинутое.

Как же можно его применить?

Двухрелейная силовая плата позволит управлять двумя потребителями одновременно. Например, два светильника, два теплых пола или теплый пол и светильник.

Вдобавок, можно вывести датчики, установленные неподалёку от Панели.

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

По нашему замыслу, такая панель предназначается, в первую очередь, именно как небольшой хаб-показометр для комнаты. Собрать основные устройства в одном месте и управлять всеми.

Всех желающих поучаствовать в обсуждении функционала такого устройства приглашаем в нашу группу телеграм

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru