• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Делаем умную колонку на orange pi zero 2 и Google Assistant

1 июля, 2021

Google Assistant реализован на плате:

Orange pi zero 2: http://alii.pub/5vdpxy

Плата расширения с джеком 3.5 и микрофоном: http://alii.pub/5vdq3l

usb микрофон: http://alii.pub/5vdqby

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

Прежде чем производить настройки в ubintu на orange pi zero 2. Нам необходимо создать новое устройство в сервисах google. Зарегистрировать его и раздать все необходимые разрешения.

Надеюсь гугл аккаунт у Вас у всех есть и не стоит описывать как регистрироваться в гугле.

Переходим в панель инструментов Google Console Actions:

https://console.actions.google.com

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

Здесь вам понадобится кнопка  « Add/Import project », как показано на скриншоте ниже.

Welcome to Google Actions

На следующем экране вам будет предложено ввести « Project Name»

Помимо названия проекта вам необходимо указать и вашу страну, и ваш язык, как показано на скриншоте ниже.

После того, как вы установили название проекта и выбрали язык и страну, нажмите кнопку « Create Project»

Create New Google Project

В новой вкладке перейдите в Google developers console и включите Google Embedded Assistant API.

Теперь, прежде чем продолжить и нажать кнопку  « Enable », убедитесь, что у вас выбран проект который мы создали ранее.

Убедившись, что выбран текущий проект, нажмите кнопку « Enable »

Enable Google Assistant Api

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

Вы должны увидеть текст, в котором говорится: «Are you looking for device registration? Click here».

Все, что вам нужно сделать, чтобы продолжить, нажать на текст «click here ».

Select Google Device Registration

Теперь вы попадете на следующий экран, нажимаем кнопку « Register Model», чтобы продолжить.

 

Модель регистра Raspberry Pi

На этом экране вам нужно установить « Название продукта », « Название производителя » и установить « Тип устройства » ( 1. )

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

Для « Product Name »это имя продукта который мы создаем. На скрине это « pi Google Assistant ». Из всех этих названий и будет формироваться необходимая нам model id.

« Manufacturer name » не имеет большого значения, так как мы не собираемся делать это широко используемым устройством. ПО этому на скрине написано « Pi My Life Up ». ( как видите я взял скрины с сайта PiMyLifeUp.com Так как скринов очень много. По этому поля описываю так как показаны на скринах. В видео я в итоге другие названия вписывал.)

Переходим к « Device Type » и устанавливаем там тип  « Speaker », поскольку, по нашему мнению, он лучше всего соответствует тому, что мы собираемся использовать с API Google Assistant на нашем Orange pi zero 2. Но работать будет и с raspberry pi.

И теперь все то что появилось в поле« Device Model ID », сохраняем к себе в отдельный блакнотик. Оно нам понадобится далее.

Наконец, когда все настроено и вы записали « Device Model ID », нажмите кнопку « Register Model» , чтобы продолжить.

Google Assistant Create Raspberry Pi Model

Теперь, когда вы зарегистрировали модель, вы попадете на экран « Download credentials ».

Этот экран имеет решающее значение, поскольку предоставленный файл учетных данных – это то, что нам нужно для нашего помощника Google на базе Orange pi zero 2 для связи с сервером.

Чтобы получить этот файл учетных данных, нажмите кнопку « Download OAuth 2.0 credentials», как показано на скрине ниже.

Храните это в надежном месте, так как содержимое файла нам понадобится для настроек Orange pi.

После того, как у вас есть учетные данные, которые вы сохранили на компьютер. Вам нужно нажать кнопку « Next» .

Download oAuth 2.0 Credentials

На следующем поле галочки никакие не ставим.

А просто нажимаем кнопку « Save Traits », как показано ниже.

Google Ассистент определяет черты характера

Как только все будет сделано, у Вас должно появиться следующее окно.

Raspberry Pi Google Assistant завершил регистрацию устройства

Теперь у нас есть только одно последнее, что нам нужно сделать, прежде чем мы сможем настроить Google Assistant на самом Orange pi zero 2.

Нам также необходимо настроить экран согласия OAuth. Без этого Google не позволит нам авторизовать наше устройство Orange pi zero 2 с Google Assistant позже в этом руководстве.

Для этого вам нужно будет перейти на страницу настроек API Credentials OAuth consent screen.

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

Во-вторых, вам нужно будет выбрать « External» в качестве типа пользователя ( 2. ). Эта опция позволит любому, у кого есть учетная запись Google, использовать настраиваемое нами программное обеспечение Google Assistant.

После того, как все настроено, нажмите кнопку « CREATE », чтобы перейти к настройке экрана аутентификации ( 3. ).

Select Google Auth Consent Screen User Type

 

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

После того, как все необходимое вписали, нажмите кнопку « Save» ( 2. ) внизу страницы.

Setup oauth Consent Screen

Далее на странице Scopes ничего не меняем А просто нажимаем кнопку “Save and continue”

И во вкладке Test users выберем тоже usera который будет допущен до управления. В нашем случае это тот же наш аккаунт.

Наконец, нам нужно перейти к элементам управления действиями в моей учетной записи Google .

Здесь вам нужно будет активировать следующие элементы управления действиями, чтобы убедиться, что API Google Assistant работает правильно.

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

Все, на этом настройка аккаунта в гугл сервисах закончена.

Теперь перейдем к настройка в консоли.

Для начала перейдем по этой ссылке http://www.orangepi.org/downloadresources/ и скачаем дистрибутив Ubuntu актуальный для нашей платы Orange pi zero 2.

После того как скачали образ с расширение .img. Его нужно установить на флешку.

Я устанавливал программой Raspberry pi imager.

После установики ОС. Я подключился usb/ttl конвертером к orange pi zero 2. Благо это очень нелгко сделать. Ведь на плате специально выведены 3 контакта rx,tx и gnd. Только Обязательно еще GND нужно подключить. Иначе консоль будет работать не корректно.

Все в консоль мы попали. Теперь давайте настроим сеть. Тут два варианта. Если у вас DHCP есть и подключились просто проводом rj-45. То ip адрес получится автоматически. Но на плате нашей же есть wi-fi. ВОт он настраивается командой

nmtui

И после ввода этой команды откроется панель настроек. Там все просто. Находим необходимую нам сеть, вводим от нее пароль и все. Я это показываю в видео которое в конце статьи на 5:54 минуте.

Все, если с сетью проблем нет. То давайте перейдем к настройкам звука. Я использую usb звуковую карту. Так как к сожалению на orange pi zero 2 не работает встроенный микрофон на плате расширения. ПО этому у меня была usb звуковая карта и я использовал ее. Но Вы например можете исопльзовать обычный usb микрофон. Стоит на любимой алишке копейки.

Чтоб проверить какие у нас устройства вывода звука нужно ввести команду:

aplay -l

Чтоб проверить какие записывающие устройства нужно ввести:

arecord -l

Далее нужно создать в каталоге /home/orangepi/ файл .asoundrc . Для этого введем команду nano ~/.asoundrc

И добавить в файл следующее:

pcm.!default {
  type asym
  capture.pcm "mic"
  playback.pcm "speaker"
}
pcm.mic {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
    rate 48000
  }
}
pcm.speaker {
  type plug
  slave {
    pcm "hw:<card number>,<device number>"
  }
}
Где <card number>  – номер карты. <device number> – номер девайса.
И сохраняем файл путем комбинации клавиш CTRL + X, затем Y и, наконец, ENTER .
У меня эта строчка выглядит вот так:
Далее перезагружаем наше устройство. Командой reboot.
После этого нужно проверить работает ли у нас микрофон и динамик.
Для этого вот этой командой запишем 5 секунд голоса.
arecord –format=S16_LE –duration=5 –rate=16000 –file-type=raw out.raw
После записи вот этой командой воспроизведем то что записали.
aplay –format=S16_LE –rate=16000 out.raw
Если вы услышали собственный голос. То все у нас правильно и можем приступать к следующему шагу.
А именно к установке всех необходимых компонентов для работы google assistant
Обновляем все пакеты командой:
sudo apt update
Далее создаем файл googleassistant в корне профиля
mkdir ~/googleassistant
Открываем этот файл для редактирования.
nano ~/googleassistant/credentials.json
И вставляем туда содержимое .JSON файла который мы скачали на комьютер.
После этого делаем следующее:
sudo apt install python3-dev python3-venv python3-pip libssl-dev libffi-dev libportaudio2
Далее
python3 -m venv env
Потом
env/bin/python –m pip install —upgrade pip setuptools
И
source env/bin/activate
Должно впереди появиться (env)
Если на каком-то этапе возникла серьезная ошибка и ничего не выполнилось. То необходимо перезагрузить микрокомпьютер и попробовать заново. Должно получиться.
Далее устанавливаем следующее. Под (env).
python3 -m pip install –upgrade google-assistant-library
python3 -m pip install –upgrade google-assistant-sdk[samples]
Первая команда у меня не сработала. Но видимо так и должно быть.
Теперь нам нужно установить еще одну библиотеку для авторизации.
python3 -m pip install –upgrade google-auth-oauthlib[tool]
После этого вводим длинную команду которая нам в ответ должна вывести url адрес.
pcm.!default {
google-oauthlib-tool --client-secrets ~/googleassistant/credentials.json \
--scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--scope https://www.googleapis.com/auth/gcm \
--save --headless
Нам нужно перейти по этому URL который выдался в консоли и авторизоваться в нем. Чтоб по нему перейти, нужно если у вас putty зажать клавишу Ctrl и жмякнуть по ссылке и она откроется в браузере.
В браузере залогиниваемся, даем все разрешения и в конце получим ключ. Этот ключ копируем и вставляем в консоль.
Если все корректно, то должно выдать что-то типо этого:
credentials saved: /home/pi/.config/google-oauthlib-tool/credentials.json
Все. Теперь можем запустить гугл ассистент. Для этого нужно ввести команду:
googlesamples-assistant-pushtotalk –project-id <projectid> –device-model-id <deviceid>
Где projectid – это id проекта. Его можно посмотреть в личном кабинете.
А deviceid – это id которое мы сохраняли раньше, когда создавали устройство.
Если вы все корректно ввели, то Вас попросит нажать клавишу ENTER и что-либо сказать. И google ассистент начнет Вам отвечать.
В последующие разы нам не нужно будет id указывать. Достаточно будет зайти в окружение командой:
source env/bin/activate
И ввести команду для открытия гугл ассистента:
googlesamples-assistant-pushtotalk
К сожалению гугл ассистент теперь работает только по кнопке. В реальном времени на команду ок, гугл. Он реагировать не будет.
Если Вам интересна эта тема, то я попробую решить эту проблему. Но чтоб я об этом знал, пишите свое мнение и пожелания в комментариях.
Видео с демонстрацией всех этих шагова тут:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·