Рождественская елка на базе Alexa
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 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Схема
Производственный процесс
- Упаковочная бумага
- Новый помощник Дедов Морозов:роль Интернета вещей в Рождестве
- Наборы разработчика ускоряют интеграцию с Alexa
- 2017 год - год голосового интерфейса?
- Amazon Alexa Управление Chromecast
- MajorTom:ARDrone 2.0 с голосовым управлением Alexa
- На это Рождество украсьте дом деревянной елкой и украшениями
- Что такое анализ дерева отказов и как его выполнять
- Включение Alexa Control для потолочного вентилятора
- Дух Рождества в Sure Controls