Научная статья на тему 'Общие вопросы проектирования программного обеспечения для системы домашней автоматизации "Умный загородный дом"'

Общие вопросы проектирования программного обеспечения для системы домашней автоматизации "Умный загородный дом" Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
419
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА ДОМАШНЕЙ АВТОМАТИЗАЦИИ / УМНЫЙ ЗАГОРОДНЫЙ ДОМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Крамчанинов Сергей Сергеевич, Черкесова Лариса Владимировна

Разрабатываемая авторами система автоматизации «Умный загородный дом» предназначена для облегчения жизни людям, у которых имеется загородный дом и домашнее хозяйство, в условиях небольшого бюджета и относительной удалённости от города. Чтобы пользоваться системой, достаточно иметь начальные навыки работы с компьютером. Простота в эксплуатации особо важна для людей пожилого возраста, ведущих своё хозяйство, а для установки и настройки системы необходимы только базовые навыки работы с компьютером и электротехникой.

i Надоели баннеры? Вы всегда можете отключить рекламу.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Общие вопросы проектирования программного обеспечения для системы домашней автоматизации "Умный загородный дом"»

возможности аппаратного сопровождения путём добавления или удаления модулей, что немаловажно в условиях ограниченного бюджета.

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

Список литературы

1. Крамчанинов С.С., Черкесова Л.В. Разработка системы автоматизации загородного дома и ведения домашнего хозяйства (Умный загородный дом). / Молодой исследователь Дона, 2017. № 3 (6). С. 40-44.

2. Node.js / Википедия. [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/w/ index.php?title=Node.js&oldid=60839653/ (дата обращения: 15.10.17).

3. Каскиаро М. Шаблоны проектирования Node.js / М. Каскиаро, Л. Маммино. М.: ДМК Пресс, 2017.

4. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Э. Гамма и др. СПб.: Питер, 2015.

5. Пауэрс Ш. Изучаем Node. Переходим на сторону сервера. 2-е изд. / Ш. Пауэрс. СПб.: Питер, 2017.

6. ChildProcess / Node.js v 9.10.1 Documentation. [Электронный ресурс]. Режим доступа: https://nodejs.org/api/child_process.html/ (дата обращения: 11.01.18).

ОБЩИЕ ВОПРОСЫ ПРОЕКТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СИСТЕМЫ ДОМАШНЕЙ АВТОМАТИЗАЦИИ «УМНЫЙ ЗАГОРОДНЫЙ ДОМ» Крамчанинов С.С.1, Черкесова Л.В.2

'Крамчанинов Сергей Сергеевич — магистрант;

2Черкесова Лариса Владимировна — профессор, кафедра кибербезопасности информационных систем, факультет информатики и вычислительной техники, Донской государственный технический университет, г. Ростов-на-Дону

Аннотация: разрабатываемая авторами система автоматизации «Умный загородный дом» предназначена для облегчения жизни людям, у которых имеется загородный дом и домашнее хозяйство, в условиях небольшого бюджета и относительной удалённости от города. Чтобы пользоваться системой, достаточно иметь начальные навыки работы с компьютером. Простота в эксплуатации особо важна для людей пожилого возраста, ведущих своё хозяйство, а для установки и настройки системы необходимы только базовые навыки работы с компьютером и электротехникой.

Ключевые слова: система домашней автоматизации, умный загородный дом.

Система автоматизации «Умный загородный дом», разрабатывается для облегчения жизни людям, имеющим загородный дом и домашнее хозяйство в условиях небольшого бюджета и относительной удалённости от города [1].

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

Разработана схема программного обеспечения системы (рисунок 1). Система разделяется на 2 части: ведущее устройство (снизу) и ведомое устройство (сверху). Для масштабируемости системы было принято решение сделать программное обеспечение модульным. В основе каждого устройства имеется ядро системы, которое позволяет модулям безопасно взаимодействовать друг с другом.

Модуль сбора данных с датчика отправляет информацию на ядро микроконтроллера (МК). Оно в свою очередь может перенаправить данные в ведущее устройство или в обработчик на ведомом устройстве.

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

Модули связи отвечают за обмен информации между ведомыми и ведущим устройствами разрабатываемой системы.

Блоки «Обработчик» (управление устройствами) выполняют одну и ту же работу. Этот блок содержит логику управления устройствами.

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

Г

Термометр

Датчик влажности

т

Датчик освещённости

И др.

Г

Обработчик (логика при отсутствии связи)

ви

Ядро микроконтроллера (ведомое(ые) устройство(а))

Модуль связи системы —7*—

Сервопривод

Ф

S

f Модуль \

взаимодействия с

исполняющими

ч устройствами /

И др.

Реле

Прочие модули^

_^_

Модуль связи системы

Обработчик (управление устройствами)

Web-сервер

Ядро системы (ведущее устройство)

-VV %

L

БД

Графический

интерфейс пользователя

Рис. 1. Схема программного обеспечения системы «Умный загородный дом»

База данных хранит все показания, все настройки всю информацию, и предоставляет их системе по требованию.

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

Node или Node.js — это программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода [2].

В процессе разработки использовался микрокомпьютер «RaspberryPi 3 model В» с операционной системой Raspbian.

В качестве ведомого устройства используются платы Arduino (микроконтроллер ATmega328/P), программируемые на языке C++.

Настройка ведущего устройства и структура программного обеспечения. После установки операционной системы на компьютер, необходимо установить программную платформу Node.js. Также нам понадобится пакет npm (Node.js PackageManager) — менеджер пакетов Node.js для установки сторонних библиотек, wiringPi - библиотека для упрощения работы с GPIO (интерфейс ввода / вывода общего назначения) и др. библиотеки для работы с устройствами, а также разрабатываемая система «Умный загородный дом».

В ПО системы на ведущем устройстве входят следующие файлы [3]:

- файл main.js - это ядро системы, запускает модули, а также является связующим звеном между ними;

- файл config.json - файл конфигурации системы;

- каталог modules - хранит модули системы;

- каталог modules/masternet - модуль связи с ведомыми устройствами;

- файл modules/masternet/sdmodule.json - служебная информация о модуле;

- файл modules/masternet/masternetjs - исполнительный файл модуля;

- файл modules/mastemet/433.js - библиотека для работы с устройствами радиосвязи на частоте 433 мгц;

- файл modules/masternet/rs485js - библиотека для работы с устройствами по протоколу RS-485;

- каталог modules/webserver - модуль веб-сервера, с помощью которого можно производить настройку системы, осуществлять управление и наблюдение за ней;

- файл modules/webserver/sdmodule.json - служебная информация о модуле;

- файл modules/webserver/server.js - исполнительный файл модуля, основа веб-сервера;

- каталог modules/webserver/routing - содержит статические и динамические элементы веб страниц;

- файл modules/webserver/routing/indexjs - основа роутера веб сервера;

- файл modules/webserver/routing/... - другие каталоги, в которых содержатся файлы каркасов, стилей и скриптов отдельных веб страниц;

- каталог modules/devicemanager - модуль обработчика. Управляет устройствами на ведомых узлах;

- файл modules/devicemanager/sdmodule.json - служебная информация о модуле;

- файл modules/devicemanager/devicemanager.js - исполнительный файл модуля, основа обработчика;

- каталог extlib - хранит сторонние библиотеки.

Часть ПО находится в разработке и список может быть дополнен.

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

Для примера рассмотрим алгоритм работы программного обеспечения для микроконтроллера, блок-схема которого изображена на рисунке 2.

В его задачи входит удалённое управление поливом и освещением, а также контроль дыма и движений. При срабатывании датчиков движения или дыма совершается звонок на номер, прописанный в программе. При звонке на систему проверяется номер телефона и при успешной сверке устанавливается голосовое соединение, воспроизводится статус системы и предоставляется меню функций, которые можно использовать нажатием клавиш на телефоне. Для примера кнопка «1» - включает сигнализацию, повторное нажатие выключает, кнопка «2» - отвечает за полив клубники, кнопка «3» - освещение двора и т.д. Каждое действие сопровождается голосовым сообщением [4].

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

устройства, имеющего доступ к сети системы и браузер с поддержкой JavaScript. На странице отображается информация о датчиках в реальном времени и имеется возможность управления исполняющими устройствами [5].

Рис. 2. Блок-схема алгоритма ПО одного из вариантов ведомого устройства

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

Было принято решение об использовании в качестве программной платформы Nodejs на ведомом устройстве [6].

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

Таким образом, разработанная система домашней автоматизации «Умный загородный дом» обладает всеми необходимыми характеристиками, и при этом является достаточно простой в настройке и эксплуатации для среднего российского потребителя (особенно для пожилого пенсионера).

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

Список литературы

1. Крамчанинов С.С., Черкесова Л.В. Разработка системы автоматизации загородного дома и ведения домашнего хозяйства (Умный загородный дом). / Молодой исследователь Дона, 2017. № 3 (6). С. 40-44.

2. Node.js / Википедия. [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/w/ index.php?title=Node.js&oldid=60839653/ (дата обращения: 15.10.17).

3. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования. / Э. Гамма и др. СПб.: Питер, 2015.

4. Монк С. Мейкерство. Arduino и RaspberryPi. Управление движением, светом и звуком. / С. Монк. СПб.: БХВ-Петербург, 2017.

5. Монк С. RaspberryPi. Сборник рецептов. Решение программных и аппаратных задач. 2-е издание. Изд. / С. Монк. М.: Вильямс, 2017.

6. Пауэрс Ш. Изучаем Node. Переходим на сторону сервера. 2-е изд. / Ш. Пауэрс. СПб.: Питер, 2017.

АВТОМАТИЗИРОВАННАЯ СИСТЕМА ЗЕМЛЕИЗМЕРЕНИЯ

Белогусев А.К.

Белогусев Андрей Климентьевич — магистрант, факультет информационно-вычислительной техники, Поволжский государственный технологический университет, г. Йошкар-Ола

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Автоматизированная система землеизмерения.

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

К таким системам можно отнести решения, работающие на основе онлайн карт с GPS приемниками и ГИС системы.

GPS-приёмник [2] — радиоприёмное устройство для определения географических координат текущего местоположения антенны приёмника, на основе данных о временных задержках прихода радиосигналов, излучаемых спутниками группы NAVSTAR.

Также стали быстро развиваться геоинформационные системы (ГИС) [3] и целесообразно применение высокопроизводительных автоматизированных измерительных систем, позволяющих полностью автоматизировать процесс расчета, а также значительно повысить производительность работ.

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

Спутниковая геодезия [4], ориентированная на выполнение точных геодезических измерений на земной поверхности с помощью искусственных спутников Земли (ИСЗ), возникла в конце 50-х годов, после запуска первых ИСЗ.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.