Анализ существующих API облачных управления умного дома 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Анализ существующих API облачных управления умного дома



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

- AWS IoT (Amazon)

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

 AWS IoT SDK для устройств

Платформа AWS IoT предоставляет SDK для простого и быстрого подключения аппаратных устройств и мобильных приложений. AWS IoT SDK для устройств обеспечивает подключение и аутентификацию ваших устройств, а также обмен сообщениями с платформой AWS IoT по протоколам MQTT, HTTP или WebSockets. Пакет SDK для устройств поддерживает языки C, JavaScript и Arduino и содержит клиентские библиотеки, руководство для разработчиков и руководство по переносу для производителей. Можно воспользоваться альтернативным SDK с открытым исходным кодом или написать собственный SDK.

-Google Cloud Platform IOT Solutions

Облачная платформа предоставляет возможности, которые можно использовать в своих интересах для ежедневных операций:

Google Cloud Monitoring предоставляет панели мониторинга и оповещения для облачных приложений. На устройствах Linux можно установить Cloud Monitoring agent, который является Stackdriver на основе системы агента. Кроме того, можно использовать API Monitoring Cloud с нужными метриками.

Google Cloud Logging собирает и хранит журналы, таким образом, можно просматривать, искать, фильтровать и экспортировать информацию. Использование Cloud Logging может сэкономить много времени и усилий по сравнению с построением решения на заказ.

Google Cloud audit logs охватывает администрацию и доступ к данным деятельности, связанной с Cloud Platform, сохраняя их в неизменных журналах, которые могут быть использованы для аудита.

 


2.Постановка задачи
Целью данной выпускной квалификационной работы является разработка программно-аппаратного комплекса на базе концепции «интернет вещей» для автоматизации управления домашними электроприборами.

Перечень задач для реализации:

1. Анализ предметной области и разработка технического задания.

2. Обоснование программных и аппаратных средств разработки ИС.

3. Разработка аппаратной части рабочего модуля.

4. Разработка программной части рабочего модуля.

5. Разработка документации на ИС.


Обзор и обоснования выбора инструментария

Аппаратный инструментарий  

Arduino – это печатная плата с собственным процессором и памятью(микроконттроллер). Также на ней имеется с десяток контактов, к которым можно подключать всевозможные датчики, сенсоры. Все это управляют посредством алгоритма, написанного разработчиком. Существует специальна IDE, которая поставляется в комплекте с аппаратной частью. Хорош тем, что можно беспрепятственно добавлять новые компоненты, при этом расширяя устройство. Производится несколько вариантов: Uno – стандартный тип, подходит почти для всего, Leonardo - Аналог Arduino Uno с изменённым USB-UART интерфейсом, Yun - Платформа объединяющая Arduino и неограниченные возможности Linux для работы с интернетом, Mega - Расширенная версия Arduino с гораздо большим количеством контактов, памяти и serial-портов, mini - Компактная модификация Arduino Uno без собственного USB-порта, micro - Эквивалент Arduino Leonardo в компактном корпусе и другие. Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика. С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. По умолчанию — языком программирования является C++ с некоторыми особенностями, помогающими в разработке. Но также существует множество прошивок, которые решают этот вопрос. вышеупомянутая Arduino, привлекательная своей ценой, соотношением компактности к количеству выходов/выходов, отсутствием лишних датчиков типа wi-fi. Arduino Uno построена на базе микроконтроллера Atmega328.

Платформа имеет 14 цифровых ввода/ выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей.

Raspberry Pi

Raspberry – в отличие от Arduino, носит гордое имя микрокомпьютера, то есть имеет на себе уже полноценную операционную систему, обладает более высокими техническими характеристиками. Вопреки ожиданиям автором, Pi создавался как обучающий инструмент для уроков информатики, возымел колоссальный успех в сообществе, всего за 3 года было продано более 4.5 миллионов устройств.Насчитывает в своем арсенале множество моделей: A, A+, B, B+, 2B, Zero, 3B, Zero W, отличающихся между собой техническими характеристиками. Выпущено несколько поколений Raspberry-Pis. Первое поколение (Raspberry Pi 1 Model B) было выпущено в феврале 2012 года. За ним последовала более простая и недорогая модель A. В 2014 году было представлено на обозрение устройство с улучшенным дизайном в Raspberry Pi 1 Model B +. Эти платы имеют размеры приблизительно с кредитной карточкой и представляют собой стандартный форм-фактор. Год спустя были выпущены улучшенные модели A + и B +. В апреле 2014 года для встроенных приложений был выпущен «вычислительный модуль», а в ноябре 2015 года для США был выпущен Raspberry Pi Zero с меньшими размерами и ограниченными возможностями ввода / вывода (I / O) и общего назначения ввода / вывода (GPIO). $ 5. Raspberry Pi 2, в который добавили больше оперативной памяти, был произведен в феврале 2015 года. Raspberry Pi 3 Model B, представленный в феврале 2016 года, комплектуется встроенными WiFi, Bluetooth и USB. По состоянию на январь 2017 года Raspberry Pi 3 Model B является новейшей моделью Raspberry Pi. Цена на Pi варьируется от 5 до 35 долларов США. По состоянию на 28 февраля 2017 года был запущен Raspberry Pi Zero W, идентичный Raspberry Pi Zero, но имееющий функции Wi-Fi и Bluetooth Raspberry Pi 3 за 10 долларов США.

Все модели оснащены системой Broadcom на чипе (SoC), которая включает в себя ARM-совместимый центральный процессор (CPU) и встроенный графический процессор (GPU, VideoCore IV). Частота процессора варьируется от 700 МГц до 1,2 ГГц для Pi 3 и памяти на борту от 256 МБ до 1 ГБ ОЗУ. Карты Secure Digital (SD) используются для хранения операционной системы и программной памяти в форматах SDHC или MicroSDHC. Большинство плат имеют от одного до четырех разъемов USB, HDMI и композитный видеовыход, а также 3,5-мм разъем для аудио. Выход более низкого уровня обеспечивается несколькими выводами GPIO, которые поддерживают общие протоколы, такие как I2C. У B-моделей есть 8P8C Ethernet-порт, а у Pi 3 и Pi Zero W есть Wi-Fi 802.11n и Bluetooth. Фонд предоставляет Raspbian, дистрибутив Linux для Debian, для загрузки, а также сторонние Ubuntu, Windows 10 IOT Core, RISC OS и специализированные медиацентры. Он поддерживает Python и Scratch в качестве основного языка программирования с поддержкой многих других языков.

Обоснование выбора

Arduino - это материнская плата микроконтроллера. Микроконтроллер - это простой компьютер, который может запускать одну программу за раз, снова и снова. Он очень прост в использовании. Плата Arduino лучше всего подходит для простых повторяющихся задач: открытие и закрытие двери гаража, чтение температуры наружного воздуха и отчетность в Twitter. Платы Arduino представляют собой микроконтроллеры, а не полные компьютеры. Они не запускают полную операционную систему, а просто выполняют написанный код, поскольку их прошивка интерпретирует его. Вы теряете доступ к базовым инструментам, предоставляемым операционной системой, но, с другой стороны, проще выполнять простой код проще, и это достигается без накладных расходов операционной системы. Главная цель платы Arduino - это взаимодействие с датчиками и устройствами, поэтому она отлично подходит для аппаратных проектов, в которых вы просто хотите, чтобы вещи реагировали на различные показания датчиков и ручной ввод. Это может показаться не таким уж большим, но на самом деле это очень сложная система, которая позволяет лучше управлять вашими устройствами. Это отлично подходит для взаимодействия с другими устройствами и приводами, где полная операционная система будет избыточной для обработки простых операций чтения и ответа.

Raspberry Pi - компьютер общего назначения, обычно с операционной системой Linux, и возможность запускать несколько программ. Его сложнее использовать, чем Arduino. Для всех целей и задач, Малина Pi является полностью функциональным компьютером. Он имеет все атрибуты компьютера, с выделенным процессором, памятью и графическим драйвером для вывода через HDMI. Он даже запускает специально разработанную версию операционной системы Linux. Это упрощает установку большинства программ для Linux и позволяет с легкостью использовать Pi в качестве работающего медиа-стримера или эмулятора видеоигр. Хотя Pi не предлагает внутреннее хранилище, вы можете использовать карты SD в качестве флэш-памяти для всей системы, что позволяет вам быстро заменять различные версии операционной системы или обновления программного обеспечения для отладки. Из-за независимого сетевого подключения устройства вы также можете настроить его для доступа через SSH или передать файлы на него с помощью FTP. Raspberry Pi лучше всего использовать, когда вам нужен полноценный компьютер: вождение более сложного робота, выполнение множества задач, интенсивные вычисления (как для биткойна или шифрования).

Питание

Эти две системы имеют очень разные требования к питанию. Pi требует постоянной мощности 5 В, чтобы оставаться включенной, и, кроме того, ее необходимо отключить с помощью программного процесса, такого как традиционный компьютер. Arduino, с другой стороны, начинает выполнять код при включении и останавливается, когда вы вытаскиваете вилку. Чтобы добавить функциональность, вы либо подключаетесь непосредственно к контактам на плате Arduino, либо называете «экраны» на верхней части базового блока. Существуют сотни экранов, каждый из которых предназначен для выполнения другой задачи, сопряжения с определенными датчиками и работы друг с другом для создания полного блока управления. Портативность - проблема с Pi, поскольку для этого требуется больше, чем просто подключение нескольких батарей типа AA. Устройство требует, чтобы вы установили источник питания и некоторое дополнительное оборудование, чтобы обеспечить его постоянной потребляемой мощностью. Процесс на Arduino немного проще, так как вам просто необходим аккумулятор, который поддерживает напряжение выше определенного уровня, а также базовый экран для управления питанием.

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

Сеть

Pi имеет встроенный Ethernet-порт, который обеспечивает легкий доступ к любой сети с небольшими настройками. Также нетрудно достичь беспроводного Интернета на Pi, вам просто нужно купить USB Wi-Fi и установить драйвер. После подключения вы можете использовать ОС для подключения к веб-серверам, обработки HTML-кода или публикации в Интернете. Вы даже можете использовать его как VPN или сервер печати.

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

Датчики

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

Основываясь на всем вышесказанном выбор делается в пользу Arduino, которая обладает более гибкой настройкой и совмещением сенсоров, меньшими размерами, экономичной тратой энергии. В Raspberry-Pi присутствуют слишком много ненужных деталей, которые только усложнят разработку.

3.2Программный инструментарий

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

Язык программирования С

Язык «С» очень прочно укрепил свое положение в мире программирования за последние годы. «С» – компилируемый язык, который в 1969-1973 годах разработал Деннис Ричи. Изначально он разрабатывался для того чтобы реализовать операционную систему Unix, но позже его перенесли и на другие платформы. Успеху языка «С» способствовало в значительной мере то, что его конструкции очень близки к типичным машинным инструкциям, а это делает возможным его применение во многих проектах – начиная от операционных систем и заканчивая прикладным программным обеспечением для множества устройств и встраиваемых систем.

Самое главное отличие языка «С» — это его минимализм. Это является следствием цели, с которой он создавался: облегчить написание больших программ и уменьшить количество допускаемых ошибок. Уникальность его в том, что это стал первый язык высокого уровня, который потеснил ассемблер в разработке системного программного обеспечения. Есть довольно распространенное ошибочное мнение, что «С» — язык низкого уровня из-за близости его работы к реальным устройствам. Но это не так – в строгой классификации это высокоуровневый язык. Он является одним их самых популярных и привлекательных языков. В мире свободного программирования его реализации можно найти на огромном количестве аппаратных платформ.

Однако, у него есть и ряд недостатков. Для начала, у него довольно высокий порог вхождения – данный язык будет труден для изучения новичкам, начинающим программировать с нуля. Так же, разработанный в среде хакеров, он порождает аналогичный стиль программирования – небезопасный, стимулирующий написание запутанного кода, как его еще называют в среде программистов — write-only language.

Синтаксис «С» оказал значительное влияния на появление других языков, таких как Objective-C, «C++», Java и «C#». Так, «С++» напрямую произошел от «С», но дальше они стали развиваться независимо друг от друга. Этим можно объяснить их некоторую несовместимость.

«С» так же является языком компилируемым и статически-типизированным. Автором языка является Бьерн Страуструп, который в 1980 усовершенствовал язык «С» под собственные нужды, а в 1985 увидело свет его первое издание.

Основное отличие от «С» — в нем реализуется поддержка объектно-ориентированного и обобщенного программирования. Помимо этого, обеспечиваются самые важные свойства объектно-ориентированного программирования. Это инкапсуляция, наследование и полиморфизм. Произошло это за счет добавления новых возможностей – классов. Так же в «С» еще появились перезагрузка функций и операторов, наследование классов и пользовательский контроль над управлением памятью.

Главные достоинства языка «С» — высокая вычислительная производительность, возможность расширения языка, наличие шаблонов, которые дают возможность построения обобщенных алгоритмов и контейнеров, а самое основное – доступность. Существует большое количество разнообразной учебной литературы по «С++»на различных языках. Он, как и «С» имеет высокий порог вхождения, но по сравнению с другими языками подобного типа обладает наиболее широкими возможностями.



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 79; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.153.38 (0.016 с.)