Как собрать домашнего помощника для дома с помощью Raspberry Pi

Как собрать домашнего помощника для дома с помощью Raspberry Pi

Помощники с голосовым управлением быстро стали обычным явлением. Во многих домах есть Alexa или Google Home, управляющие всем, от освещения до мультимедиа и даже хронометража.





Технология, на которой работают эти устройства, доступна - по крайней мере частично - каждому. SDK Google Assistant позволяет использовать сервис на своих устройствах. В этом руководстве рассказывается, как настроить Google Assistant на Raspberry Pi и активировать голосовой светодиод через контакты GPIO.





Оборудование, необходимое для домашнего помощника Raspberry Pi

Тебе понадобится:





  1. Raspberry Pi с установка свежего Raspbian на SD-карту .
  2. Веб-камера или микрофон USB.
  3. Внешний динамик.
  4. Схема из Руководство по Pi LED (по желанию)
  5. Браузер вошел в вашу учетную запись Google.

Примечание: Оборудование для этого урока может несколько отличаться. Я использовал запасную веб-камеру USB исключительно для микрофона. Любая совместимая веб-камера или микрофон подойдут, и есть обширные списки Pi-совместимых устройств помогать.

Кроме того, для звука я использую выход 3,5 мм. HDMI и другие источники вывода также будут работать, хотя для этого потребуются изменения в настройках звука ниже.



Подключите веб-камеру USB и динамик и настройте светодиодную схему, если вы ее используете.

Настройка звука

Этому руководству можно следовать непосредственно на Pi или через соединение SSH в Pi.





Оба способа начинаются в терминале, чтобы проверить настройки звука. Используйте команды arecord -l а также применить -l для вывода списка доступных устройств.

как увеличить скорость скачивания торрента

На изображении выше веб-камера USB показана как карточка 1 а также устройство 0 . Обратите внимание на номера карты и устройства для выхода микрофона и динамика.





Теперь, убедившись, что вы находитесь в / home / pi каталог, создайте новый файл и откройте его в nano:

sudo nano .asoundrc

Содержимое этого каталога будет отличаться в зависимости от того, какие номера карт и устройств вы используете. Здесь вы можете выбрать выход HDMI, а не 3,5 мм, если хотите.

Когда вы ввели свою версию вышеуказанного кода, нажмите Ctrl + X для сохранения и выхода.

Проверьте свою настройку, записав и воспроизведя короткий клип:

Необязательный шаг: Если вы хотите изменить входную громкость микрофона, откройте alsamixer и нажмите F6 для переключения между устройствами.

Вот и все! Звук настроен.

Создание проекта Google

Откройте браузер Pi или, если вы подключены через SSH, откройте браузер локально. Перейдите к Консоль Google Action и нажмите Новый проект .

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

Включение Google Assistant API

Чтобы продолжить, вам необходимо внести несколько изменений в Интернете. Перейдите к Веб-сайт API Google Ассистента и нажмите Давать возможность .

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

  • История приложений и веб-поиска (включая флажок 'История Chrome')
  • Информация об устройстве
  • Голосовая и аудиозапись

Теперь можно переходить к регистрации устройства.

Регистрация вашего Raspberry Pi

Вернувшись в консоль действий, выберите Регистрация устройства с левой панели. Под Продукт придумайте легко запоминающееся имя для вашего устройства. Название производителя не важно (но должно быть там) и выберите Авто для типа устройства.

Нажмите Зарегистрировать модель , и на следующем экране нажмите Скачать учетные данные OAuth 2.0 . На ваш компьютер будет загружен файл JSON. Если вы не знакомы с файлами JSON, не волнуйтесь, но учимся использовать JSON стоит делать на будущее!

Официальное руководство Google рекомендует переместить файл в / home / pi , так что откройте файловый менеджер и сделайте это сейчас.

Дополнительный шаг для пользователей SSH:

Если вы используете SSH, вы загрузите файл JSON на свой локальный компьютер вместо Pi. Чтобы передать его, откройте отдельное окно терминала без SSH-соединения. Из этого окна скопируйте секретный JSON-файл клиента с помощью этой команды:

scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/

Замените raspberry-pi-ip-address на ip-адрес вашего Pi и не забудьте двоеточие перед путем. Если вы загрузили файл JSON в другое место, измените свой локальный путь, чтобы отразить это. При появлении запроса введите свой пароль, и файл будет скопирован в домашний каталог Pi.

Вернитесь к терминалу SSH и перейдите к / home / pi . Входить ls -l чтобы вывести список файлов в каталоге. Вы должны увидеть переданный клиентский секретный JSON-файл.

Установка SDK

Google рекомендует работать в виртуальной среде Python. Создайте новую виртуальную среду под названием env .

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

Установите последние версии Pip, Setuptools и Wheel и активируйте свою виртуальную среду:

env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate

У Google Assistant есть некоторые зависимости, которые вы должны сейчас установить в виртуальную среду.

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev

Наконец, установите Google Assistant SDK, образцы и инструмент OAuth.

python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk[samples]
python -m pip install --upgrade google-auth-oauthlib[tool]

Это все, что нужно для начала работы. Если какая-либо из установок не удалась, тщательно проверьте орфографию и интервалы.

Аутентификация Raspberry Pi

Использовать google-auth-oauthlib [инструмент] с помощью файла JSON с учетными данными, загруженного ранее для аутентификации вашего Raspberry Pi.

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype
--scope https://www.googleapis.com/auth/gcm
--save --headless --client-secrets /home/pi/YOUR_CLIENT_SECRET_ID.json

Вам нужно будет заменить YOUR_CLIENT_SECRET_ID загруженным файлом, поэтому сначала стоит скопировать имя файла. Этот идентификатор клиента должен быть правильным. Не меняйте имя файла!

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

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

Вы должны получить подтверждение чтения Учетные данные сохранены: / home / pi… , что означает, что Pi был успешно авторизован с вашей учетной записью Google.

Тестирование

Теперь, когда все на месте, пришло время протестировать вашего Pi Google Assistant. Запустите помощник с помощью этой команды:

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model

Вам нужно будет заменить мой-дев-проект с вашим идентификатором проекта (находится под шестеренкой настроек консоли действий). Ваш идентификатор модели устройства отображается в разделе «Регистрация устройства» консоли действий.

Попробуйте! Скажите 'Окей, Google' и задайте вопрос. Вы можете видеть вывод программы в терминале, когда слышите ответ:

Вот и все! Google Assistant теперь работает на вашем Raspberry Pi. Обратите внимание, что если выходной объем немного низкий, вы можете изменить его, сказав «Окей, Google, увеличь громкость до 80%».

Бонус: GPIO с голосовой активацией

Управлять светом можно с помощью Arduino и Siri, но есть более простой метод. Если вы настроили светодиод, вы можете использовать Google Assistant, чтобы управлять им с помощью голоса.

Настройка Google Assistant для работы с контактами GPIO относительно проста, но требует некоторых дополнительных действий. Перейдите в консоль Google Action Console и найдите свое устройство в разделе «Регистрация устройства». Щелкните по нему и откройте меню свойств:

Повернуть Вкл выкл черта и нажмите Сохранить.

Теперь убедившись, что вы находитесь внутри env виртуальную среду, клонируйте версию SDK на свой Pi с помощью git:

git clone https://github.com/googlesamples/assistant-sdk-python

Поскольку это виртуальная среда, вам необходимо установить RPi.GPIO, прежде чем двигаться дальше.

pip install rpi.gpio

Теперь перейдите в папку, содержащую hotword.py сценарий.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library

Изменение скрипта

Вам нужно будет добавить несколько строк в скрипт hotword.py, поэтому откройте его в редакторе nano:

nano hotword.py

Под операторами импорта добавьте свой собственный для RPi.GPIO.

import RPi.GPIO as GPIO

Ищите process_event метод. В строке 66 удалите или закомментируйте оператор печати и добавьте оператор if для управления светодиодом.

#print('Do command', command, 'with params', str(params))
if command == 'action.devices.commands.OnOff':
if params['on']:
print('---------------')
print('Led turned on')
print('---------------')
GPIO.output(18, GPIO.HIGH)
else:
print('---------------')
print('Led turned off')
print('---------------')
GPIO.output(18, GPIO.LOW)

Эта логика управляет светодиодом, но пока не настроена на вывод. Настройте его в главный() перед вызовом метода process_event.

GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

Теперь вывод GPIO настроен на вывод и инициализируется в низком состоянии. Сохранить и выйти. Вы можете запустить измененный скрипт, передав в качестве аргумента номер идентификатора модели (его можно найти в консоли действий).

python hotword.py --device-model-id YOUR-MODEL-ID-HERE

Вывод на терминал такой же, как и раньше, и помощник будет работать стандартно. Однако теперь, когда вы скажете «Окей, Google, включи», вы увидите новый вывод:

Примечание: Приведенное выше изображение было обрезано, показывая только помощника, который слышит запрос, и оператор печати, добавленный в скрипт.

Вы также должны увидеть, как загорится ваш светодиод!

как скачать видео с youtube на iphone

Ваш собственный домашний помощник Raspberry Pi для Google Home

Этот проект - хорошее введение в использование сервисов Google API. Теперь, когда у вас есть устройство Google Assistant, попробуйте некоторые из лучших команд Google Home --- мы рассмотрели некоторые отличные мини-игры Google Home .

Делиться Делиться Твитнуть Эл. адрес Как очистить компьютер с Windows с помощью командной строки

Если на вашем ПК с Windows не хватает места для хранения, удалите ненужные файлы с помощью этих быстрых утилит командной строки.

Читать далее
Похожие темы
  • Сделай сам
  • Raspberry Pi
  • Умные концентраторы
  • Светодиодные светильники
  • Google Ассистент
  • Руководства по проектам DIY
Об авторе Ян Бакли(Опубликовано 216 статей)

Ян Бакли - независимый журналист, музыкант, исполнитель и видеопродюсер, живущий в Берлине, Германия. Когда он не пишет или на сцене, он возится с электроникой или кодом своими руками в надежде стать безумным ученым.

Ещё от Ian Buckley

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться