Разработка программного комплекса управления

Разработка устройства, которое будет управлять подсистемами гаражного помещения. Выбор контроллера, датчиков температуры и влажности, магнитоконтактного извещателя. Реализация управления системами вентиляции, отопления и открывания-закрывания ворот.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.05.2018
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рисунок 3.6 - Имитация системы вентиляции и отопления

Для наглядности макета была собрано небольшое устройство имитирующее работу автоматических ворот. Собрано на контроллере Arduino Nano.

Принцип работы заключается в том, что если на вход приходит положительный сигнал, то включается электродвигатель, который открывает ворота. Работает он до тех пор, пока сработает датчик, оповещающий контроллер о полном открытие ворот. После этого двигатель останавливается. В качестве датчиков используются кнопки. Если же на входе пропадает положительный сигнал, что означает о том, что ворота нужно закрыть, контроллер переключает реле в противоположное состояние, что приводит к смене полярности подключения электродвигателя, и вращение происходит в противоположную сторону, тем самым закрывая ворота до тех пор, пока не сработает второй датчик. Схема устройства приведена на рисунке 3.7.

Рисунок 3.7 - Схема устройства автоматического открывания-закрывания ворот

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

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

Например, при нажатии на кнопку "FAN" к запросу на сервер добавляется параметр /f. Сервер обрабатывает запрос и выполняет программный блок, соответствующий данному параметру, в котором значение состояния выхода, управляющего системой вентиляции, меняется на противоположное. После всех изменений сервер возвращает клиенту станицу с измененными данными (Рисунок 3.8).

Рисунок 3.8 - Ответ сервера на запрос с параметром /fan

3.2.4 Климат-контроль, контроль доступа

Одной из поставленных задач была реализация функции поддержания микроклимата гаражного помещения (климат-контроль). Суть заключается в том, что пользователь включает данную функцию и задает требуемую температуру, которая должна поддерживаться в гаражном помещении. Исходя их показаний, считанных с датчика температуры, контроллер принимает решение о дальнейших действиях. Если температура в помещении меньше заданной пользователем, то контроллер посылает сигнал системе отопления и помещение прогревается до тех пор, пока не будет достигнута нужная температура. Аналогично происходит в случае, если температура в помещении выше заданной, только сигнал посылается системе вентиляции. Если же температура в помещении равна заданной, то системы отопления и вентиляции выключены.

На практике для решения данных задач нет необходимости, производить какие то действия, если показания датчика меняются на 1 градус. Вполне допустима погрешность 2-3 градуса в обе стороны.

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

Второй важной функцией в данном разделе является контроль доступа в гаражное помещение. По задумке, система должна оповещать пользователя, если в помещение проник кто-то посторонний.

Система контроля доступа может быть в трех состояниях: выключена, включена и все тихо, включено и тревога.

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

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

Если контроллер входит в режим тревоги, то оповещение пользователя происходит посредством изменения web-страницы, а так же звуковым сигналом, установленным непосредственно в гаражном помещении.

Для реализации данной опции в макете был добавлен пьезоэлемент (динамик), который будет издавать звуковой сигнал. Ниже приведен скриншот страницы, которую вернул сервер, при включенном режиме контроля доступа и функции поддержания микроклимата помещения (Рисунок 3.9).

Рисунок 3.9 - web страница управления устройством

Не всегда под рукой оказывается смартфон с доступом к интернету, но даже в таком случае система должна выполнять свои функции. Для решения данной задачи был установлен LCD I2C модуль, площадка для считывания ключа типа iButton и несколько кнопок для локального управления.

Ключ типа iButton будет использоваться для постановки и снятие с охраны. Ключ iButton работает по протоколу 1-Wire (двунаправленная шина связи для устройств с низкоскоростной передачей данных, в которой данные передаются по цепи питания (то есть всего используются два провода -- один для заземления, а второй для питания и данных; в некоторых случаях используют и отдельный провод питания)). Такие ключи чаще всего используются в домофонах и охранных системах.

Для проекта был взят ключ RW1990. Ключ хранит 64 бита уникальной информации, питается от 2.8В до 6.0В. К центральной контактной площадке подключается линия данных, а к боковой каёмке - землю. Величина подтягивающего резистора рекомендуется в 2.2k

Каждый RW1990 прошивается уникальным 64-битным номером (рисунок 3.10)

Рисунок 3.10 - Уникальный номер ключа RW1990

Первые 8 бит -- номер серии устройства, следующие 48 бит -- уникальный серийный номер, последние 8 бит -- CRC-код предыдущих 56 бит информации.

После подключения дисплея и контактной площадки получилась итоговая схема (рисунок 3.11)

Рисунок 3.11 - Схема готового устройства

3.3 Написание программы и отладка

После полного сбора макета, началась разработка алгоритма и написание программы, управляющей устройством. Как указывалось ранее программы (скетчи) для Arduino пишутся на языке Wiring. Фактически нет никакого особого языка программирования, и программы пишутся на C/C++, а компилируются и собираются с помощью широко известного avr-gcc (в версии для Windows -- WinAVR).

Все особенности сводятся к тому, что используется набор библиотек, включающий в себя некоторые функции (вроде pinMode) и объекты (вроде Serial), а при компиляции Вашей программы среда разработки создает временный .cpp файл, в который кроме Вашего кода включается еще несколько строчек, и полученный результат скармливается компилятору.

Весь код можно разделить на 3 условные части:

· Подключение библиотек и объявление переменных

· Начальные установки при запуске

· Циклически выполняющийся код

С первым все понятно - подключение библиотек для работы с датчиками и дополнительными модулями. Объявление глобальных переменных, таких как: номера выходов на контроллере, переменные для фиксации состояний выходов.

Вторая часть (функция setup() - обязательная функция для работы программы (Листинг 3.1)). Здесь настраиваются контакты на контроллере, как входы и выходы, соответственно своему назначению. Также здесь происходить включение датчиков и модулей.

Листинг 3.1 - Начальные установки при включении устройства

void setup()

