возможности аппаратного сопровождения путём добавления или удаления модулей, что немаловажно в условиях ограниченного бюджета.
В процессе разработки были рассмотрены основные шаблоны проектирования, составлены 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.
АВТОМАТИЗИРОВАННАЯ СИСТЕМА ЗЕМЛЕИЗМЕРЕНИЯ
Белогусев А.К.
Белогусев Андрей Климентьевич — магистрант, факультет информационно-вычислительной техники, Поволжский государственный технологический университет, г. Йошкар-Ола
Автоматизированная система землеизмерения.
В настоящее время в связи с автоматизацией различных процессов [1] и введением информационных новшеств в промышленность целесообразно применение высокопроизводительных автоматизированных измерительных систем, позволяющих полностью автоматизировать процесс землеизмерений, а так же значительно повысить производительность работ.
К таким системам можно отнести решения, работающие на основе онлайн карт с GPS приемниками и ГИС системы.
GPS-приёмник [2] — радиоприёмное устройство для определения географических координат текущего местоположения антенны приёмника, на основе данных о временных задержках прихода радиосигналов, излучаемых спутниками группы NAVSTAR.
Также стали быстро развиваться геоинформационные системы (ГИС) [3] и целесообразно применение высокопроизводительных автоматизированных измерительных систем, позволяющих полностью автоматизировать процесс расчета, а также значительно повысить производительность работ.
На данный момент примером автоматического землеизмерения можно привести только систему спутниковой геодезии.
Спутниковая геодезия [4], ориентированная на выполнение точных геодезических измерений на земной поверхности с помощью искусственных спутников Земли (ИСЗ), возникла в конце 50-х годов, после запуска первых ИСЗ.
Этот способ измерения доступен только научным сотрудникам науки геодезии, армии и службам безопасности.