АННОТАЦИЯ 2
ВВЕДЕНИЕ 8
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 10
1.1. ОБЗОР АНАЛОГОВ 11
1.3. ВЫВОД 15
2. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ 16
2.1. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 17
2.2. НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ 18
3. ПРОЕКТИРОВАНИЕ 19
3.1. ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 19
3.2. ВЫБОР БИБЛИОТЕКИ ДЛЯ СЕТЕВОГО ВЗАИМОДЕЙСТВИЯ. 20
3.3. ПРОЕКТИРОВАНИЕ АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ 21
3.4. ПРОЕКТИРОВАНИЕ ХОСТА 22
3.5. ПРОЕКТИРОВАНИЕ КЛИЕНТСКОЙ БИБЛИОТЕКИ 22
3.6. ПРОЕКТИРОВАНИЕ ГЕНЕРАТОРА ИНТЕРФЕЙСОВ К
УСТРОЙСТВАМ 22
3.7. РАЗРАБОТКА ОБЩЕЙ ЧАСТИ КОДА 24
3.8. ПРОЕКТИРОВАНИЕ ГЕНЕРАТОРА ИНТЕРФЕЙСОВ К
УСТРОЙСТВАМ 27
3.9. РАЗРАБОТКА ХОСТА 29
3.10. РАЗРАБОТКА КЛИЕНТСКОЙ БИБЛИОТЕКИ 31
3.11. РАЗРАБОТКА ГЕНЕРАТОРА ИНТЕРФЕЙСОВ 32
3.12. РАЗРАБОТКА ГЕНЕРАТОРА ИНТЕРФЕЙСОВ 33
4. РЕАЛИЗАЦИЯ 35
5. ТЕСТИРОВАНИЕ 37
5.1. МЕТОДОЛОГИЯ ТЕСТИРОВАНИЯ 37
5.2. ПРОВЕДЕНИЕ ПРОЦЕДУРЫ ТЕСТИРОВАНИЯ 37
6. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 39
6.1. НАСТРОЙКИ ХОСТА 39
6.2. ИСПОЛЬЗОВАНИЕ КЛИЕНТСКОЙ БИБЛИОТЕКИ 40
6.3. РУКОВОДСТВО ПО НАПИСАНИЮ ПЛАГИНА 42
7. ЗАКЛЮЧЕНИЕ 46
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 47
ПРИЛОЖЕНИЕ А ИСХОДНЫЙ КОД ХОСТА 48
ПРИЛОЖЕНИЕ Б ИСХОДНЫЙ КОД КЛИЕНТСКОЙ БИБЛИОТЕКИ. 59
На сегодняшний день стремительно развивается концепция вычислительной сети физических устройств с технологией взаимодействия друг с другом или внешней средой для выполнения операций или действий, исключающих необходимость участия человека - Интернет вещей. По оценкам компании Ericsson, в 2018 году число датчиков и устройств интернета вещей превысило количество мобильных телефонов, совокупный среднегодовой темп роста данного сегмента в период с 2015 по 2021 год ожидался на уровне 23%, к 2021 году прогнозируется, что из приблизительно 28 млрд подключённых устройств по всему миру, около 16 миллиардов будут так или иначе связаны в рамках концепции интернета вещей.[1] В связи с ростом количества устройств и популярностью данной концепции, возникают две проблемы. Первая проблема: необходимость создания расширяемой системы, которая позволяет взаимодействовать с компонентами интернета вещей различных производителей. Вторая: обучение студентов данной технологии для получения навыков создания сложных автоматизированных систем на основе компонентов интернета вещей.
В настоящее время существуют различные программы для работы со смарт-устройствами, но все они используют достаточно примитивные возможности описания сценариев (собственные скриптовые языки или визуальные блоки). Существующие программные комплексы работают некорректно со столь популярными и доступными смарт-устройствами Xiaomi [2]. Вышеперечисленные минусы существующего программного обеспечения не позволяют в полной мере использовать его для обучения.
Актуальность и необходимость создания такой системы, которая бы позволила настроить взаимодействие смарт-устройств различных производителей, включая Xiaomi[3], а также использоваться для обучения, обусловлена следующими аспектами:
1. Добавление устройств различных производителей в систему, чтобы расширить возможности.
2. Поддержка языка общего назначения (например, С#), что позволит создавать сложные автоматизированные системы.
3. Использование в обучении создания автоматизированных систем.
4. Возможность эксплуатировать систему для популярного направления интернета вещей - создание умного дома.
5. Доступность для коммерческого использования.
Цель работы - разработка расширяемой системы взаимодействия компонентов интернета вещей, позволяющей создавать сложные сценарии на языке программирования общего назначения. Для осуществления поставленной цели необходимо реализовать следующие задачи:
1. Исследовать существующие программные продукты для работы со смарт- устройствами, выделить функциональные возможности и проблемы.
2. Произвести исследование языков общего назначения для написания системы и использования в качестве языка создания скриптов.
3. Разработать программный комплекс, позволяющий унифицировано управлять различными устройствами от различных производителей, расширяемый с помощью плагинов.
4. Создать API для взаимодействия с разрабатываемым программным комплексом.
5. Написать документацию по работе с программным продуктом.
6. Протестировать разработанный программный продукт.
В ходе выполнения выпускной квалификационной работы был проведен анализ существующих программных комплексов для управления IoT- устройствами: выделены их недостатки и предложено усовершенствованное решение. Был спроектирован и реализован расширяемый программный комплекс для управления IoT-устройствами различных производителей. В отличии от аналогичных систем, разработанная система поддерживает написание скриптов на языке общего назначения, что позволяет создавать неограниченно сложные сценарии взаимодействия. Данный программный комплекс можно использовать для обучения студентов работе с современными IoT-технологиями, проводить лабораторные работы. Позволяет писать, как скрипты автоматизации существующих устройств, так и реализовать поддержку для новых устройств. Также расширяемую систему взаимодействия IoT- устройств можно использовать для постройки «умного дома», возможно использование в коммерческих целях. Разработанный комплекс включает в себя: две программы и две библиотеки.
По итогам работы, можно сделать следующие выводы:
- получена расширяемая система управления IoT-устройствами;
- создана база для расширения системы новыми компонентами;
- реализована клиентская библиотека взаимодействия с системой;
- реализован генератор интерфейсов для удобного с взаимодействия с устройством;
- разработанный комплекс будет предложен для внедрения на кафедре электронных вычислительных машин ФГАОУ ВО «ЮУрГУ (НИУ)».