Як додати Alexa до вашого Smart Mirror

Інтелектуальне дзеркало з функцією Amazon Echo.

Якщо ви вже створили розумне дзеркало, то ви, ймовірно, маєте зручний доступ до календаря, прогнозу погоди та новин. Однак, можливості на цьому не закінчуються! Завдяки спеціалізованому програмному забезпеченню Magic Mirror, ви можете інтегрувати додаткові модулі, розширюючи функціональність дзеркала, наприклад, за допомогою голосового помічника Alexa.

Різноманітні розробники створюють ці модулі, пропонуючи широкий спектр опцій, від корисних, таких як Alexa або датчик присутності (за допомогою камери чи інфрачервоного датчика), до розважальних, наприклад, візуалізації снігу або відтворення інформації про музику зі Spotify.

Ми рекомендуємо використовувати модуль MMM-awesome-alexa, оскільки він має активну підтримку розробника. Хоча існують і інші модулі Alexa для Magic Mirror, цей є одним з найбільш надійних.

Якщо ви зацікавлені в інтеграції Google Assistant, Google надає детальний посібник щодо його встановлення на Raspberry Pi. Посібник містить усі необхідні кроки, ілюстрації та посилання для завантаження. На жаль, багато модулів Magic Mirror для Google Assistant, як показує наш досвід, виявилися нестабільними, часто дають збої або перекривають важливу інформацію на дзеркалі. Для максимально простої установки ми радимо придбати Google AIY Kit і використовувати спеціалізований посібник.

Процес встановлення більшості модулів складається з кількох базових етапів:

Завантаження коду модуля з GitHub.
Налаштування параметрів окремих модулів.
Інтеграція модуля в конфігурацію дзеркала.

Залежно від конкретного модуля, другий і третій етапи можуть бути більш чи менш складними. Наприклад, налаштування Alexa вимагає більшої конфігурації, ніж додавання простої анімації снігу. Крім того, для коректної роботи модуля Alexa, спочатку потрібно встановити додаткове програмне забезпечення (залежності).

Необхідні матеріали

Передбачається, що ви вже маєте готове розумне дзеркало. Якщо ви ще не створили його, спочатку зробіть це, але врахуйте додаткові матеріали, що наведені нижче, у плані витрат і місця.

Готове розумне дзеркало.
Мікрофон.
Динамік.

В якості мікрофона та динаміка ми рекомендуємо оригінальний Google AIY Voice Kit. За ціною близько 16 доларів, це чудовий варіант для поєднання мікрофона та динаміка. Не обов’язково використовувати картонну коробку з комплекту; можливо, буде ефективніше розмістити компоненти за межами дзеркала і вивести мікрофон та динамік окремо.

Друга версія Google AIY Voice Kit доступна, але є дорожчою і включає Raspberry Pi Zero, який є недостатньо потужним для активації голосових команд або запуску Magic Mirror. Тому її слід пропустити.

Підключіть динамік і мікрофон, і ви готові до інсталяції модуля Alexa. Якщо ви використовуєте Google AIY Kit, дотримуйтеся інструкції з збірки для підключення мікрофона та динаміка.

Встановлення залежностей модуля

Перед завантаженням і налаштуванням модуля mmm-awesome-alexa потрібно встановити декілька необхідних залежностей. Завжди корисно оновити Raspberry Pi перед встановленням будь-яких нових програм. Для цього на своєму Raspberry Pi виконайте таку команду:

sudo apt update && sudo apt upgrade

Після оновлення Raspberry Pi, виконайте по черзі такі команди:

sudo apt-get install sox libsox-fmt-all
sudo apt-get install swig3.0 python-pyaudio python3-pyaudio sox
pip install pyaudio
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 ffmpeg libav-tools
sudo apt-get install libatlas-base-dev

Кожна команда встановлює певну залежність, і всі вони потрібні для коректної роботи модуля. Просто виконайте команду, дочекайтеся завершення завантаження і встановлення, і лише потім запустіть наступну.

Завантаження коду модуля

Перший крок для встановлення будь-якого модуля Magic Mirror – це завантаження коду з GitHub. Для цього потрібно увійти в систему Raspberry Pi, відкрити термінал і перейти в директорію, де зберігаються модулі. Після цього використовуйте команду завантаження для отримання коду з GitHub. У випадку віддаленого доступу до оболонки, можна виконати все це віддалено.

Відкрийте термінал і введіть наступне:

cd ~/MagicMirror/modules

Ця команда перемістить вас до робочої директорії, де зберігаються модулі Magic Mirror. Кожного разу, коли ви завантажуєте новий модуль, потрібно починати саме звідси, для підтримки порядку. Наступним кроком є завантаження програмного забезпечення з GitHub за допомогою цієї команди:

git clone https://github.com/dolanmiu/MMM-awesome-alexa.git

Після закінчення завантаження, перейдіть в каталог модуля за допомогою:

cd MMM-awesome-alexa

Модуль Alexa потребує декількох додаткових залежностей для коректної роботи. Виконайте цю команду, щоб їх встановити:

npm install --only=prod

Далі перейдіть в щойно створену папку node_modules:

cd node_modules

Видаліть папку snowboy, яка була додана попередніми командами, оскільки нам потрібна новіша версія:

rm -rf snowboy

Тепер завантажимо останню версію snowboy, використовуючи таку команду:

git clone https://github.com/Kitt-AI/snowboy.git

Перш ніж продовжити, перейдіть в нову папку snowboy.

cd snowboy

Тепер видаліть папку node_modules і встановить деякі додаткові залежності. Важливо залишатись у папці snowboy на цих етапах; не переміщуйтеся в іншу директорію. Виконайте ці команди по черзі:

rm -rf node_modules
npm install nan --save 
npm install [email protected] --save 
npm install 
npm run prepublish 
npm install --save-dev electron-rebuild 
npm install nan 
./node_modules/.bin/electron-rebuild

На цьому етапі модуль повністю завантажено та встановлено.

Налаштування модуля Alexa

Після встановлення модуля mmm-awesome-alexa, необхідно його налаштувати. Перший крок – переміститись в кореневий каталог модуля. В терміналі введіть наступну команду і натисніть Enter:

cd ~/MagicMirror/modules/MMM-awesome-alexa

Цей модуль Alexa має конфігураційний помічник, і ми зараз його запустимо. В терміналі введіть:

npm run config-helper

Ви отримаєте запит на введення ідентифікатора клієнта. Оскільки ви налаштовуєте спеціалізований Echo, потрібно відкрити браузер і перейти на сайт розробників Alexa. Там потрібно увійти до свого акаунту Amazon.

Після входу, натисніть кнопку “Почати”. Ви створюєте пристрій, тому натисніть “Продукти” і виберіть “Створити продукт”.

На наступному екрані введіть назву та ідентифікатор продукту – ми пропонуємо “Magic_Mirror_Alexa” для назви та “YourFirstName_MM_Alexa” для ідентифікатора продукту. Виберіть “Розумний дім” для категорії і активуйте “вільні руки” та “дальній діапазон”. На ряд запитань “так” чи “ні” оберіть “Ні” для всіх і натисніть “Далі”.

На екрані профілю безпеки, натисніть “Створити новий профіль”. Використайте те саме ім’я для профілю безпеки, що і для ідентифікатора продукту. Після цього введіть опис і натисніть “Далі”.

Підтвердіть згоду і натисніть “Готово”.

Натисніть на щойно створений продукт, а потім на профіль безпеки. Там ви побачите ідентифікатор клієнта і секрет клієнта.

В тип запису дозволеної зворотної URL-адреси введіть:
https://magic-mirror-avs.github.io/Alexa-Web-Helper/authresponse

Натисніть кнопку “додати”. Прокрутіть вниз і натисніть “оновити”, щоб завершити додавання URL-адреси.

В терміналі буде запит на ідентифікатор клієнта. Скопіюйте ідентифікатор клієнта з браузера, вставте в термінал, і натисніть Enter. Термінал запросить введення секрету клієнта. Поверніться в браузер, скопіюйте секрет клієнта, вставте його в термінал, і натисніть Enter.

Коли буде запит на введення ідентифікатора пристрою, введіть ім’я, яке ви створили вище, як ідентифікатор продукту (Magic_Mirror_Alexa в нашому прикладі).

Коли вас попросять надати URL-адресу повернення, введіть наступну команду і натисніть Enter:

https://magic-mirror-avs.github.io/Alexa-Web-Helper/authresponse

Термінал відобразить спеціалізоване посилання. Скопіюйте його і вставте в браузер. Після чого увійдіть в свій акаунт Amazon, якщо буде запропоновано. Натисніть “Дозволити” на наступному екрані.

Ви побачите помилку в браузері, але не хвилюйтеся! Це очікувано. Прокрутіть URL-адресу сторінки з помилкою, і знайдіть розділ “Код=xxxxxx”.

Скопіюйте літери і цифри, які розташовані між “code=” і “&scope”, та вставте їх в термінал. Коли закінчите, натисніть Enter.

Коли вас запитають, чи бажаєте ви створити конфігурацію MagicMirror, введіть Y і натисніть Enter.

Вас запитають, яке слово для пробудження використовувати. “Alexa” є варіантом за замовчуванням, тому натисніть Enter.

Дайте відповідь “ні” щодо використання спрощеного режиму та візуалізації.

Помічник конфігурації згенерує інформацію про ваш модуль. Вона буде виглядати приблизно так:

{
 module: "MMM-awesome-alexa",
 position: "bottom_bar",
 config: {
 wakeWord: "Alexa",
 clientId: "YOUR_CLIENT_ID",
 clientSecret: "YOUR_CLIENT_SECRET",
 deviceId: "YOUR_DEVICE_ID",
 refreshToken: "YOUR_REFRESH_TOKEN",
 lite: false,
 isSpeechVisualizationEnabled: false
 }
 }

Скопіюйте ці рядки, оскільки нам потрібно додати їх до конфігурації Magic Mirror.

Додавання модуля Alexa до конфігурації Magic Mirror

Далі перейдіть до папки конфігурації Magic Mirror за допомогою такої команди:

cd ~/MagicMirror/config

І відкрийте config.js за допомогою команди nano:

nano config.js

Відразу після першого екземпляра } (який позначає кінець модуля), натисніть Enter, щоб створити пустий рядок перед наступним записом { (що є початком нового модуля).

У новоствореному рядку вставте код модуля з кроків налаштування. У згенерованому автоматично коді є невелика помилка; потрібно додати кому після останньої дужки, щоб ваш модуль закінчувався на },

Скористайтеся Ctrl+x, щоб закрити файл. Коли з’явиться запит, введіть “y”, щоб підтвердити збереження, і натисніть Enter, щоб назва файлу залишилася незмінною.

На цьому встановлення модуля завершено. Щоб перезапустити Magic Mirror з встановленим модулем, введіть pm2 restart mm, і програмне забезпечення перезапуститься. Тепер Alexa має працювати на вашому розумному дзеркалі.

Це один з найскладніших модулів для налаштування в Magic Mirror. Однак, для інших модулів основні етапи ті ж самі: завантажити код, налаштувати параметри, що стосуються модуля, і додати його до конфігурації. Ви можете додати анімацію снігу, детектор руху, або навіть відобразити ваші фотографії з Google Photos.