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

Рождественская елка на базе Alexa

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

Amazon Alexa Amazon Echo
× 1
Ардуино Юн
× 1
Перемычки (общие)
× 1
Светодиодная нить WS2811
× 1

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

Здесь вы можете найти источники пользовательского навыка Alexa, который управляет светодиодной нитью на рождественской елке. Это репо содержит:

  • Код Java для функции AWS Lambda, которая является конечной точкой для навыка Alexa.
  • Эскиз Arduino, который находится между AWS IoT и светодиодной нитью WS2811. Скетч оптимизирован для работы на Arduino Yun.

Настройка оборудования

Если вы хотите построить свою собственную рождественскую елку, управляемую Alexa, с помощью этих источников, вам понадобится определенное оборудование. В этом проекте использовались следующие компоненты:

  • 1 x Arduino Yun с ОС Linino
  • 2 жгута светодиодов WS2811 по 50 светодиодов в каждом.
  • 3 перемычки
  • 1 адаптер питания и разъем постоянного тока 2,1 x 5,5 мм.
  • 1 кабель Micro-USB - USB.
  • 1 х Amazon Echo, Amazon Dot или Amazon Tap.

Программное решение

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

Решение использует набор облачных сервисов AWS для взаимодействия с аппаратным сервером - рождественской елкой. Единственное, что вам действительно нужно настроить, - это функция Lambda, корзина S3, содержащая файлы MP3, и роль IAM с разрешениями AWS IoT и Dynamo. Таблица в Dynamo, а также тень объекта в AWS IoT будут созданы при первом вызове навыка «на лету».

Узнайте, что происходит в ответ на голосовой запрос пользователя, отправленный на устройство Alexa:

  • Пользователь обращается к Alexa с " откройте рождественскую елку " . Магия ASR и NLU происходит в облачном сервисе Alexa.
  • Намерение дается коду навыка, размещенному в AWS Lambda. Вы можете найти код в этом репо.
  • Если пользователю просто нужно действие, подобное " включить дерево " или " начать шоу " не задавая этому навыку цвет дерева, он ищет последний установленный цвет в Dynamo DB. Если указан цвет, то навык сохранит информацию в той же таблице. Таким образом Алекса запоминает последний заданный цвет дерева. Во-вторых, действие и команда цвета записываются в тень объекта в AWS IoT.
  • Если тень обновляется, сообщение MQTT отображается в дельта-теме соответствующей вещи. Arduino Yun подписан на эту тему. Боковое примечание :Имя объекта, создаваемого кодом навыка, совпадает с введенным идентификатором навыка (все точки заменены тире). Это может помочь вам, если вы захотите пересобрать проект.
  • Arduino опрашивает тему Delta, поэтому он получает команды в виде сообщения MQTT в формате JSON. Информация извлекается, и эскиз Arduino выполняет действие со светодиодной нитью в соответствии с тем, что указано в сообщении (новый цвет, рождественское шоу, включено, выключено).
  • Наконец, Arduino отправляет сообщение MQTT в тему обновления AWS IoT, чтобы сообщить миру, что действие было выполнено.
  • Сообщение обрабатывается службой AWS IoT, и содержащаяся в нем информация о состоянии записывается обратно в тень объекта в виде сообщенного государство. Также можно было бы заставить навык считывать последнее состояние дерева из тени объекта вместо того, чтобы искать его в Dynamo DB. Причина такого подхода к откату в том, что MQTT является асинхронным, и мы не можем полагаться на то, что Arduino даст немедленный ответ.
  • На самом деле этот шаг происходит сразу после шага 3), поскольку навык специально отделен от аппаратного обеспечения. Таким образом, сразу после обновления тени объекта в AWS IoT код навыка возвращает выходной речевой текст и, при необходимости, SSML . тег со звуковым содержимым. MP3, которые являются частью воспроизведения Alexa (рождественские звуки), хранятся в корзине AWS S3.
  • Алекса зачитывает текст, возвращаемый навыком, и воспроизводит звук в ответе.

Индикация статуса

Пока Arduino выполняет свою работу, он сообщает о своем текущем состоянии по первому светодиоду в цепи.

  • однократное мигание красного светодиода указывает на сбой настройки подключения AWS IoT.
  • два раза мигающий красный индикатор указывает на неудачную попытку подключения к AWS IoT.
  • трижды мигающий красный индикатор указывает на сбой конфигурации подключения AWS IoT.
  • зеленый фонарик указывает на успешное подключение к AWS IoT.
  • синий фонарик указывает на постоянный опрос в теме AWS IoT.
  • желтый фонарик указывает на ошибку при опросе темы AWS IoT.

При запуске вы можете видеть красные фонарики в течение периода времени, необходимого Arduino для подключения к Wi-Fi. Если Wi-Fi подключен, появляется зеленый фонарик, за которым следует постоянно мигающий синий свет, чтобы указать, что дерево готово к командам.

Если желтый мигает, тема AWS IoT недоступна. Если это произойдет (например, Arduino потеряет соединение Wi-Fi), он будет продолжать попытки еще девять раз, пока не попытается автоматически восстановить соединение. Тем не менее, после десятикратного желтого фонарика должен быть красный / зеленый фонарик для выполнения повторного подключения. Как только Arduino повторно подключается к Wi-Fi и снова достигает AWS IoT, загораются синие фонари.

Код

Рождественская елка с поддержкой Alexa
Здесь вы можете найти источники пользовательского навыка Alexa, который управляет светодиодной нитью на рождественской елке. Эдит https://github.com/KayLerch/alexa-xmas-tree

Схема


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

  1. Упаковочная бумага
  2. Новый помощник Дедов Морозов:роль Интернета вещей в Рождестве
  3. Наборы разработчика ускоряют интеграцию с Alexa
  4. 2017 год - год голосового интерфейса?
  5. Amazon Alexa Управление Chromecast
  6. MajorTom:ARDrone 2.0 с голосовым управлением Alexa
  7. На это Рождество украсьте дом деревянной елкой и украшениями
  8. Что такое анализ дерева отказов и как его выполнять
  9. Включение Alexa Control для потолочного вентилятора
  10. Дух Рождества в Sure Controls