{

Serial.begin(9600);

pinMode(ledButtonPin, INPUT);

pinMode(tempPin, INPUT);

pinMode(gerkonPin, INPUT);

pinMode(gasPin, INPUT);

pinMode(doorPin, OUTPUT);

pinMode(fanPin, OUTPUT);

pinMode(heatGunPin, OUTPUT);

pinMode(alarmPin, OUTPUT);

lcd.init();

dht.begin();

ethernet.setup(mymac, myip, port);

...

Также было предусмотрена возможность аварийного выключения устройства (отсутствие питания и прочие незапланированные ситуации), при которой данные о работе устройства и состояния выходов сохраняются в энергонезависимую память EEPROM. При запуске устройства перед началом работы основного цикла, восстанавливаются все состояния, которые были на момент отключения устройства. В программе это реализовано с помощью библиотеки EEPROM.h и функций EEPROM.read() и EEPROM.write().

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

Листинг 3.2 - Восстановление состояний из энергонезависимой памяти EEPROM

if(!climatControlStatus && !alarmStatus)

{

fanPinStatus=EEPROM.read(4);

digitalWrite(fanPin,!fanPinStatus);

heatGunPinStatus=EEPROM.read(5);

digitalWrite(heatGunPin,!heatGunPinStatus);

doorPinStatus=EEPROM.read(6);

digitalWrite(doorPin,!doorPinStatus);

}

Главный управляющий код находится в третьей части и выполняется циклически функцией loop(). Блок схема (рисунок 3.12) иллюстрирует его работу.

Рисунок 3.12 Блок-схема работы основной программы

Взаимодействие через интернет реализуется с помощью библиотек etherShield.h и ETHER_28J60.h.

Функция ethernet.serviceRequest() проверяет есть ли запрос к серверу, если есть запоминает его. Далее в зависимости от запроса и показаний датчиков буфер заполняется HTML кодом, тем самым формируя веб-страницу, которую получит клиент. Пример заполнения буфера показан на листинге 3.3.

Листинг 3.3 - заполнение буфера HTML кодом

ethernet.print("<a href=\"/\"><button>Обновить

</button></a><br>");

if(garageStatus) ethernet.print("Охрана: <b> ВКЛ</b>");

else ethernet.print("Охрана: <b> ВЫКЛ</b>");

if(garageStatus && alarmStatus)

{

ethernet.print("<br><H1>ТРЕВОГА</H1>");

ethernet.print("<a href=\"/a_off\"><button>

<b>ВЫКЛ</b></button></a><br>");

После заполнения буфера сервер отправляет ответ клиенту с помощью функции ethernet.respond().

Данный алгоритм выполняется в цикле, тем самым обеспечивая постоянную работу устройства.

4. ЗАКЛЮЧЕНИЕ

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

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

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

Разработан алгоритм работы управляющего устройства.

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

В процессе разработки были получены знания в области микроконтроллеров.

Таким образом, все поставленные задачи решены в полном объеме, цель работы - достигнута.

список использованных источников

1 УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ДЛЯ СТУДЕНТОВ КАФЕДРЫ АСОИУ [Электронный ресурс]. - Режим доступа: http://www.4stud.info. - Загл. с экрана. - яз. рус.

2 Википедия, свободная энциклопедия [Электронный ресурс] : Свободная общедоступная многоязычная универсальная энциклопедия. - Режим доступа: http://ru.wikipedia.org/wiki/Main_Page. - Загл. с экрана. - яз. рус

3 ИНТУИТ - Национальный открытый университет [Электронный ресурс] - Режим доступа: http:// http://www.intuit.ru/. - Загл. с экрана. - яз. рук.

4 АКАДЕМИК - Словари и энциклопедии [Электронный ресурс]. - Режим доступа: http://dic.academic.ru. - Загл. С экрана. - яз. рус.

5 Geektimes [Электронный ресурс] - Режим доступа: http://www.geektimes.ru. - Загл. с экрана. - яз. рус.

6 Библиотека Максима Мошкова [Электронный ресурс] - Режим доступа: http:// http://www.lib.ru/. - Загл. с экрана. - яз. рус.

7 Википедия, свободная энциклопедия [Электронный ресурс] : Cвободная общедоступная многоязычная универсальная энциклопедия. - Режим доступа: https://ru.wikipedia.org/wiki/Ethernet- Загл. с экрана. - яз. Рус

Размещено на Allbest.ru

...

Подобные документы

  • Описание функциональной схемы контроллера системы отопления, обеспечивающего многопозиционный контроль температуры и управление ветками отопления и котлом. Разработка принципиальной схемы. Обоснование выбора. Алгоритм работы устройства. Листинг программы.

    курсовая работа [1,1 M], добавлен 26.12.2012

  • Разработка принципиальной системы контроля доступа с управлением "ролл"-воротами. Описание функциональной схемы и ее элементов. Выбор модуля контроллера ворот, датчиков, электронных цифровых ключей. Программа управления микроконтроллером; алгоритм работы.

    курсовая работа [2,1 M], добавлен 26.12.2012

  • Особенности использования микроконтроллеров в различных изделиях. Создание максимально гибко настраиваемого контроллера температуры и влажности. Создание физической модели контроллера. Реализация удаленного управления микроконтроллера через сеть Wi-Fi.

    курсовая работа [3,8 M], добавлен 04.02.2021

  • Разработка принципиальной электрической схемы микропроцессорного устройства управления двигателем постоянного тока на базе контроллера ATmega 128. Разработка пакета подпрограмм на языке Assembler в целях регулирования и корректной работы устройства.

    курсовая работа [271,5 K], добавлен 14.01.2011

  • Компоновка роботизированного комплекса. Разработка циклограммы работы объектов. Построение релейно-контактной, логической бесконтактной схем по циклограмме и сети Петри. Выбор программируемого контроллера. Разработка и написание программы управления.

    курсовая работа [922,9 K], добавлен 26.01.2012

  • Функционально-модульная структура программного обеспечения контроллера домофона. Электронная схема электронного замка, модуля микрофона и динамика. Выбор комбинированного источника питания. Разработка программного модуля. Программа управления домофоном.

    курсовая работа [484,7 K], добавлен 29.03.2017

  • Устройство и назначение однокристальных микроконтроллеров, сферы их применения. Разработка контроллера для управления домашней метеостанцией: расчет принципиальной схемы и характеристика ее элементов, выбор датчиков. Описание программы управления.

    курсовая работа [280,3 K], добавлен 28.12.2012

  • Общая характеристика гидроэлектростанций Республики Беларусь. Разработка автоматизированной системы управления каскадом малых и микро гидроэлектростанций. Программирование логического контроллера датчиков температуры и оборотов турбин электростанции.

    дипломная работа [4,1 M], добавлен 14.07.2014

  • Конструктивное исполнение устройства числового программного управления. Разработка схемы автоматизации. Функциональное и тестовое диагностирование устройства с помощью универсальных приборов. Приобретение навыков расчета стоимости наладочных работ.

    дипломная работа [2,1 M], добавлен 10.07.2014

  • Разработка специализированного контроллера, обеспечивающего управление системой кондиционирования помещения с контролем температуры и выводом текущих показаний на индикатор. Описание функциональной схемы. Зависимость выходного кода от температуры.

    курсовая работа [354,9 K], добавлен 26.12.2012

  • Проектирование устройства, выполняющего функцию определения минимального давления на основе информации о показаниях полученных от 7 датчиков. Разработка набора команд управления микроконтроллером в среде программного обеспечения Code Vision AVR.

    курсовая работа [24,5 K], добавлен 28.06.2011

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

    курсовая работа [2,7 M], добавлен 10.11.2014

  • Разработка и обоснование функциональной схемы системы автоматического управления технологическим процессом. Расчет мощности электродвигателей. Выбор и компоновка шкафа электроавтоматики. Моделирование программного обеспечения в Logo Soft Comfort v6.0.

    курсовая работа [4,1 M], добавлен 02.04.2013

  • Реализация подсистемы управления файлами, использующей в качестве способа физической организации файла связанный список блоков. Разработка общей структуры модуля. Описание реализуемых в программе алгоритмов. Ввод в действие программного комплекса.

    курсовая работа [666,0 K], добавлен 10.07.2015

  • Контроллер управления двигателями. Назначение, краткая характеристика, перспективы внедрения робота-дозиметриста. Обзор основных способов беспроводной передачи данных на большие расстояния. Проектирование принципиальной схемы бортового контроллера.

    дипломная работа [2,4 M], добавлен 05.01.2013

  • Общая характеристика автоматизированной системы мониторинга и учета электроэнергии на фидерах контактной сети. Сравнение с современными автоматизированными системами коммерческого учета электроэнергии. Разработка модели и алгоритма программного комплекса.

    дипломная работа [2,0 M], добавлен 28.06.2015

  • Результаты предпроектного обследования завода. Разработка и реализация программного комплекса "Subсontraсting". Информационное и программное обеспечение продукта. Технико-экономическое обоснование внедрения проекта, его безопасность и экологичность.

    дипломная работа [5,4 M], добавлен 22.06.2011

  • Разработка структурной схемы и интерфейса программного комплекса управления сайтом. Выбор языка программирования. Принципы тестирования программы. Разработка руководства оператора и системного программиста. Расчет сметы затрат на программный продукт.

    дипломная работа [4,1 M], добавлен 11.06.2012

  • Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.

    курсовая работа [492,9 K], добавлен 28.12.2012

  • Структурная схема системы управления. Характеристики первичных датчиков, электронасоса, индикатора, микроконтроллера, системы прерываний. Работа регистров и аналого-цифрового преобразователя. Алгоритм работы микропроцессора - управляющего устройства.

    курсовая работа [2,2 M], добавлен 06.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.