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

Светодиоды, управляемые Alexa через Arduino Yún

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

Ардуино Юн
× 1
Amazon Alexa Amazon Echo
× 1
LED (общий)
× 1
Карта Micro SD
× 1

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

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

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

Мотивация

С тех пор, как я создал интеллектуальное зеркало со встроенной Alexa, я искал больше способов подключить различное оборудование и устройства домашней автоматизации по всему дому. Когда я услышал, что новый API Alexa Smart Home позволяет напрямую управлять настраиваемыми устройствами, я решил попробовать.

Эта управляемая Echo рождественская елка использует старую версию API, но послужила отличной отправной точкой и указала мне на Arduino Yún, нацеленный на IoT. Это дает вам систему Linux и микроконтроллер в одном удобном пакете.

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

Полную информацию вы можете найти ниже, но вот как это выяснилось!

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

Этот проект направлен на подключение платы Arduino Yún к навыку Alexa Smart Home v3. Это делается с помощью навыков Alexa Smart Home Skill (v3), функции AWS Lambda, AWS IoT Thing и Arduino Yún, который подписан на IoT Thing.

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

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

Я бы рассматривал каждый шаг как мини-проект, на каждый из которых может уйти от 1 часа.

Шаг 1. Создайте навык умного дома и подключенную лямбду .

Здесь вы создаете навык умного дома, создаете лямбда-функцию и связываете их вместе. Этот процесс очень хорошо описан в этом руководстве. Обязательно следуйте инструкциям LWA, чтобы получить идентификатор клиента и секрет клиента, используемые в конфигурации навыков.

На этом этапе, если вы можете войти в панель управления Alexa и обнаружить свое новое умное домашнее устройство (на данный момент это просто ответ функции лямбда), у вас хорошее начало.

Обратите внимание, что в этом руководстве используется Python 3.6, но вместо этого я использовал Python2.7. Вы можете скопировать handle_discovery часть моей лямбда-функции, но это все, что сейчас будет работать.

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

Discovery не очень хорош, если вы ничего не можете сделать, поэтому давайте дадим ему возможность подключиться, создав AWS IoT Thing.

Это можно сделать, выполнив действия, описанные на этой странице. Мы будем использовать «Тень Вещи» того, что вы создаете, которая является копией состояния объекта вместе с желаемыми изменениями. Arduino подпишется на канал уведомлений, который публикует изменения («дельта») этой Thing Shadow. Перейдите по этой ссылке, чтобы узнать больше о Thing Shadows.

После создания Thing перейдите на вкладку безопасности на веб-панели Thing IoT и загрузите открытый ключ, закрытый ключ и сертификат. Как только это будет сделано, нажмите «Активировать», что даст вам ключ корневого центра сертификации. Сохраните и это. Они будут использоваться вашим Arduino для аутентификации в тени IoT.

Перейдите на вкладку «Тень» своей вещи и нажмите «Изменить». Добавьте свойство к своей тени, чтобы она выглядела так:

  {"сообщил":{"свет":"включен"}}  

Шаг 3. Подключите Lambda к Thing.

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

Вы также должны убедиться, что ваша роль AWS IAM, связанная с функцией Lambda, имеет разрешения «AWSIoTFullAccess». Вы можете увидеть свою роль в нижней части веб-панели Lambda Configuration. Это разрешение позволяет подключаться к AWS IoT Thing.

Как только это будет сделано, перейдите на страницу конфигурации лямбда-функции. На вкладке test вашей функции добавьте директиву TurnOff со следующим JSON для версии v3. Вы также можете добавить второй тест под названием «TurnOn», где вы просто измените название заголовка на «TurnOn».

  {"директива":{"заголовок":{"пространство имен":"Alexa.PowerController", "имя":"TurnOff", "payloadVersion":"3", "messageId":"1bd5d003- 31b9-476f-ad03-71d471922820 "," correlationToken ":" 1234 "}," endpoint ":{" scope ":{" type ":" BearerToken "," token ":" some-access-token "}," endpointId ":" устройство-001 "," cookie ":{}}," полезная нагрузка ":{}}}  

Когда вы запускаете тесты TurnOn и TurnOff, вы должны увидеть, что Thing Shadow сообщает о желаемом состоянии, соответствующем действию. Если вы видите такой результат, все в порядке.

Шаг 4. Настройте Arduino Yún.

Пришло время настроить оборудование Arduino Yún. Я нашел это руководство более полезным, чем руководство по Arduino. Несколько примечаний - если вы пользователь Windows, при форматировании SD убедитесь, что вы используете FAT32 (exFAT не поддерживается). Я также не мог должным образом увидеть страницу «обновления», пока не подключился к сети Ethernet. После настройки Wi-Fi работал нормально.

Вы выполнили этот шаг, когда увидели этот вариант и выполнили следующие шаги:

Вы также должны иметь возможность успешно подключиться к вашему Arduino по ssh. Я бы также рекомендовал запустить "df -h" и поискать том, в котором говорится, что ваша SD-карта была добавлена.

На этом этапе также будет полезно открыть IDE Arduino и убедиться, что вы можете запустить пример Blink.

Шаг 6. Подключите Yún к AWS IoT.

Когда Arduino запущен и работает, давайте поговорим о нем с IoT Thing. Для этого нужно установить AWS Arduino IoT SDK и запустить пример скетча для отслеживания дельт Thing Shadow.

Я рекомендую начать с этого руководства, которое отлично проведет вас через процесс установки SDK. Обратите внимание на пользователей Windows:если вы используете cygwin, просто следуйте инструкциям Mac / Linux (у меня не было проблем с зависимостью «ожидать»). В частности, выполнение следующего сценария из вашей хост-системы значительно упрощает жизнь:

./AWSIoTArduinoYunInstallAll.sh

Это руководство заканчивается добавлением AWS-IoT-SDK в среду разработки Arduino. Теперь, когда вы откроете IDE Arduino, вы должны найти пример ShadowThing в разделе File-> Examples-> AWS-IoT-Arduino-Yun-Library.

Откройте этот эскиз и отредактируйте aws_iot_config.h файл, содержащий ваши соответствующие конечные точки и имена сертификатов / ключей.

Запуск этого скетча должен показать вам последовательный выход, указывающий, что состояние соединения было успешным. Если вы измените тень объекта на панели управления IoT, вы должны получить уведомление в регистраторе последовательного порта.

Если у вас возникли проблемы на этом этапе, убедитесь, что ваши сертификаты находятся в правильных путях, и убедитесь, что вы правильно скопировали текст корневого CA в файл.

Шаг 7. Подключите Yún к AWS IoT.

Теперь все, что осталось, - это обработать изменения в Thing Shadow на Arduino. У вас должно получиться просто скопировать содержимое моего наброска.

Мой набросок в основном представляет собой пример эскиза ThingShadow, за исключением того, что он специально ищет изменения в ключевом «свете». Когда они получены, он устанавливает для всех контактов в ledArray значение HIGH или LOW в зависимости от того, был ли свет «включен» или «выключен».

Этот ledArray имеет встроенный вывод 13, поэтому без дополнительных подключенных светодиодов вы увидите, что встроенный светодиод YUN будет включаться и выключаться в зависимости от ваших голосовых команд. Если вам нужен более изящный светодиодный куб, как я использую, ознакомьтесь с этим проектом, в котором рассказывается, как его подключить. Затем просто добавьте положительные номера контактов к ledArray в моем эскизе.

Вы узнаете, что сделали этот шаг, когда сможете попросить свое устройство Alexa включить и выключить вашу индивидуальную интеллектуальную вещь.

Если это работает не так, как ожидалось, я бы посоветовал попробовать ваши функции Lambda TestOn и TestOff на веб-панели инструментов. Это дает вам больше информации о том, что может пойти не так.

Публикуйте комментарии о любых проблемах, с которыми вы сталкиваетесь, но которые не были рассмотрены, и я решу их как можно быстрее!

Шаг 9. Празднуйте!

Если вы зашли так далеко, молодец! Arduinos может делать все, что вы хотите, и теперь вы знаете, как это сделать с помощью простой голосовой команды через Alexa. Отметьте свое достижение, многократно включая и выключая свет. Мир Интернета вещей - это ваша устрица!

Код

Код Lambda и Arduino для проекта
Файлы .ino и .h используются для Arduino Sketch, а lambda_function - в облаке AWS Lambda

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

  1. Amazon Alexa Управление Chromecast
  2. Робот Raspberry Pi, управляемый через Bluetooth
  3. MajorTom:ARDrone 2.0 с голосовым управлением Alexa
  4. Интерактивный настольный светильник, управляемый жестами
  5. Arduino + светодиоды + MIDI-клавиатура + MuseScore =Piano Tutor
  6. Светодиоды, управляемые Alexa через Raspberry Pi
  7. Радиоуправляемая машина с джойстиком
  8. Роботизированная рука, управляемая нунчук (с Arduino)
  9. Робот, управляемый речью
  10. Рука робота, управляемая через Ethernet