Интернет вещей, Internet of Things (IoT)
Site: | TalTech Moodle |
Course: | Arukate süsteemide elementide projekteerimine ja väljatöötamine (Virumaa) |
Book: | Интернет вещей, Internet of Things (IoT) |
Printed by: | Guest user |
Date: | Friday, 22 November 2024, 10:22 AM |
ВВЕДЕНИЕ
Сегодня, благодаря быстрому развитию микроэлектроники, каналов связи, Интернет-технологий и Искусственного Интеллекта, тема умных домов становится все более и более актуальной.
На рынке уже существуют решения, превращающие квартиру или загородный дом в сложные информационные системы, управляемые из любой точки мира с помощью смартфона. Причем, для взаимодействия между человеком и такой сложной системой как «Умный дом» уже не требуются знания языков программирования, — благодаря алгоритмам распознавания и синтеза речи человек с легкостью управляет умным домом.
Некоторые системы умного дома, представленные сейчас на рынке, являются логичным развитием систем облачного видеонаблюдения, разработчики которых осознали необходимость в комплексном решении не только для контроля, но и для управления удаленными объектами.
На сегодняшний день концепция умного дома - это совокупность технологий, позволяющая создавать различные системы автоматизации жилого пространства, обеспечивающие возможность взаимодействия различных устройств, удаленного управления ими, а также, дружественный графический интерфейс для максимально простого «общения» с хозяином. «Умный дом» — интеграция бытовых устройств, коммуникаций и оборудования, используемых ежедневно в быту, в единую автономную систему управления. Данная система отвечает за ресурсосбережение и комфорт жителей дома, упрощает управление объектом недвижимости.____________________
https://realt.by/wiki/term/umnyi-dom/ Дата доступа: 10.09.2020
Выбор оборудования и подключение датчиков к контроллерам
Условно все устройства системы можно поделить на несколько типов: контроллер, устройства-исполнители, устройства управления и прочее интегрируемое оборудование и веб-сервисы.
Контроллер – это «мозг» умного дома. Этот прибор контролирует работу сети и всех входящих в нее устройств, хранит в своей памяти сложные сценарии (определенные наборы действий) и обеспечивает связь системы умного дома с вашим смартфоном, планшетом или компьютером.
Различные датчики, определяющие движения, задымления, протечки, – это «органы чувств» умного дома. Благодаря им система непрерывно получает информацию о том, что происходит в доме.
Исполнители – группа устройств, которые выполняют команды системы, отдаваемые на основании данных от датчиков. Например, шаровой кран мгновенно перекрывает воду, если датчик обнаруживает протечку. Реле выключают и включают свет, а диммеры меняют яркость.
Устройства управления – приборы для комфортного использования системы умного дома. Это пульты дистанционного управления, специальные мобильные приложения или, например, выключатели света на батарейках, которые можно разместить там, где вам удобно.
Прочие интегрируемое оборудование и веб-сервисы — видеокамеры, оборудование и сервисы, имеющие открытый API (мультимедиа-оборудование, различная современная техника, проекторы и т.д.) или управляемые ИК пультами дистанционного управления. [2]
Все эти устройства общаются между собой по средством сигналов, каждое устройство умного дома одновременно и принимает, и передает сигнал.
Контроллеры умного дома
Программируемый логический контроллер, программируемый контроллер — специальная разновидность электронной вычислительной машины. Чаще всего ПЛК используют для автоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
Главный критерий при выборе контроллера — протокол беспроводной связи, по которому он работает. Wi‑Fi для этих целей, как правило, не подходит. Модуль слишком энергозатратен — приборы и датчики не смогут с ним подолгу работать автономно, их постоянно придётся подзаряжать. Кроме того, сама технология довольно дорогая. Также у Wi‑Fi могут быть проблемы с безопасностью и стабильностью покрытия.
Поэтому чаще всего встречаются контроллеры с протоколами Z‑Wave и ZigBee. Принцип работы у них схож: в обоих ячеистая схема сети, когда каждое устройство умного дома становится своеобразным передатчиком. Это увеличивает зону покрытия и делает сеть стабильнее. Если какой‑то элемент выходит из строя, его функции по передаче данных просто перераспределяются между остальными. Так как команды идут не по строго определённому маршруту, ниже риск, что они не дойдут до адресата.
Контроллер – это один из самых главных компонентов умного дома, который связывает все остальные составляющие данной системы, собирает данные с других компонентов, анализирует их и передает команды остальным. Контроллер можно назвать серверной частью системы «Умный дом», для создания которой используются различные аппаратные и программные средства, которые будут рассмотрены далее.
Физическую часть сервера умного дома обычно выбирают по нескольким критериям: цена, мощность, надежность, размер.
Промышленные сервера в системах «Умный дом» обычно не используются, так как это достаточно дорого. В качестве сервера для умного дома можно использовать любой компьютер на Windows или Linux. Основное достоинство такого варианта — можно использовать любой компьютер в качестве «Умного дома». Системы для создания умного дома обычно не требовательны к железу, поэтому запустятся на многих старых компьютерах и будут стабильно функционировать. Но если покупать новый персональный компьютер специально в качестве сервера — это дорого и кроме того, использование компьютера/нетбука в качестве сервера — использование немалого физического пространства.Физическую часть сервера умного дома обычно выбирают по нескольким критериям: цена, мощность, надежность, размер.
Самым
лучшим вариантом для сервера умного дома является одноплатный компьютер (рисунок
1).
Одноплатный
компьютер
https://mjdm.ru/kakoy-server-vibrat-dlya-umnogo-doma/. Дата доступа:
21.09.2020
К основным достоинствам использования одноплатных компьютеров в качестве сервера умного дома относятся:
- небольшая цена - от 20 USD в Китае до 50-70 USD в магазинах СНГ;
- по техническим характеристикам отлично подходит для умного дома;
- надежность;
- небольшой по размерам.
Самые популярные одноплатные компьютеры для создания Умного дома:
- Raspberry Pi;
- Orange Pi;
- Banana Pi;
- CubieBoard [4].
Исходя из вышеописанных характеристик лучшим вариантом для создания управляющей части умного дома, то есть контроллера, является Raspberry Pi, так как с помощью этого микрокомпьютера можно собрать множество интересных решений, и не только для умного дома. А встроенные сетевой интерфейс и WiFi модуль позволяют легко подключить плату к локальной сети или Интернету. Удобно, что ее наборы уже включают все необходимое, в том числе грамотное руководство, позволяющее легко познакомиться с основами работы с Raspberry Pi. Также Raspberry Pi имеет доступную стоимость.
__________________________
https://ru.wikipedia.org/wiki/ Программируемый_логический_контроллер Дата доступа: 13.09.2020
https://mjdm.ru/kakoy-server-vibrat-dlya-umnogo-doma/ Дата доступа:
21.09.2020
https://lifehacker.ru/smart-controllers/. Дата доступа: 17.09.2020
https://ageofgeeks.com/technology/raspberry-pi-smart-home/ Дата
доступа: 21.09.2020
Датчики умного дома
Сенсоры (датчики) – «глаза» и «уши» системы «Умный дом», определяющие изменения контролируемых параметров. Это могут быть датчики присутствия, времени, освещенности, температуры и другие. Сенсоры передают в инсталляционную шину сигнал об изменении значения параметров [9].
Чаще всего для реализации умного дома используют определенный набор датчиков. В этот набор входят датчики температуры и влажности воздуха, датчики освещения, датчики движения, датчики, обеспечивающие безопасность (датчики горючих газов и дыма, датчики пламени). Далее, для правильного выбора датчиков, рассмотрим подробнее некоторые из них.
________________________
http://snabsystem.ru/catalog/umnyy-dom/moduli-i-komponenty-umnogo-doma Дата доступа: 17.09.2020
Подключение датчиков к контроллерам
Большинство датчиков имеет возможность подключения к плате либо по шине I2C, либо по 1-проводной шине. Но есть и такие, которые можно подключать любым из этих способов, к таким датчикам относится датчик влажности и температуры АМ2320.
Также в настоящее время широкое распространение получили беспроводные датчики, работающие по протоколам RF433, Z-Wave, ZigBee, Bluetooth и WiFi. Их главные преимущества – удобство монтажа и использования, а также дешевизна и надежность, так как производители стремятся вывести свои устройства на массовый рынок и сделать их доступными рядовому пользователю.
Датчики и исполнительные устройства, как правило, подключаются по беспроводному интерфейсу к контроллеру умного дома – специализированному микрокомпьютеру, объединяющему все эти устройства в единую сеть и управляющему ими.
Также некоторые решения могут совмещать в себе датчик, исполнительное устройство и контроллер одновременно. Например, умная розетка может быть запрограммирована на включение или выключение по расписанию, а камера облачного видеонаблюдения умеет записывать видео по сигналу детектора движения. В простейших случаях можно обойтись без отдельного контроллера, но для создания гибкой системы со множеством сценариев он необходим.
Для подключения контроллера умного дома к глобальной сети может быть использован обычный Интернет-роутер, который уже давно стал привычным бытовым прибором в любом доме. Здесь есть еще один аргумент в пользу контроллера умного дома – если пропадет связь с Интернет, то умный дом продолжит работу в штатном режиме благодаря блоку логики, хранящейся внутри контроллера, а не в облачном сервисе.
На рисунке можно увидеть подключенные к контроллеру датчики в лабораторном макете проекта.
Лабораторный макет
Программирование контроллеров
Для программной составляющей контроллера умного дома уже существуют готовые программы, помогающие пользователям настроить свой «Умный дом». Одной из таких систем является MajorDoMo.
Система «Умный дом» Majordomo — проект по адаптации и автоматизации жилого помещения.
Системы Majordomo максимально адаптированы для начинающих пользователей и поэтому практически не требуют опыта или знаний в таких областях, как программирование или электроника.
Majordomo — это бесплатная общедоступная программа, которая поможет быстро обучиться комплексному управлению «Умным домом». Благодаря поддержке двух основных платформ (Windows или Linux) такая система может быть установлена фактически на любой персональный компьютер, поскольку потребляет относительно мало ресурсов. Даже имея малопроизводительный ПК, можно позволить себе пользоваться этой системой. [5]
Также для более продвинутых пользователей имеются системы с расширенными настройками и открытым кодом, такие как OpenHAB, Domoticz и Home assistant.
Что касается openHAB, - это очень гибкий конструктор. Основанный на технологии OSGi, он позволяет конфигурировать каждый отдельный плагин (Binding) «налету», не перезагружая весь сервер.
OpenHAB реализует единую шину, т.е. позволяет объединить все устройства с разными протоколами в единую сеть, абстрагируя пользователя от каждого конкретного протокола. Таким образом, можно пользоваться единственным средством управления (скажем, приложением на смартфоне) и реализовать сколь угодно сложную логику взаимосвязи между устройствами.
OpenHAB — это специальный сервер, который может работать на любом компьютере под управлением любой ОС (включая RaspberryPi). Вся установка заключается в распаковывании дистрибутива сервера и установке Java машины. Далее начинается процесс настройки.
Третья система, Domoticz - это мультиплатформенное ПО с открытым кодом ориентированное на создание системы управления умным домом. Поддерживает большое количество различных устройств разных вендоров, в том числе работает с устройствами Xiaomi.
Система имеет более гибкие возможности по настройке сценариев — например проверку активности устройства, то, чего нет в MiHome, или создание переменных — которые позволяют по одному условию — например нажатие клавиши — выполнять различные действия, в зависимости от значения переменной.
Home assistant - это программное обеспечение с открытым кодом для автоматизации умного дома, ориентирующееся на локальное управление и конфиденциальность. Он отлично подходит для работы на Raspberry Pi или локальном сервере. Проекту более пяти лет, он использует python и лицензию Apache 2. Для управления устройствами Home assistant использует отдельные модули (integrations, или components). Создать такой довольно просто. На их сайте можно найти каталог основных (одобренных и поддерживаемых сообществом) модулей. Среди общего их количества (1485 штук) попадаются совершенно разнообразные.
Также, если разработкой сервера системы «Умный дом» занимается программист, есть возможность запрограммировать сервер с нуля, использую лишь свой собственный код.
Данный подход является самым сложным, но и самым гибким, так как уже готовые программы всегда имеют ограничения в возможностях.
При выборе языков программирования на одноплатные компьютеры, такие как Raspberry Pi, обычно останавливаются на таких популярных языках как C, C++, JavaScript и Python. Однако, лучше всего для этого подходят именно С и Python. Так как Raspbian – ОС на базе Unix, в качестве базового языка здесь выступает С. С его помощью можно получить максимальную производительность без использования машинных команд. А IDLE, стандартная среда разработки программ на Raspberry, работает как раз на языке Python.
Исходя из анализа вышеуказанных фактов были сделаны выводы о том, какие программные средства лучше всего подходят для создания сервера умного дома. Это Home Assistant - программное обеспечение с открытым кодом для автоматизации умного дома. В качестве языка программирования целесообразно будет использовать Python в связи с его отличной совместимостью с выбранными программным обеспечением и аппаратной частью.
____________________________________https://proumnyjdom.ru/sistemy-avtomatizacii/sistema-umnyj-dom-majordomo.html Дата доступа: 21.09.2020
https://habr.com/ru/post/471822/ Дата доступа: 21.09.2020
Протоколы и схемы передачи данных
Для сравнения были выбраны два протокола передачи данных: MqTT и COAP. В таблице 4 приведена сравнительная характеристика двух протоколов передачи данных.
Таблица 4 – Сравнительная характеристика протоколов передачи данных
Критерий сравнения |
CoAP |
MQTT |
Модель, используемая для отправки сообщений |
Запрос – Ответ; Подписчик- Издатель |
Подписчик- Издатель |
RESTful |
Да |
Нет |
Протокол передачи данных |
UDP |
TCP |
Размер заголовков |
4 байта |
2 байта |
Количество типов используемых сообщений |
4 |
16 |
Тип сообщения |
Асинхронный; Синхронных |
Асинхронный |
Количество уровней надежности передачи |
2 |
3 |
Стандартный протокол защиты |
IPSEC или DTLS
|
Нет стандарта для защиты |
Сфера применения |
Используется для настройки сообщений в сетях общего пользования |
Является стандартом для сообщения в IoT |
Исходя из сравнений двух протоколов передачи данных, между устройствами, был выбран Mqtt так как, он является стандартом в сфере IoT. Mqtt более гибок и легковесен по сравнению с CoAP. Протокол Mqtt имеет выше уровень надежности передачи данных, чем у CoAP.
Существует несколько базовых понятий, которые необходимо знать, чтобы понимать, как работает протокол MQTT:
- Публикация/подписка
- Сообщения
- Топики
- Брокер
Подписка — это понятие, которое означает, что устройство может публиковать сообщения на наши устройства, а также то, что наше устройство может подписаться на какой-нибудь топик, чтобы получать эти сообщения.
Работа подписок детально представлена на рисунке:Подписка. http://wikihandbk.com/wiki. Дата доступа: 29.09.2020
Сообщения – это информация, обмен которой
осуществляется между устройствами. Это могут быть и инструкции, и обычные
данные. Топики – это то, куда будут сохраняться входящие
сообщения и куда будут публиковаться исходящие сообщения. Он представляют собой
строки, составные части которых разделены слешами. Слеш – это
разделитель между уровнями топика.
Топик
для лампы http://wikihandbk.com/wiki. Дата доступа: 29.09.2020
Брокер – это программа, отвечающая за получение всех сообщений, фильтровку сообщений, решение того, кому отправлять сообщения, а также публикацию сообщений на подписанных клиентов.
Работа брокера представлена на рисунке:Брокер. http://wikihandbk.com/wiki. Дата доступа: 29.09.2020
Существует разные программы-брокеры. В частности, в
нашем случае наиболее полезен брокер Mosquitto, который можно установить
на Raspberry Pi. MQTT позволяет отправлять команды клиенту (вроде Node-RED), с его помощью управляя различными устройствами, а
также считывать данные с датчиков и публиковать их на клиенте (вроде Node-RED). На рисунке 19 представлена данная схема взаимодействия
устройств с использованием MQTT.
Схема передачи
данных. http://wikihandbk.com/wiki. Дата доступа: 29.09.2020
Создание базы данных
База данных контроллера умного дома может быть реализована на основе встраиваемой СУБД SQLite и представлять собой файл на SD-карте с системным ПО. Она служит хранилищем конфигурации контроллера — информации о подключенном оборудовании и его текущем состоянии, блока логических продукционных правил, а также информации, требующей индексации (например, имен файлов локального видеоархива). При перезагрузке контроллера эта информация сохраняется, что делает возможным восстановление работоспособности контроллера в случае сбоев электропитания. [6]
SQLite – это небольшая, встраиваемая библиотека, с помощью которой программу можно оснастить автономной, транзакционной, бессерверной базой данных SQL, которой не нужна никакая настройка. SQLite – это самый распространенный движок баз данных в мире, и его исходный код есть в публичном доступе.
Ниже – список функций, делающих SQLite первоклассной базой данных:
- Целиком хранится в одном кроссплатформенном дисковом файле.
- Очень невелика и занимает мало места на диске.
- Автономна (не требует внешних зависимостей).
- Не требует отдельного серверного процесса.
- Не требует настройки.
- Кроссплатформенна: доступна на UNIX (Linux, Mac OS-X, Android, iOS) и Windows (Win32, WinCE, WinRT).
Базы данных нужны для простого и быстрого доступа к сохраненной информации.
При помощи Raspberry Pi можно создать проект, сохраняющий данные о температуре, влажности и других показателях, полученных с датчиков.
Установить SQLite на Raspberry Pi можно при помощи всего лишь одной команды:
Листинг 1 – Установка SQLite на Raspberry Pi
pi@raspberry:~ $ sudo apt-get install sqlite3
В комплекте с библиотекой SQLite идет оболочка SQLite. Чтобы вызвать эту оболочку и создать базу данных, нужно воспользоваться командой ниже:
Листинг 2 – Создание базы данных на Raspberry Pi
pi@raspberry:~ $ sqlite3 sensordata.db
Для взаимодействия с информацией, находящейся в базе данных, используют Structured Query Language.
Structured Query Language (т.е. SQL; переводится как «язык структурированных запросов») – это язык, используемый для взаимодействия с базами данных. Его можно использовать для создания таблиц, а также вставки, изменения, удаления и поиска данных.
SQL совместим с различными базами данных, в число которых входят SQLite, MySQL и т.д. Операторы языка SQL должны заканчиваться точкой с запятой (т.е. символом «;»).
Команды SQL, как правило, пишутся заглавными буквами, но это необязательно. Многие предпочитают использовать заглавные буквы, потому что это делает код более читаемым. Как и в других базах данных на SQLite используются команды CREATE TABLE, INSERT, DELETE, SELECT и другие.
___________________________
https://habr.com/ru/post/471822/ Дата доступа: 21.09.2020
Анализ данных
Сбором и анализом всех данных, получаемых с датчиков в системе «Умный дом», как правило занимается контроллер или сервер умного дома. В зависимости от тех или иных событий, происходящих в доме или снаружи его, контроллер отправляет команды устройствам-исполнителям.
Рассмотрим особенности анализа данных программного обеспечения Home Assistant.
В данном программном обеспечении существует пакет для автоматизации работы отопления:
- Автоматическая система контроля заданной температуры в комнате/доме, учитывает температуру на улице - если температура на улице поднялась - нагреватель выключается, и автоматически включится если температура опустилась ниже заданной.
- Есть режим Отсутствия в доме - когда никого нет в доме, задается низкая температуры в помещении, по приходу - температура возвращается назад к заданной.
- Отдельные температуры для дня/ночи.
Кроме температуры в помещении можно запрограммировать включение и выключение увлажнителя, исходя из данных, полученных с датчика влажности.
Что касается датчиков движения, их работу очень часто комбинируют с устройствами управляющими освещением. Это обусловлено удобством автоматического включения/выключения света при входе в помещение.
Для правильной автоматизации освещенности помещения, нужно учитывать некоторые варианты развития событий.
Во-первых, если освещенность в комнате нормальная, то свет включаться не должен. Для анализа количества света в помещении можно использовать среднее значение освещенности в 50 лк. Исходя из среднего значения составим таблицу нормальной освещенности для каждого помещения среднестатистического дома/квартиры.
Таблица 5 – Нормы
освещенности для жилых помещений Тип помещения Уровень освещенности, лк Максимальное значение коэффициента
пульсации, % Жилые комнаты 150 20 Кухня 150 25 Ванная 50 - Коридор 50 - Туалет 50 - Вестибюль/Прихожая 30 - Лестницы 20 - Для автоматизации освещения
должны быть задействованы объекты:
Описываемые действия:
- Включение освещения по датчику движения, если освещенность помещения ниже нормы, указанной в таблице 5.
- Отключение освещения через 3 минуты после окончания обнаружения движения датчиком.
- Отключение освещения через 3 минуты после включения выключателя (на случай, если свет был включен с выключателя, но в помещении не было обнаружено движение).
В случае, если мы работаем с данными, полученными от датчиков горючих газов и дыма, то при обнаружении дыма или при превышении каких либо опасных веществ в воздухе, должна сработать служба оповещения, обычно это либо звуковой сигнал в самом доме и сообщение, отправленное на клиент со всей подробной информацией о происходящем в доме.
ЗАКЛЮЧЕНИЕ
При выполнении работы были рассмотрены главные этапы создания системы «Умный дом». Были проведены теоретические и практические исследования подключения и взаимодействия оборудования данной системы.
Итоги выполненной работы:
- Подобрано подходящее оборудование для системы «Умный дом».
- Рассмотрено взаимодействие датчиков и контроллера.
- Изучены и выбраны средства и методы подключения оборудования умного дома.
- Рассмотрена программная часть системы.
- Изучены и выбраны средства и методы взаимодействия оборудования системы «Умный дом».
- Подобран способ хранения данных.
- Рассмотрены анализ и обработка данных в системе.
Актуальность темы обусловлена быстрым развитием и внедрением средств автоматизации в любые сферы жизни человека.