Диплом: Разработка программного обеспечения алгоритмического управления для систем автоматизации зданий

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
Таким образом, имея одно программное обеспечение на всех модулях
ESP8266, участвующих в работе системы мы имеем гибкий механизм
настройки данных модулей для адаптации под различные задачи.
3.2 Разработка схемы БД для хранения данных о работе
системы
Для хранения и обеспечения доступа к информации, полученной от
отдельных модулей системы, а так же запросы пользователей необходима
база данных.
Краткое описание таблиц БД
1. dev – описание модулей. IP адрес, MAC адрес, статус
2. dht – описание датчиков DHT с привязкой к индексу таблицы init и
последними полученными значениями температуры и влажности с
временной меткой.
3. ds1820 – описание датчиков ds1820 с привязкой к индексу таблицы
init, адресом датчика, последним полученным значением с каждого
датчика и временной меткой последнего опроса.
4. headerInfo – вспомогательная таблица для хранения привязки
источника данных к полям информационного сопровождения
пользовательского интерфейса
5. init – основная таблица хранения информации о конфигурации
модулей. Информация собирается непосредственно с модулей.
6. lastUpdate – таблица временных меток начала и окончания опроса
модулей.
7. log – лог таблица. Хранит всю информацию о работе системы
8. modes – вспомогательная таблица для хранения описаний режимов
работы портов контроллеров
9. types - вспомогательная таблица для хранения описаний
обработчиков, применяемых на портах контроллеров
43
10. switchBtn – таблица связки выключателей, устанавливаемых в
помещении с исполнительными устройствами.
11. switchTsensor – таблица связки температурных датчиков с
исполнительными устройствами
12. switchControl – датчик тока или напряжения, с помощью которого
контролируется состояние исполнительного устройства. Требуется
при импульсном управлении исполнительным устройством.
13. scenario – таблица хранения названия и индекса сценария работы
системы.
14. value – таблица хранения данных, полученных с портов, на которых
не прописан обработчик.
15. Daemon – таблица, содержащая единственную запись, аналог стоп
сигнала, на который ориентируется демон при очередной итерации.
Основная конфигурационная информация хранится в таблице «init». Данная
таблица содержит данные, полученные с модулей ESP8266.
3.3 Разработка модуля автоматической обработки данных
и управления модулями ESP8266.
Модуль автоматической обработки данных и управления модулями
выполнен в виде PHP класса. Так как данный скрипт будет запускаться в
операционной системе в виде сервиса (демона в Linux системах) далее по
тексту будем именовать его «демон». Запуск демона в системе linux
осуществляется средствами планировщика заданий Cron. Проверка на
живость процесса осуществляется при каждой попытке запуска средствами
скрипта запуска. Попытка запуска повторяется каждую минуту.
Сам демон после запуска отвязывается от консоли, в которой был
запущен и продолжает автономное существование в системе до получения
44
сигнала об остановке. Сигнал об остановке демона передается с
использованием таблицы daemon базы данных.
Основным функционалом демона является опрос модулей, получение
данных, их обработка, внесение полученных данных в БД, сравнение
полученных значений с установленными пороговыми значениями и принятие
решения о взаимодействии с исполнительными устройствами, путем
включения/отключения/подачи импульса на соответствующие порты
контроллеров.
Алгоритм работы демона представлен на рисунке 25.
Рисунок 25. Алгоритм работы демона.
Опишем алгоритм работы демона немного подробнее. После запуска
демона в стартовом скрипте проверяется наличие уже запущенного
экземпляра демона, и в случае его отсутствия происходит «отвязывание»
текущего процесса от консоли путем создания дочернего процесса. После
создания дочернего процесса, родительский процесс завершается, дочерний
делается основным, и в нем создается новый экземпляр класса демона. Код
скрипта запуска представлен на рисунке 26.
45
Рисунок 26. Код скрипта запуска демона.
Последней строкой запускается цикл, условием выполнения которого
является наличие записи в таблице daemon БД.
Далее демон в цикле выбирает из БД данные о контроллерах, их IP
адресах, конфигурации портов и пороговых значениях, установленных
пользователем для конкретного сценария работы системы. Обновление
данной информации происходит при каждом проходе цикла. Это делается
для обеспечения актуальности конфигурации при работе скрипта.
Следующим шагом является опрос контроллеров. В процессе опроса
полученные данные разбираются обработчиком JSON и записываются в базу
данных. Все контроллеры опрашиваются в порядке следования записей о них
в БД.
Далее проходит сверка полученных данных с допустимыми
пороговыми значениями. При наступлении события (выходе полученного
значения за пределы порога) принимается решение о взаимодействии с
исполнительным устройством, связанным с данными датчиками. При
46
необходимости может проводится проверка дополнительных параметров,
таких как наличие сигнала от датчика напряжения, датчика протечки и т.п.
Все проверки проводятся согласно определенным пользователем цепочкам.
При наступлении события формируется запрос к контроллеру на
выполнение определенного конфигурацией действия.
В системе предусмотрен функционал оповещения пользователя о
наступлении события при помощи E-Mail уведомлений. Проверка на
необходимость оповещения выполняется в конце цикла работы демона.
Таким образом реализована система взаимодействия ядра системы с
разрозненными контроллерами системы и система оповещения
пользователей о наступлении определенных в системе событий.
3.4 Разработка пользовательского интерфейса управления
системой.
Главная задача, поставленная перед пользовательским интерфейсом –
простота настройки системы и ее дальнейшее использование.
Пользовательский интерфейс реализован в виде web сайта,
написанного на языке программирования PHP с элементами JavaScript и
технологией асинхронного вызова AJAX.
Сам сайт написан в парадигме MVC. MVC (Model View Controller)
схема разделения данных приложения, управляющей логики и
пользовательского интерфейса.
В интерфейсе реализовано:
1. Главная страница. На данной странице отображаются программные
выключатели всех сконфигурированных исполнительных устройств.
Каждый из виртуальных выключателей интерактивен, цветом
отмечается его текущее состояние. Рисунок 27
47
Рисунок 27. Главная страница пользовательского интерфейса.
Так же доступно небольшое информационное окружение, которое
можно настроить для отображения температуры и влажности
(например температура и влажность в помещении и на улице).
2. Раздел настройки системы. В данном разделе настраиваются все
зависимости между компонентами системы, информационное
окружение, сценарии работы, краткое описание подключенных
контроллеров, именование датчиков. Доступ к этой странице и
уровням ниже может быть закрыт паролем, для недопущения
изменения настроек системы неквалифицированным пользователем.
Рисунок 28.
48
Рисунок 28. Страница настройки системы.
3. Страница сводной информации о работе системы. На данной
странице отображается информация о скорости работы системы,
количестве подключенных датчиках, количестве контроллеров, а так
же сводная таблица пороговых значений во всех
сконфигурированных сценариях работы системы. Рисунок 29.
Рисунок 29. Страница сводной информации о системе.
49
4. Страница статистики. Из раздела сводной информации и
диагностики можно перейти на страницу статистики. На странице
статистики, после выбора нужных датчиков и временных
интервалов можно получить график, построенный на базе данных,
собранных в процессе работы системы. Рисунок 30
Рисунок 30. Статистический график по уличному датчику
Стоит отметить, что в системе, на данный момент, существуют три
типа объектов, которые можно контролировать:
1. Датчики температуры, влажности, движения и т.п.
2. Счетчики импульсов.
3. Датчики контроля напряжения.
Эти три группы перекрывают все функциональные потребности
системы.
Работа системы максимально автоматизирована, начиная от момента
подключения первого модуля к системе и заканчивая отслеживанием
«живости» демона, проводящего анализ параметров работы всего комплекса.
При этом отслеживание «живости» системы происходит как со стороны ядра
системы (сервера), так и со стороны отдельных контроллеров. Со стороны
сервера - задания в планировщике ОС, при невозможности запуска демона
отправляется письмо пользователю. Со стороны контроллеров – «watch dog»
(сторожевой таймер), который контролирует частоту обращений ядра
50
системы к контроллеру. В случае длительного простоя, по срабатыванию
данного таймера все порты, настроенные как порты вывода переводятся в
выключенное состояние. Таймеры и поведение «watch dog» настраиваются в
системе.
Первоначальная настройка системы состоит из нескольких простых
шагов:
1. Подключение контроллеров ESP8266 и их первичная настройка.
2. Поиск подключенных контроллеров
3. Установка режимов работы портов контроллера
4. Настройка сценариев работы системы
5. Настройка алгоритмов работы нагрузки и датчиков
6. Настройка оповещений
По порядку:
Подключение контроллеров ESP8266 к системе. В ходе работы был
разработан блок, включающий в себя контроллер ESP8266 и 6 силовых
ключей на полевых транзисторах для обеспечения возможности
подключения мощных нагрузок (с током потребления более 50мА и/или
напряжением > 3,3В) непосредственно к модулю контроллера. Блок
смонтирован в корпусе, рассчитанном на установку в распределительный
шкаф на стандартную DIN рейку. Блок занимает два посадочных места.
Перед подключением к системе необходимо перемычками выставить режим
работы 6 портов (GPIO с 10 по 16), если это необходимо, в режим работы с
силовым ключом. По умолчанию все порты подключены напрямую к
контроллеру без ключа. После монтирования в шкаф и подачи питания (от
5В до 12В) модуль готов к первичной настройке.
При подаче питания и загрузке модуля происходит поиск и попытка
подключения к SSID, если таковое подключение ранее производилось. В
случае неудачи модуль перезагружается в режиме точки доступа. При
установке нового модуля необходимо с любого устройства, имеющего WiFi
карту, подключиться к контроллеру и указать атрибуты для подключения к
51
рабочей SSID. После этого модуль автоматически перезагрузится в режиме
клиента и будет готов к использованию.
Поиск подключенных контроллеров. Поиск подключенных контроллеров
автоматизирован. Для поиска задается пул IP адресов для поиска, далее
система опрашивает каждый из этих адресов по порту TCP 81. В случае
успеха проводится анализ полученной от контроллера информации. При
получении адекватной, правильно сформированной информации от модуля –
данные заносятся в базу данных и выдается отчет о поиске модулей. С этого
момента система может работать с подключенным модулем ESP8266.
Установка режимов работы портов контроллера. Для корректной работы
модуля необходимо указать режимы работы портов ввода/вывода, а для
дальнейшего удобства – краткое описание порта (описание подключенной
нагрузки или датчика). На этом этапе формируется массив интерактивных
выключателей, доступных пользователю и демону.
Настройка сценариев работы системы. Для упрощения
администрирования комплекса была реализована система сценариев. Суть
сценария – набор правил и алгоритмов работы, применяемых для всей
системы. При настройке системы в каждом из сценариев прописываются
цепочки взаимодействия компонентов системы. Пример: в загородном доме
можно (минимум) реализовать 2 сценария: 1. Активый, 2. Дежурный.
В активном сценарии можно прописать комфортную температуру в
помещении, сделать активными выключатели света, отключить часть
оповещений. В дежурном – выставить температуру помещения +5С, для
предотвращения «замораживания», принудительно отключить освещение,
включить оповещения о работе системы.
Настройка алгоритмов работы нагрузки и датчиков. Настройка
алгоритмов работы системы может быть выполнена в двух вариантах: 1-й
доступный обычному пользователю из Web интерфейса. Рисунок 31.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран