Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Анимированный умный свет с Alexa и Arduino

Компоненты и расходные материалы

Arduino UNO
Также можно использовать Arduino Nano. Arduino Mega может быть полезна для управления большим количеством светодиодных пикселей.
× 1
Raspberry Pi 3, модель B
× 1
полоса NeoPixel
Можно использовать любую светодиодную ленту WS8212.
× 1

Приложения и онлайн-сервисы

IDE Arduino
Amazon Web Services AWS Lambda
Amazon Alexa Alexa Skills Kit
Amazon Web Services AWS IoT

Об этом проекте

Почему именно световая полоса

Меня всегда восхищали адресуемые светодиодные ленты RGB. Бесконечные цветовые эффекты и возможности анимации всегда привлекали мое творчество, поэтому несколько лет назад я решил разработать библиотеку для плат Arduino под названием ALA (Arduino Light Animations). Алекса теперь дает мне возможность управлять освещением и эффектами в комнате с помощью голоса, и это круто!

Обзор проекта

Есть компоненты, необходимые для этого проекта.

  • Amazon Алекса: Пользовательский навык Alexa (Light Strip) определяет модель голосового взаимодействия и переводит команды (намерения), которые передаются функции Lambda.
  • Amazon Lambda :Сценарий Python, который получает сообщения от Alexa и отправляет обновления в службу Интернета вещей.
  • Amazon IoT :Служба Интернета вещей хранит «тень объекта», которая является представлением состояния полосы RGB. Каждый раз, когда тень обновляется, подписанные клиенты MQTT (Raspberry PI) получают уведомление.
  • Raspberry PI :На этом небольшом ПК работает клиент MQTT для получения сообщений от службы Amazon IoT. С другой стороны, он будет питать и отправлять команды на плату Arduino через порт USB.
  • Ардуино :Этот красивый микроконтроллер будет запускать библиотеку ALA для управления светодиодной лентой, получающей команды от Raspberry PI через последовательный порт USB. Вы можете использовать плату Arduino Uno, Nano или Mega.
  • WS8212 Светодиодная лента RGB :Это адресуемые светодиодные ленты, поэтому каждым светодиодом можно управлять индивидуально. Это позволяет создавать красивые и красочные световые анимации.

В проекте нет ничего сложного, но есть много взаимосвязанных частей. Я предлагаю вам следовать предлагаемой структуре, чтобы построить свой проект на прочном фундаменте, прежде чем переходить к следующему шагу. Чтобы упростить задачу, я разделил проект на два подпроекта.

первая часть Проект описан в моем проекте LED-анимации с веб-управлением с Raspberry Pi и Arduino Hackster.io и проведет вас через шаги, необходимые для подключения Raspberry PI, платы Arduino и светодиодной ленты WS8212. В конце этого этапа вы сможете управлять светодиодной анимацией со смартфона или ПК с помощью веб-браузера.

вторая часть описанного здесь проекта добавит голосовое управление к предыдущей реализации с использованием Amazon Alexa. Чтобы правильно настроить всю цепочку, необходимо выполнить несколько шагов, так что наберитесь терпения и внимательно следуйте инструкциям.

Amazon IoT

Доделали аппаратную часть? Пришло время перейти в облако! Мы будем использовать платформу AWS IoT для управления нашей «вещью» из Интернета.

Мы будем использовать «тень устройства», которая является копией состояния объекта вместе с желаемыми изменениями. Raspberry PI подпишется на канал уведомлений, который публикует изменения («дельта») этой тени. Перейдите по этой ссылке, чтобы получить дополнительную информацию о платформе AWS IoT и API.

Создайте объект Интернета вещей

Войдите в Консоль AWS. Если вы еще этого не сделали, вам необходимо создать бесплатную учетную запись.

Убедитесь, что вы вошли в систему Восток США (Северная Вирджиния) или ЕС (Ирландия) зона в правом верхнем углу.

Найдите «IoT» и выберите AWS IoT . услуга. Нажмите Начать . кнопку (если есть), чтобы закрыть вводное руководство.

Сначала нам нужно создать политику безопасности для нашей "вещи". Перейдите в Безопасность> Политики меню и нажмите Создать политику . кнопку и введите следующую информацию:

  • Название:LightStripPolicy
  • Действие:*
  • Ресурс:*
  • Эффект - Разрешить:установлен.
  • Нажмите "Создать".

Теперь мы можем создать Интернет вещей Вещь .

  • Выберите Управление . > Вещи меню и создайте новую вещь AWS IoT, нажав Зарегистрировать вещь кнопка (или Создать в правом верхнем углу), а затем нажмите Создать единый объект .
  • Введите "LS01" в поле "Имя". Оставьте значения по умолчанию для других полей и нажмите Далее . .
  • Нажмите Создать сертификат . кнопка в Создание сертификата в один клик раздел.
  • Загрузите 3 сертификата для своего устройства и корневой центр сертификации. Для корневого центра сертификации вам может потребоваться щелкнуть правой кнопкой мыши и затем сохранить его.
  • После загрузки сертификатов нажмите Активировать кнопка.
  • Нажмите Прикрепить политику кнопку и выберите LightStripPolicy вы создали ранее, а затем нажмите Зарегистрировать вещь .

Прежде чем двигаться дальше, вам необходимо записать конечную точку AWS IoT. Щелкните Настройки в нижнем левом углу веб-страницы AWS IoT, откройте его и обратите внимание на конечную точку.

Настройте Raspberry PI для прослушивания "Вещи"

Сначала нам нужно установить AWS IoT Device SDK для Python . с помощью следующей команды в командной строке Raspberry PI:

  sudo pip3 установить AWSIoTPythonSDK  

Теперь загрузите репозиторий LightStrip с GitHub и разархивируйте его.

  mkdircd / home / pi / LightStripwget https://github.com/bportaluri/LightStrip/archive/master.zipunzip master.zip  

Скопируйте четыре сертификата, которые вы загрузили при создании IoT Thing в папке / home / pi / LightStrip / LightStrip-master / pi папка.

Отредактируйте lightstripcfg.py сценарий. Вы можете использовать любой текстовый редактор. Вот команды для nano редактор.

  cd / home / pi / LightStrip / LightStrip-master / pinano lightstripcfg.py  

Теперь отредактируйте настройки, чтобы они соответствовали вашей конфигурации.

  • AWSIOT:введите указанную ранее конечную точку AWS IoT.
  • ROOT_CA:имя файла сертификата корневого CA
  • CERTIFICATE:имя файла сертификата.
  • PRIVATE_KEY:имя файла закрытого ключа
  • DEVICE_NAME:оставьте "LS01" без изменений.

Закройте редактор nano и сохраните файл, нажав Ctrl + X, а затем Y.

Запустите скрипт lightstrip.py следующим образом.

  sudo python3 lightstrip.py  

Скрипт перечислит подключенные USB-порты. Arduino должен быть подключен к / dev / ttyACM0, поэтому запустите сценарий, передавая порт следующим образом.

  sudo python3 lightstrip.py / dev / ttyACM0  

Тестовый клиент подключится к сервису Amazon Thing Shadow и подпишется на изменения LS01 теневое устройство. После успешного подключения клиентский сценарий обновит свой статус до тени устройства LS01 и получит подобное сообщение подтверждения.

Чтобы убедиться, что все работает правильно, вернитесь в консоль AWS IoT и выберите Управление> Вещи меню, затем откройте LS01 устройство. Выберите Тень меню, и вы увидите состояние тени устройства.

Нажмите Изменить в разделе «Теневой документ» и вставьте следующий документ JSON в поле «Теневое состояние».

  {"желаемый":{"анимация":"101"}}  

Вот что вы должны увидеть.

При нажатии на ссылку «Сохранить» клиенту MQTT на Raspberry PI будет отправлено сообщение «дельта», которое включит светодиодную полосу.

Следующий документ JSON изменит цвет на синий.

  {"желаемый":{"цвет":"0066CC"}}  

На данный момент мы можем управлять нашей светодиодной лентой из сервиса ASW IoT, так что вы должны гордиться собой.

Функция AWS Lambda

AWS Lambda позволяет запускать код в облаке без выделения серверов и управления ими. Это идеальный мост между Alexa Skills Kit, который позволит использовать голосовое управление на последнем этапе этого проекта.

Войдите в Консоль AWS. В списке служб выберите Лямбда . .

Убедитесь, что вы вошли в тот же регион, который использовали на предыдущем шаге: Восток США (Северная Вирджиния) или ЕС (Ирландия) зона в правом верхнем углу.

Нажмите Создать функцию . кнопка. Нажмите Автор с нуля . и настройте следующим образом:

  • Name =LightStrip
  • Время выполнения =Python 3.6
  • Роль =Создать особую роль. Откроется новая вкладка. Просто нажмите кнопку «Разрешить», чтобы создать новую роль с именем lambda_basic_execution.
  • Существующая роль:lambda_basic_execution
  • Нажмите Создать функцию . кнопка

Обратите внимание на идентификатор Lambda ARN ID в правом верхнем углу.

Щелкните LightStrip . поле, чтобы открыть раздел кода функции.

Тип ввода кода:встроенное редактирование кода

  • Время выполнения:Python 3.6
  • Обработчик:lambda_function.lambda_handler

lambda_function.py сценарий должен быть уже определен. Вставьте код из LightStrip \ lambda \ lambda_function.py файл в редактор кода.

Создайте еще один файл с именем ala_controller.py и вставьте код из LightStrip \ lambda \ ala_controller.py файл в редактор кода.

Вот так все должно выглядеть.

По завершении нажмите оранжевый значок Сохранить . кнопку в правом верхнем углу.

Алекса Навык

Теперь мы можем создать специальный навык Light Strip для Alexa.

Перейдите в консоль разработчика Amazon и войдите в систему при необходимости. Возможно, вам сначала потребуется зарегистрировать свою учетную запись.

Перейдите в Alexa> Набор навыков Alexa (начало работы) .

Нажмите Добавить новый навык в правом верхнем углу и введите следующие данные в поле Информация о навыках вкладка:

  • Тип навыка:индивидуальная модель взаимодействия.
  • Язык:английский (США)
  • Имя:LightStrip
  • Имя вызова:световая полоса
  • Нажмите "Сохранить".

Это создает навык. Обратите внимание на идентификатор навыка.

Выберите Модель взаимодействия и затем щелкните Запустить конструктор навыков . кнопка.

Щелкните Редактор кода . кнопку и вставьте содержимое LightStrip / alexaskill / lightstrip_skill.json файл в текстовом поле.

Нажмите Сохранить модель . и Модель сборки кнопки. Построение модели займет несколько минут, так что наберитесь терпения. Нажмите Информация о навыках . кнопку, чтобы вернуться на страницу конфигурации навыков.

Теперь нажмите Конфигурация . меню.

В поле "Тип конечной точки службы" выберите AWS Lambda ARN . а затем вставьте указанную выше лямбда-функцию ARN.

Оставьте все значения по умолчанию и нажмите Сохранить Кнопка ниже.

Подключите навык Alexa к функции лямбда

Вернитесь к своей лямбда-функции. Справа находится список предопределенных триггеров. Выберите Набор навыков Alexa и он будет добавлен к вашей функции.

Настройте следующим образом:

  • Application Id =идентификатор навыка, который вы указали выше.
  • Нажмите "Добавить".
  • Нажмите "Сохранить".

Готово

Теперь проект завершен. Попробуйте выполнить следующие голосовые команды:

  • Открытая световая полоса
  • Включите
  • Установите яркость на 20 процентов.
  • Установите яркость на 50 процентов.
  • Установить красный цвет.
  • Установите бирюзовый цвет.
  • Выключить
  • Запустите захватывающую анимацию.
  • Запустите расслабляющую анимацию.

Навык LightStrip также позволяет более совершенное голосовое взаимодействие

  • Я:Алекса, открой световую полосу
  • Alexa:Добро пожаловать в LightStrip - светодиодная лента будет светиться синим светом.
  • Я:запустить анимацию
  • Алекса:Хотите расслабляющую или захватывающую анимацию?
  • Я:расслабляющий
  • Алекса:ОК - светодиодная лента будет показывать случайную анимацию.
  • Я:следующая анимация
  • Alexa:ОК - будет отображаться другая случайная анимация.

Чтобы лучше понять модель взаимодействия, вот полная диаграмма VUI навыка.

Улучшения и уточнения

Автоматически запускать AlaWeb при загрузке

Небольшое улучшение проекта - автоматический запуск сценария lightstrip.py при загрузке, поэтому вам не нужно запускать его вручную каждый раз, когда вы включаете Raspberry PI или что-то пойдет не так, и вам придется выполнить сброс. Следуйте этим инструкциям.

Добавление и настройка анимации

Для навыка «Световая полоса» уже определены 20 вариантов анимации. Однако библиотека ALA позволяет легко настраивать собственные анимации, выбирая предустановку анимации, цветовую палитру и скорость. Вы можете добавить свои собственные анимации или настроить существующие в скрипте ala_controller.py. Примерно в строке 80 вы увидите список настроек анимации, которые вы можете изменить или улучшить по своему вкусу.

Код

LightStrip
Весь код, необходимый для этого проекта https://github.com/bportaluri/LightStrip

Схема


Производственный процесс

  1. ЖК-панель с Arduino для симулятора полета
  2. Переключатель / светодиодная панель с Arduino для FS2020
  3. Arduino с Bluetooth для управления светодиодом!
  4. Умная обувь (автоматическая шнуровка и выработка электроэнергии)
  5. Четвероногий Arduino
  6. Управление серводвигателем с помощью Arduino и MPU6050
  7. Управление яркостью светодиода с помощью Bolt и Arduino
  8. u-blox LEA-6H 02 GPS-модуль с Arduino и Python
  9. Простая и умная роботизированная рука с использованием Arduino
  10. Распознавание и синтез речи с помощью Arduino