1. Понятие цифрового инжиниринга
Скачать 2.38 Mb.
|
1. Понятие цифрового инжиниринга. Инжиниринг – творческое применение научных принципов при проработке или проектировании сооружений, механизмов, устройств, производственных процессов или работ. Инжиниринг - искусство или наука извлечение практической выгоды из чистых научных знаний, таких как физика или химия, при проектировании сооружений, зданий, горных разработок, кораблей и химических заводов. Инжиниринг – это особая деятельность связанная с созданием и эксплуатацией предприятий и объектов инфраструктуры. Инжиниринг – формирует научные, технологические и управленческие основы разработки и реализации инвестиционных проектов. 2. Этапы проекта по созданию производства. 1) Инвестиционный консальтинг IC 2) Предпроектная проработка FS 3) Конструирование и проектирование E 4) Поставки P 5) Строительно – монтажные работы C 6) Управление инвестиционным проектом M 7) Пуско-наладка, обучение персонала и сдача объекта 2TC 3. Ресурсы предприятия, затрачиваемые на создание нового производства. 4. Типовые документы при создании производства. Два признака типового документа: им пользуются часто, он пишется по шаблону. Любой член команды должен уметь читать и пользоваться типовым документом, а руководитель проекта должен уметь из разрабатывать. Напрмер: Договоры, тех. Задания, тех. Требования, тех. Условия, протоколы, отчеты, бизнес планы, бюджеты , сметы, сетевые графики, планы, письма. EPCM –международная форма заключения договоров на генподряд. Основное отличие EPC от EРСМ заключается в том, что в EPCM ответственность распределяется между заказчиком и исполнителем. Основные характеристики EPCM-контрактов: EPCM-подрядчик проводит строительные и закупочные работы, найм персонала, осуществляет управление подрядными организациями, то есть управляет проектом от момента проектирования до сдачи готового объекта заказчику. 5. Промышленные революции. Индустрия 4.0. Индустрия 1.0 – конец 17 века, первое использование машин в производстве. Индустрия 2.0 – начало 20 века, массовое производство. Индустрия 3.0 – начало 21 века, вычисления и автоматизация для дополнения человека. Индустрия 4.0 – сегодня, замещение человека, роботизация, ИИ. Преимущества Четвертой промышленной революции: повышение производительности, большая безопасность работников за счет сокращения рабочих мест в опасных условиях труда, повышение конкурентоспособности, принципиально новые продукты и многое другое. Четвертая промышленная революция может привести к беспрецедентному расширению пропасти между богатыми и бедными. Количество инвестиций в проекты, которые занимаются искусственным интеллектом, растет, поскольку их технологии способны на порядок снизить компаниям издержки. Но побочным эффектом станет стремительное сокращение рабочих мест. Умное производство. В будущем заводы и фабрики смогут совершенствоваться и модернизироваться самостоятельно, то есть без или с минимальным участием человека. Бизнес-процессы, логистика, производственные циклы будут постоянно оптимизироваться в автономном режиме. Пример такого умного завода — Siemens Electronic Works в Амберге, Германия. Участие человека здесь сведено к минимуму, а умная система самостоятельно следит за функционированием 1,6 млрд компонентов. Она же устанавливает нормы производства и управляет логистическими потоками. Интернет вещей (IoT). Умные устройства, сенсоры и датчики подключаются к IoT-платформам, которые анализируют поступающую извне информацию. Результаты анализа служат основой для дальнейшего планирования работы отдельных элементов и систем, частью которых они являются. IoT активно используется уже сейчас — на производстве, в логистике, мореходстве и других отраслях. Большие данные и аналитика big data. Четвертая промышленная революция невозможна без оперативной обработки огромного количества данных, поставляемых тысячами сенсоров и умных устройств. Так, лишь одно судно компании Maersk Group, оснащенное умными датчиками, ежедневно передает около 2 ТБ данных. На умном корабле отслеживают погодные условия, режим работы двигателей, маршруты соседних судов и многие другие факторы. 6. Цифровизация машиностроения и металлообработки. 7. Текущие технологические тренды. Технологический тренд – это актуальное и потенциально перспективное направление развития технологии в какой-либо области. Виртуальный офис и ЦРМ (цифровые рабочие места). Во всем мире в течение последних 1,5 лет произошел глобальный переход на незапланированную дистанционную работу, а сейчас этот тренд продолжается. Отдельно стоит отметить компании, предоставляющие услуги видеосвязи (Zoom, Cisco, Microsoft), ПО для совместной работы (Atlassian, Asana, Smartsheet), электронные подписи (DocuSign) Облачные вычисления. Говоря простым языком, облачные вычисления – это предоставление различных услуг через Интернет. Сюда входит хранение данных, различные программы и приложения для совместного пользования, серверы, базы данных и т.д. Это удобный и все более популярный вариант для компаний, который совмещает в себе экономию затрат, повышение производительности, скорости и эффективности. Самая распространенная часть облачных вычислений – это облачные хранилища, которыми пользуется почти каждый. Технологии 5G. В то время как технологии 3G и 4G позволили выходить в Интернет, использовать различные услуги, управлять данными, увеличивать пропускную способность для потоковой передачи на различных сервисах (YouTube, Twitch, Spotify и т.д.), ожидается, что услуги 5G произведут революцию в нашей жизни путем предоставления услуг, основанных на передовых технологиях, в том числе AR и VR, речь о которых пойдет ниже, а также с облачными игровыми сервисами, такими как Google Stadia, NVidia GeForce Now. Технологии VR и AR. Следующая выделяющаяся технологическая тенденция - виртуальная реальность (VR), дополненная реальность (AR) и расширенная реальность (ER). VR погружает пользователя в среду, в то время как AR дополняет ее. Хотя до сих пор эта технологическая тенденция использовалась в основном для игр, но уже сейчас она применяется и в обучении, и в моделировании. ИИ и машинное обучение. ИИ пока больше известен по таким вещам, как распознавание изображений и речи, личные помощники для смартфонов, ускорение рутинных процессов, подбор персональных рекомендаций и т.д. Машинное обучение – часть ИИ, которая также внедряется во все отрасли промышленности, увеличивая продуктивность и создавая большой спрос на услуги внедрения и специалистов. А сложные модели машинного обучения помогают компаниям эффективно обнаруживать закономерности, выявлять аномалии, делать прогнозы и принимать решения, а также генерировать аналитические данные - и они все чаще становятся ключевыми факторами эффективной работы организации. Робототехника. Интернет вещей (IoT). Это вещи, которые конструируются с возможностью подключения к Wi-Fi, что означает возможность их подключения к Интернету. Блокчейн. У большинства людей эта технология неразрывно связана с криптовалютами, хотя на самом деле блокчейн предоставляет безопасность, которая полезна во многих других аспектах. Говоря простым языком, эту технологию можно описать как данные, в которых можно только добавлять новые элементы, но не изымать или изменять. Онлайн-обучение. Big data. Обработка огромного количества данных, поставляемых тысячами сенсоров и умных устройств. Освоение космоса. Еда будущего. Постепенно мы будем уходить от привычных традиционных продуктов питания в пользу биологических, искусственных и органических продуктов. Насекомые с высоким содержанием белка. Водоросли, грибы и гипоаллергенные орехи. Заменители мяса на растительной основе. Выращенное в лаборатории мясо. Возобновляемые источники энергии. Двигатели на альтернативном топливе. Другие виды альтернативной энергетики. Разработчики батарей для электромобилей. Зарядные станции для электромобилей. Кибербезопасность. Медицинские технологии. 3D-печать. 8. Карта базовой цифровизации. Внедрение мониторинга промышленного оборудования и автоматизированных рабочих мест; Анализ эффективности оборудования; Интеграция с другими IT-системами предприятия; Управление и контроль производством. Внедрение MES-систем; Мониторинг параметров тех.процессов для уменьшения брака; Мониторинг энергопотребителей; Мониторинг и контроль инструмента и процесса сборки; Внедрение автоматизированной системы тех.обслуживания. Внедрение EAM-системы; Использование ИИ для умного контроля тех. процессов и предиктивное тех.обслуживание. 9. Структура систем автоматизированного управления. Типовая структура АСУ ТП состоит из трех уровней. Нижний уровень. Так называемый полевой уровень - это контрольно-измерительные приборы и исполнительные механизмы (всевозможные датчики, электроприводы, и т.д.) Устройства нижнего уровня собирают информацию о физических параметрах системы, о ходе технологических процессов, преобразуют информацию в электрические сигналы и передают ее на следующий уровень иерархической структуры АСУ ТП. Средний уровень. Это уровень контроллеров (PLC), которые устанавливаются внутри шкафов автоматизации. Получая информацию от нижнего уровня, контроллеры передают ее на верхний уровень. От контроллеров нижний уровень автоматически получает управленческие команды с помощью программ и алгоритмов, которые были заложены в контроллер во время разработки прикладного программного обеспечения. Алгоритмы исполняются по следующей схеме: прием информации - ее обработка - передача команд управления. Контроллеры функционируют без участия человека. Верхний уровень. Верхний уровень общей структуры АСУ представляет собой систему серверов, компьютеров, мониторов, на которых визуализируются все изменения параметров работы технологических процессов, аварийное срабатывание оборудования, действия персонала. Параметры, отображающиеся на экранах мониторов, программируются в соответствии с потребностями производства и всегда являются индивидуальными. Это уровень мониторинга (диспетчеризации), в работе которого принимают участие операторы. Оборудование и программное обеспечение осуществляет сбор, хранение, выдачу необходимой информации по запросу. На этом уровне возможно два варианта осуществления контроля с участием человека: 1)контроль локального агрегата - чаще используют сенсорные панели, которые устанавливаются в шкафах автоматики; 2)контроль за системой агрегатов - используют SCADA, (диспетчерское управление и сбор информации) на базе ПК. 10. Промышленный «Интернет вещей». Существо понятия «Промышленный Интернет вещей» (Industrial Internet of things, IIoT) IIoT предназначен для корпоративного/отраслевого применения в системах объединенных компьютерных сетей и подключенных к ним производственных объектов со встроенными датчиками и ПО для сбора и обмена данными с возможностью удаленного контроля и управления в автоматизированном режиме без участия человека. Передача функции управления и принятия решения интеллектуальным системам приводит к 4-й промышленной революции (Индустрия 4.0). При этом происходит выход за границы одного предприятия с перспективой объединения в глобальную промышленную сеть вещей и услуг. Для того чтобы быстро получить максимум информации, нужно собирать данные, передавать их через проводные или беспроводные сети, анализировать их с помощью специализированного ПО и предоставлять инженерам, которые могут получить к ним доступ с помощью смартфонов, планшетных ПК или компьютеров. Ключевые признаки IIoT. • Вертикальная интеграция процессов производственных систем внутри предприятия. • Горизонтальная интеграция предприятий до уровня производственных систем. • Управление полным жизненным циклом (от проектирования до вывода из эксплуатации) продуктов производства через их «цифровых двойников» (удаленный мониторинг, предсказание состояния и управление). • Переход на сервисные модели использования традиционных продуктов промышленного производства. Отличительные особенности IIoT даны на рисунке, его «Цифровые двойники» рассматриваются на рисунке. Создание цифрового электронного двойника процесса производства (производственной системы) приводит к значительному синергетическому эффекту: повышению качества изделий, росту производительности, увеличению прибыли. Эффективным инструментом для проектирования производственных систем является интеграция технологических, проектных, расчетных и эксплуатационных процессов на базе CASE-технологии (Computer-Aided Software Engineering), которая представляет собой набор инструментов и методов программной инженерии. Такой подход позволяет максимально автоматизировать процесс разработки, обеспечивает отсутствие ошибок и простоту в обслуживании программных продуктов. При проектировании производственных систем используются два принципиально разных подхода: структурный и объектно-ориентированный. Структурный подход предполагает декомпозицию поставленной задачи на отдельные функции. В свою очередь, функции также разбиваются на подфункции, задачи, процедуры. В результате получается упорядоченная иерархия функций и передаваемой информации между функциями. Развитие программного обеспечения осуществляется в основном не за счет замены имеющихся модулей на их более совершенные версии, а за счет расширения и включения в программу новых модулей, отражающих различные решения, принимаемые в ходе вычислительного эксперимента. Объектно-ориентированный подход (ООП) обеспечивает структурирование системы и упрощение ее программной реализации: производство представляется в виде совокупности объектов, взаимодействующих друг с другом. В объектноориентированном подходе используются несколько базовых принципов: абстракция (сосредоточение на важнейших аспектах приложения), инкапсуляция (отделение внешних аспектов объекта от деталей внутренней реализации), полиморфизм (объединение данных и поведения), наследование (совместное использование структур данных на самых разных уровнях), выделение сущности объекта. К отличительным чертам ООП относятся прозрачность и возможность доступа к деталям реализации конкретного метода и алгоритма для разработчика и пользователя, открытость и возможность дополнения библиотеки новыми процедурами. Заключительный этап реализации IIoT требует наибольшего количества затрат, так как для того, чтобы правильно подойти к применению IIoT, специализированное ПО для анализа данных должно иметь возможность работать с большими объемами этих данных и представлять из себя интегрированную платформу, собирающую и анализирующую информацию, поступающую от различных источников. Сегодня существует несколько новых видов платформ: • PaaS – бизнес-платформа как услуга; сотрудники заказчика работают либо из браузера, либо с помощью удаленного рабочего стола, расположенного на сервере облака; • SaaS – конкакт-центр, как услуга – создание оператора на любом устройстве, подключенном к Интернету. Основной сегмент сегодня – платформа IaaS (инфраструктура как сервис). Это обусловлено достаточной развитостью и отлаженностью механизма обеспечения услуги. 11. Виды бизнес платформ IoT. Заключительный этап реализации IIoT требует наибольшего количества затрат, так как для того, чтобы правильно подойти к применению IIoT, специализированное ПО для анализа данных должно иметь возможность работать с большими объемами этих данных и представлять из себя интегрированную платформу, собирающую и анализирующую информацию, поступающую от различных источников. Сегодня существует несколько новых видов платформ: • PaaS – бизнес-платформа как услуга; сотрудники заказчика работают либо из браузера, либо с помощью удаленного рабочего стола, расположенного на сервере облака; • SaaS – конкакт-центр, как услуга – создание оператора на любом устройстве, подключенном к Интернету. Основной сегмент сегодня – платформа IaaS (инфраструктура как сервис). Это обусловлено достаточной развитостью и отлаженностью механизма обеспечения услуги. Инет PaaS — это один из способов предоставления клиенту готовой программной среды. Элементами PaaS является аппаратное обеспечение, операционная система, СУБД (система управления базой данных), промежуточное ПО, инструменты тестирования и разработки. Зачастую, PaaS используется программистами, которые сообща работают над различными проектами. В этом случае все или часть разработчиков получают доступ к единой среде разработки удаленно. Соответственно, все они нуждаются в достаточном количестве системных ресурсов, а также в инструментах совместной работы. PaaS позволяет распределять задания, контролировать и исправлять ошибки, работать с различными версиями проекта. В таких средах есть инструменты обмена сообщениями и комментирования. SaaS используется разработчиками программных платформ с предоставлением к ним удаленного доступа. Отличным примером SaaS может служить Microsoft Office 365. Корпорация Microsoft предоставляет по модели SaaS доступ клиентам к MS Office Suite (Office Web Apps) наряду с SharePoint Server, Exchange Server и другими сервисами и приложениями. SaaS обычно означает отсутствие необходимости установки пакета программ (как в случае с обычным Microsoft Office). Соответственно, нет необходимости тратиться на установку, обновление и обслуживание оборудования и программ, которые работают на этом оборудовании. При этом с SaaS может работать сразу несколько пользователей. Плата обычно снимается в виде абонентской платы (в случае Microsoft Office 365), или же на основе объема операций. Техническая поддержка ложится на плечи разработчика SaaS-платформы, от пользователя не требуется никакого участия. Достоинствами SaaS перед стандартной моделью работы с лицензионным ПО являются отсутствие необходимости разовой оплаты лицензии. Затраты в этом случае могут быть весьма солидными. Пользователь может спокойно работать в среде выбранной программной платформы, не беспокоясь ни о чем другом. IaaS – в этом случае поставщик услуги предоставляет в аренду вычислительные ресурсы. Это может быть совокупность виртуальных машин, хранилищ данных, сетевых элементов различных типов. При помощи IaaS пользователь получает возможность быстро развертывать копии ОС, запуская виртуальные копии ряда программных пакетов. В этом случае нет необходимости развертывать собственную сетевую инфраструктуру. Все необходимое предоставляется поставщиком IaaS. При этом такая среда практически всегда является гибкой и масштабируемой. IaaS зачастую используется ИТ-специалистами различных сфер (банковская, телекоммуникационная и т.п.). 12. Структура уровня устройств (device layer), протокол MQTT. Нижний уровень. Уровень оборудования (входов/выходов- Input/Output-level). Это уровень датчиков, измерительных устройств, контролирующих управляемые параметры, а также исполнительных устройств, воздействующих на эти параметры процесса, для приведение их в соответствие с заданием. На этом уровне осуществляется согласование сигналов датчиков с входами устройства управления, а вырабатываемых команд с исполнительными устройствами. Средний уровень. Уровень управления оборудованием - Control level. Это уровень контроллеров (ПЛК-PLC, Programable Logic Controller). ПЛК получает информацию с контрольно-измерительного оборудования и датчиков о состоянии технологического процесса и выдает команды управления, в соответствии с запрограммированным алгоритмом управления, на исполнительные механизмы. Верхний уровень. Уровень промышленного сервера, сетевого оборудования, уровень операторских и диспетчерских станций. На этом уровне идет контроль хода производства: обеспечивается связь с нижними уровнями, откуда осуществляется сбор данных, визуализация и диспетчеризация (мониторинг) хода технологического процесса. Это уровень HMI, SCADA. На этом уровне задействован человек, т.е. оператор (диспетчер). Он осуществляет локальный контроль технологического оборудования через так называемый человеко-машинный интерфейс (HMI - Human Machine Interface). К нему относятся: мониторы, графические панели, которые устанавливаются локально на пультах управления и шкафах автоматики. Для осуществления контроля за распределенной системой машин, механизмов и агрегатов применяется SCADA (Supervisory Control And Data Acqusition - диспетчерское управление и сбор данных) система. Эта система представляет собой программное обеспечение, которое настраивается и устанавливается на диспетчерских компьютерах. Она обеспечивает сбор, архивацию, визуализацию, важнейших данных от ПЛК. При получении данных система самостоятельно сравнивает их с заданными значениями управляемых параметров (уставками) и при отклонении от задания уведомляет оператора с помощью тревог, позволяя ему предпринять необходимые действия. При этом система записывает все происходящее, включая действия оператора, обеспечивая контроль действий оператора в случае аварии или другой нештатной ситуации. При реализации технологической архитектуры IIoT находит широкое применение ряд протокол MQTT (Message Queue Telemetry Transport) – упрощенный протокол сетевого уровня для обмена сообщениями между устройствами. Этот протокол разработан для преодоления проблем, связанных с подключением быстро растущего числа датчиков, микрокомпьютеров, приводов, телефонов, планшетов. В настоящее время MQTT наиболее распространенный протокол для организации IIoT - инфраструктуры. Описание протокола MQTT. MQTT устроен по принципу издатель/подписчик (publisher/subscriber): издатель (устройства типа publishers) отправляет сообщение, которое публикуется в централизованном сервисе (брокере сообщений), а подписчик (устройства типа subscriber) получает сообщение из брокера. Для использования брокера MQTT необходимо пройти процедуру подписки на определенные темы публикуемых сообщений. Эксперименты показывают, что протокол обладает незначительными накладными расходами на стороне устройства, благодаря чему расход энергии аккумуляторной батареи снижается и увеличивается количество передаваемых в единицу времени сообщений. Протокол MQTT обслуживает сбор данных с устройств. Как следует из названия этого протокола, основное его назначение – дистанционный мониторинг. Его задача состоит в сборе данных от множества устройств и передаче этих данных в IT инфраструктуру. Он предназначен для крупных сетей, содержащих небольшие устройства, которыми нужно управлять из облачной сети, и обеспечивает лишь возможность передачи между устройствами, но не распределяет данные по многим получателям. Для MQTT обычно используется архитектура звездообразной сети. Все устройства подключены к серверу концентратора данных. 13. «Облачные» технологии и их структура (ethernet модули, беспроводные сенсорные модули, ПЛК, контроллеры IIoT)/ Развитие «облачных» технологий Облако – это динамично расширяемая информационная система, при необходимости предоставляющая потребителям IT-сервисы с заданными характеристиками и позволяющая контролировать качество предоставления услуг согласно заложенным метрикам. Метрики для потребляемых ресурсов и предоставляемых сервисов критичны для обеспечения контроля и автоматизации ряда функций «облачной» инфраструктуры. «Облачные» шлюзы являются технологией, которая может быть использована для более удобного представления «облака» клиенту. При наличии быстрой связи с «облаком» клиент может даже не замечать, что работает не с локальными данными у себя на компьютере, а с данными, хранящимися, возможно, за много сотен километров от него. В качестве примеров «облачных» технологий целесообразно проанализировать те, что заложены в устройствах компании Advantech. Устройства удаленного ввода-вывода Advantech IoT Wireless Devices WISE- 4000 приближают устройства промышленной автоматики к IT. Обработка данных и их трансляция (data Processing to data Publishing) обеспечивают непрерывное получение данных, необходимых для мобильного мониторинга и контроля. Со встроенной интеллектуальной обработкой и функциями трансляции данных сокращается время, необходимое для подробных и точных отчетов. Ethernet-модули ввода-вывода серии ADAM-6000, ADAM-6100, ADAM-6200 и WISE- 4000/LAN легко интегрируются в сеть, позволяя гибко осуществлять удаленный мониторинг состояния устройств. Модули ADAM-6000 поддерживают Р2Р-соединение и программирование посредством графических логических схем (GCL), а также могут выступать в качестве автономных устройств измерения, управления и автоматизации. Специальная графическая утилита позволяет осуществлять настройку системы в короткие сроки. Серия ADAM-6000 включает в себя: коммуникационные контроллеры, модули аналогового ввода-вывода и модули дискретного ввода-вывода. Модули серий WISE-4200, WISE-4400 и WISE-4600 поддерживают наиболее широко используемые протоколы связи – MQTT и др., обеспечивая интеграцию с системами управления верхнего уровня и платформами для облачных вычислений. На основе беспроводных локальных сетей (Wi-Fi), мобильных сетей и технологии маломощной глобальной вычислительной сети (LPWAN) разработаны три типа беспроводных сенсорных модулей, в частности модули со встроенным датчиком (серия WISE-4200), модули высокой производительности с классом защиты IP65 (серия WISE-4400), а также модули, заряжаемые солнечной энергией (серия WISE-4600). Эти беспроводные сенсорные модули включают функции сбора данных, беспроводной связи и источника питания и предназначены для промышленного и наружного применения. ПЛК Advantech ADAM-3600 реализован на базе процессора Cortex А8, работает под управлением операционной системы реального времени Linux RT 3.12. ПЛК оснащен большим количеством встроенных входов и выходов, а также позволяет подключать дополнительные модули ввода-вывода. Для связи с другими устройствами в промышленной сети контроллер использует протоколы Modbus, DNP3 и др. Реализована поддержка популярных беспроводных технологий передачи данных (WiFi, GPRS, 3G, 4G, Zigbee). ADAM-3600 представляет собой интеллектуальное устройство, которое применяется в основном в нефтяной, газовой промышленности и в системе водоснабжения. Для выполнения задач по доставке, передаче данных к устройствам более высоких уровней, что обычно осуществляется по проводной или беспроводной сети, интеллектуальные сетевые узлы в Интернете вещей могут контролировать решения более низкого уровня. Устройство ADAM-3600 может обслуживать 20 локальных точек ввода-вывода и обеспечивает передачу информации по проводной и беспроводной связи. С его помощью пользователи могут собирать, обрабатывать и распространять информацию от локальных точек. ADAM-3600 имеет встроенную, работающую в режиме реального времени операционную систему и базу данных реального времени, предоставляя её клиентам через открытый интерфейс, и поддерживает различные языки программирования. Устройство предназначено для наружных шкафов управления и, следовательно, в состоянии выдержать высокую температуру летом и низкую зимой. Контроллер содержит целый ряд портов ввода-вывода, а различные их типы обеспечивают разнообразные функции локального ввода-вывода. Это оконечное устройство имеет четыре слота расширения для многоточечных приложений ввода-вывода. Примером компактного модульного контроллера для IIoT является WISE-5580. Он совмещает в себе функции шлюза, сервера и концентратора данных. WISE-5580 имеет 2 последовательных порта, 2 выхода на сеть GbE, 4 USB порта, работает в широком температурном диапазоне от -10 до +60С. Поддерживает подключение HDMI и VGA дисплея. Следует остановиться на достоинствах и недостатках «облачных» вычислений. К достоинствам относятся: • доступ к информации с любого компьютера, подключенного к Интернету; • работа с разных устройств (ПК, планшеты, телефоны и т. п.); • одну и ту же информацию можно просматривать и редактировать одновременно с разных устройств; • если откажет Г1К, планшет, телефон, важная информация не будет потеряна, так как она теперь не хранится в памяти устройств; • используется самая последняя версия программ, и при этом не надо следить за появлением обновлений. Недостатки: • необходимость постоянного соединения с Интернетом; • программное обеспечение и его «кастомизация». Пользователь имеет ограничения в используемом обеспечении и иногда не имеет возможности настроить его под свои собственные цели; • безопасность. «Облако» само по себе является достаточно надежной системой, однако при проникновении в него злоумышленник получает доступ к огромному хранилищу данных. Использование систем виртуализации, в которых в качестве гипервизора используются ядра стандартных ОС (например, Windows), позволяет преодолеть уязвимость системы; • дороговизна оборудования. Для построения собственного «облака» необходимо выделить значительные материальные ресурсы. 14. WiFi модули для интернета вещей. Режимы доступа. Лидером в направлении разработки модулей с поддержкой таких беспроводных интерфейсов, как Wi Fi и Bluetooth является компания Espressif Systems. Она предлагает удобные и недорогие микросхемы с поддержкой вышеперечисленных интерфейсов. Если ранее для создания беспроводного устройства разработчику приходилось иметь дело лишь с голой микросхемой приемопередатчика, то сейчас дела обстоят иначе. Примерами беспроводного решения, при помощи которых можно достаточно быстро сделать полностью работоспособное устройство, являются микросхемы типа ESP32 и ESP8266 от компании Espressif Systems. Данная компания была основана в 2008 году, и лишь только спустя 5 лет представила первую микросхему для Wi-Fi приложений – ESP8089. Спустя год появилось решение ESP8266, которое популярно и по сей день. Отличия между 8266 и 32 в том, что в 8266 отсутствует поддержка Bluetooth, на борту имеется только поддержка Wi-Fi. Также существенная разница в процессоре – почти во всей линейке ESP32 стоят двухядерные 32 битные процессоры Xtensa с разной тактовой частотой (от 600 МГц до 200). В свою очередь, на ESP8266 используется более слабый процессор – одноядерный 32 битный Tensilica с частотой 160 МГц. Также имеются отличия в размере оперативной памяти, числе выводов. ESP8266 представляет собой систему-на-кристалле (SoC или СнК), которая состоит из двух основных доменов: высокочастотного и цифрового. ВЧ-домен включает модуляторы, генераторы, согласующий трансформатор, силовой ключ и схемы фазовой автоподстройки частоты. Таким образом, практически все необходимые элементы для создания беспроводного Wi-Fi-канала, за исключением антенны, уже присутствуют в составе ESP8266. Характеристики приемника и передатчика Wi-Fi представлены в таблице 1. Цифровой домен ESP8266 построен на базе 32-битного RISC-процессора Tensilica L106 с рабочей частотой до 160 МГц. Процессор взаимодействует с памятью и периферией с помощью трех шин: iBus, dBus и AHB. На борту у ESP8266 присутствует 160 кбайт ОЗУ. Взаимодействие с внешним контроллером может осуществляться при помощи интерфейса UART или SPI. Если предполагается, что ESP8266 будет работать автономно, то для хранения пользовательской программы потребуется внешняя Flash-память, которая подключается по SPI. При автономной работе большим плюсом ESP8266 является встроенная периферия: 17 портов ввода-вывода; коммуникационные интерфейсы (UART/SDIO/SPI/I²C/I²S); четыре канала ШИМ; контроллер инфракрасного канала связи (IR); одноканальный 10-битный АЦП Режимы работы: Active – активный режим, в котором общее потребление в первую очередь зависит от потребления ВЧ-домена; Modem-sleep – режим, в котором процессорное ядро остается активным, а Wi-Fi выключается при отсутствии обмена данными (с сохранением соединения). Типовое потребление – 15 мА; Light-sleep – спящий режим, в котором процессор и Wi-Fi периодически включаются и выключаются: сон в течение 300 мс, далее 3 мс бодрствования. Типовое потребление – 0,9 мА; Deep-sleep– режим глубокого сна, в котором передача сообщений по Wi-Fi производится крайне редко. В промежутках сна блок Wi-Fi полностью отключен. Типовое потребление – 20 мкА; Shut down – режим ожидания с полным отключением питания. Типовое потребление – 0,5 мкА. Существует три режима доступа: Станция (STA) – ESP8266 подключается к существующей Wi-Fi сети. В этом случае, при развертывании веб-сервера на микроконтроллере, доступ к веб-страницам осуществляется по IP-адресу, который был выдан существующей Wi-Fi сетью Точка доступа (AP) – ESP8266 создает собственную Wi-Fi сеть и работает как концентратор (простыми словами – роутер, только без подключения к проводной сети). Комбинированный – ESP8266 пытается подключиться к сети, которая была прописана в программе, и если микроконтроллеру это не удается, он переходит в режим точки доступа. 15. Подключение датчиков и исполнительных устройств. В зависимости от версии микроконтроллера ESP8266, существует разное количество цифровых и аналоговых входов/выходов. Так, например, на версии ESP-01 доступно лишь два GPIO (интерфейс ввода/вывода общего назначения – General Purpose Input Output). При помощи данных входов/выходов можно подключить лишь два исполнительных устройства или датчика. Но суть подключения остается такой же. Пример подключения кнопки (вспоминаем, какая кнопка была на лабе (на фотке примерно такая же, суть одинаковая): У нас имеется три пина на кнопке – VCC – питание, GND – ноль и Out – состояние. Соответственно, от ESP-01 нам нужно к пину VCC подвести питание 3.3В (не 5, так как логика работы esp – 3.3 вольта), к пину GND – ноль, тоже от ESP, и пин Out нам нужно подвести к цифровому пину на самой esp (пусть будет GPIO2, смотрим фотку). Также можно подключить обычную тактовую кнопку (не модуль, как был на лабе, а просто кнопку, через стягивающий или подтягивающий резистор на 10 кОм (фотка внизу). В самом модуле этот резистор уже есть, поэтому дополнительно подключать ничего не нужно. Теперь переходим к программной части. Пока что не будем заморачиваться с выводом соответствующих данных в веб-интерфейс, будем выводить в монитор порта в Arduino IDE. Надо запомнить, что в программе для микроконтроллера есть два основных раздела – void setup() и void loop(). Та часть программы, которая находится внутри setup – выполняется только один раз, в момент запуска или перезапуска самого модуля. Часть программы, находящаяся в loop – выполняется по циклу постоянно, начиная с первого оператора, записанного в нем, и дальше вниз по коду. Затем, когда все операции выполнятся, программа снова начинает выполняться с первого оператора в разделе loop. Привожу пример небольшой программы, на которой объясню подключение кнопки. bool btn – это переменная типа Boolean (может иметь состояние true или false (0 или 1). В данную переменную мы записываем текущее состояние кнопки (нажата она или нет). void setup() {… - тот самый раздел (правильнее сказать функция), который выполняется лишь один раз при запуске или перезапуске модуля. Внутри данного раздела написаны две строки. Serial.begin(9600) – нужна для инициализации последовательного соединения с компьютером или любым другим устройством. Внутри скобок устанавливается скорость соединения в бит/с (бод). В данном случае, программа будет выводить, нажата ли кнопка, в мониторе порта Arduino IDE. Следующая команда – pinMode(2, INPUT). Пины на ESP8266 могут работать в двух режимах – в режиме входа или в режиме выхода. В данном случае мы принимаем информацию от кнопки, соответственно, нам необходимо установить пин в состояние входа. В скобках сначала указывается номер пина, а затем его режим (INPUT или OUTPUT). void loop() {… Функция, которая выполняется по циклу в течение всего времени, пока включен микроконтроллер. Внутри данной функции первая команда – delay(500). Она означает, что программе необходимо остановить своё выполнение на 500 миллисекунд. Следующая команда – btn = digitalRead(2). Она означает, что в переменную btn мы записываем текущее состояние кнопки. Функция digitalRead возвращает текущее состояние пина, т.е. подается на него сейчас напряжение или нет (нажата ли кнопка или нет). Внутри скобок этой функции пишем номер пина. И последняя команда – Serial.println(btn). Данная команда выводит в данном случае в монитор порта текущее значение переменной btn. Результат на скрине. 0 – кнопка не нажата, 1 – нажата. Как видно из скриншота, каждые полсекунды в монитор порта поступает информация о текущем состоянии кнопки. Теперь о подключении исполнительных звеньев. Пусть в роли исполнительного звена будет светодиод, пин оставим тот же. Будем моргать этим светодиодом каждую секунду. Тогда программа сведется к следующему виду: Как видно, в setup мы изменили в функции pinMode Input на Output. В функции loop добавилась новая функция – digitalWrite(2, HIGH). (Или LOW). При помощи данной функции мы подаем (если HIGH) сигнал на пин №2. Или наоборот, убираем сигнал (если LOW). Между этими функциями также видем задержку в одну секунду. Таким образом получается, что диод одну секунду горит, потом одну секунду не горит, потом снова секунду горит, потом секунду не горит, и так до бесконечности. В целом, достаточно запомнить, что такое setup и loop, а также как использовать digitalWrite и digitalRead. 16. Программирование беспроводных модулей. #include #include #include const char* ssid = "........"; // Указываем имя существующей точки доступа const char* password = "........"; // Указываем пароль существующей точки доступа ESP8266WebServer server(80); void handleRoot() { // Обработчик запроса клиента по корневому адресу // Отправляем клиенту server.send(200, "text/plain", "Привет от ESP8266!"); } void handleNotFound() { // Обрабатываем небезызвестную ошибку 404 String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i = 0; i < server.args(); i++) { message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } void setup(void) { Serial.begin(115200); WiFi.mode(WIFI_STA); // Устанавливаем Wi-Fi модуль в режим клиента (STA) WiFi.begin(ssid, password); // Устанавливаем ssid и пароль от сети, подключаемся while (WiFi.status() != WL_CONNECTED) { // Ожидаем подключения к Wi-Fi delay(500); Serial.print("."); } // Выводим информацию о подключении Serial.println(""); Serial.print("Подключено к "); Serial.println(ssid); Serial.print("IP адрес: "); Serial.println(WiFi.localIP()); // Устанавливаем обработчики. Можно сделать двумя способами: server.on("/", handleRoot); server.on("/inline", []() { server.send(200, "text/plain", "Отличная работа!"); }); server.onNotFound(handleNotFound); // Вызывается, когда обработчик не назначен // Запускаем сервер server.begin(); Serial.println("HTTP-сервер запущен"); } void loop(void) { server.handleClient(); } Смотрим на setup, т.е. то, что выполнится в начале программы. Сначала запускаем последовательное соединение (Serial.begin(115200)). Затем выставляем режим работы в качестве станции. Если бы мы хотели, чтобы ESP8266 создавала свою точку доступа, тогда в скобках написали бы “WIFI_AP”. Далее при помощи команды Wifi.begin(ssid, password) сообщаем контроллеру, что необходимо подключится к сети с именем, записанным в переменную ssid, используя пароль, записанный в переменную password (рисунок ниже, это начало скетча). Затем запускаем цикл While, условием выхода из которого является осуществление подключения к сети. Т.е., выполнение программы, написанной после закрывающей скобки «}» (после Serial.print(“.”);), не будет. Пока контроллер не подключится к сети, он будет печатать точку в монитор порта каждые 500 мс. Затем идёт куча Serial.print. Что они выводят в монитор порта – понятно из того, что написано в скобках. Далее идет строка server.on(“/”, handleRoot). Это означает, что при вводе в адресную строку браузера только IP адреса контроллера, сам контроллер будет обращаться к функции handleRoot, которая написана в коде (рисунок ниже). В данной функции в ответ на то, что пользователь ввел в адресную строку браузера айпи адрес контроллера, будет высылаться «Привет от ESP8266!». Аналогично работает строка server.on(“/inline”, …), только здесь мы не ссылаемся на какую-то функцию, которая написана в другой части программы, а прописываем действия, которые необходимо выполнить ESP, внутри фигурных скобок. В данном случае, обработка написанного кода внутри server.on начнется тогда, когда пользователь введет в адресную строку браузера, например, 192.168.1.123/inline (IP может быть другим). И дальше еще назначаем обработчик событий в том случае, если команда не была распознана. Например, пользователь ввел в адресную строку 192.168.1.123/privet, а для “/privet” мы не прописали server.on. (строка server.onNotFound(handleNotFound)). В данном случае мы обращаемся к функции handleNotFound, которая вернет пользователю ошибку (рисунок ниже). Дальше в setup мы осуществляем запуск сервера при помощи server.begin и выводим строку в монитор порта о том, что сервер запущен. В loop строка server.handleClient осуществляет циклическое ожидание запросов от клиентов (ждёт, пока кто нибудь что нибудь введет в адресную строку с айпишником от есп, и если кто то это делает, то передает управление обработчикам событий server.on, а сами обработчики событий передают управление функциям, которые написаны внутри скобок server.on. 17. Взаимодействие "серверной части" с беспроводными модулями интернета вещей. 18. Организация событийного программирования. Передача и прием событий по беспроводной сети. #include #include #include // Replace with your network credentials const char* ssid = "WiFi_Name"; const char* password = "WiFiPassword"; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); // Create an Event Source on /events AsyncEventSource events("/events"); // Timer variables unsigned long lastTime = 0; unsigned long timerDelay = 3000; float temperature; float humidity; float pressure; void getSensorReadings(){ temperature = millis()/100; humidity = millis()/100 + 2; pressure = millis()/100 + 3; } // Initialize WiFi void initWiFi() { WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.print("Connecting to WiFi .."); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(1000); } Serial.println(WiFi.localIP()); } String processor(const String& var){ getSensorReadings(); if(var == "TEMPERATURE"){ return String(temperature); } else if(var == "HUMIDITY"){ return String(humidity); } else if(var == "PRESSURE"){ return String(pressure); } return String(); } const char index_html[] PROGMEM = R"rawliteral( Sensor WEB SERVER (SSE)TEMPERATURE >%TEMPERATURE% °C HUMIDITY >%HUMIDITY% % PRESSURE >%PRESSURE% hPa |