Как да създадете DIY Google Home Assistant с Raspberry Pi

Как да създадете DIY Google Home Assistant с Raspberry Pi

Гласовите асистенти бързо се превърнаха в ежедневие. Много домове имат Alexa или Google Home, които контролират всичко - от осветление до медии и дори отчитане на времето.



Технологията, на която работят тези устройства, е достъпна-поне отчасти-за всички. SDK на Google Assistant ви позволява да използвате услугата на собствените си устройства. Този урок обхваща как да настроите Google Assistant на вашия Raspberry Pi и гласово активиране на LED чрез GPIO щифтове.

Хардуер, необходим за Raspberry Pi Home Assistant

Ще имаш нужда:





  1. Raspberry Pi с a нова инсталация на Raspbian на SD картата .
  2. USB уеб камера или микрофон.
  3. Външен високоговорител.
  4. Верига от Pi LED урок (по избор)
  5. Браузър, влязъл в профила ви в Google.

Забележка: Оборудването за този урок може да варира до известна степен. Използвах резервна USB уеб камера чисто за нейния микрофон. Всяка съвместима уеб камера или микрофон би трябвало да се справя добре и има такива обширни списъци с Pi-съвместими устройства да помогна.

Също така използвам 3,5 мм изход за аудио. HDMI и други източници на изход също ще работят, въпреки че ще изискват промени в настройката на звука по -долу.



Включете USB уеб камерата и високоговорителя и настройте LED веригата, ако я използвате.

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

Този урок може да бъде последван директно на Pi или чрез SSH връзка в Пи.

И двата начина започват в терминала, за да проверите настройките на звука. Използвайте командите arecord -l и прилагам -l за изброяване на наличните устройства.

защо се нарича smurf акаунт

Изображението по -горе показва USB уеб камерата като карта 1 и устройство 0 . Обърнете внимание на номерата на картата и устройството както за изхода на микрофон, така и за високоговорители.

Сега, като се уверите, че сте в /home/pi директория, създайте нов файл и го отворете в nano:

sudo nano .asoundrc

Съдържанието на тази директория ще се различава в зависимост от това кои номера на карта и устройство използвате. Тук можете да изберете да предпочитате HDMI изход, а не 3,5 мм, ако желаете.

Когато въведете вашата версия на горния код, натиснете Ctrl + X за запазване и излизане.

Тествайте настройките си, като записвате и възпроизвеждате кратък клип:

По избор стъпка: Ако искате да промените силата на звука на вашия микрофон, отворете alsamixer и натиснете F6 за циклиране между устройства.

Това е! Звукът е настроен.

Създаване на Google Project

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

Това може да отнеме няколко минути. Когато приключите, оставете прозореца активен и отворете нов раздел --- след малко ще стигнем до това.

Активиране на API на Google Assistant

Има няколко онлайн корекции, които трябва да направите, за да продължите. Придвижете се до Уебсайт на API на Google Assistant и щракнете Активиране .

Проектът изисква и разрешения за дейност. Насочете се към вашия Контролен панел за дейности и се уверете, че следните дейности са включени:

  • Активност в мрежата и приложенията (включително квадратчето за история на 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

И накрая, инсталирайте инструмента за разработване на софтуер, примери и OAuth на Google Assistant.

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

Ще трябва да замените my-dev-проект с вашия идентификатор на проект (намира се под зъбното колело за настройки на конзолата за действие). Вашият device-model-id е изброен в раздела Регистрация на устройство на конзолата за действие.

Опитай го! Кажете „OK Google“ и задайте въпрос. Можете да видите изхода на програмата в терминала, докато чуете отговора:

Това е! Google Assistant вече работи на вашия Raspberry Pi. Имайте предвид, че ако изходният обем е малко нисък, можете да го промените, като кажете „Здравей, Google, увеличи силата на звука до 80%.“

Бонус: Гласово активиран GPIO

Възможно е да се контролират светлините с Arduino и Siri, но има по -прост метод. Ако настроите светодиод, можете да използвате Google Assistant, за да го контролирате с гласа си.

Настройването на Google Assistant за работа с GPIO щифтовете е сравнително лесно, но изисква някои допълнителни стъпки. Отидете до конзолата за действие на Google и намерете устройството си под Регистрация на устройство. Кликнете върху него и отворете менюто с черти:

Завъртете Вкл черта върху и кликнете Запазване.

Сега се уверете, че сте вътре в 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)

Тази логика управлява светодиода, но засега не е конфигуриран за извеждане. Настройте го в main () функция преди извикването на метода 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

Изходът на терминала е същият като преди и асистентът ще работи стандартно. Сега обаче, когато кажете „OK Google, включете“, ще видите нов изход:

Забележка: Горното изображение е изрязано, показващо само асистента, който чува заявката, и изявлението за печат, добавено към скрипта.

Вие също трябва да видите, че вашият LED светва!

как да спрете актуализирането на chrome

Вашият собствен DIY Raspberry Pi Google Home Assistant

Този проект е добро въведение в използването на услугите на Google API. Сега, когато имате устройство с Google Асистент, опитайте някои от най-добрите команди на Google Home --- разгледахме някои страхотни мини игри на Google Home .

Дял Дял Туит електронна поща Как да почистите вашия компютър с Windows с помощта на командния ред

Ако на вашия компютър с Windows има малко място за съхранение, почистете боклуците, като използвате тези бързи помощни програми за командния ред.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Малина Пи
  • Интелигентни концентратори
  • LED светлини
  • Google Асистент
  • Уроци за проекти „направи си сам“
За автора Иън Бъкли(216 статии са публикувани)

Иън Бъкли е журналист на свободна практика, музикант, изпълнител и видео продуцент, живеещ в Берлин, Германия. Когато не пише или е на сцената, той се занимава с „направи си сам“ електроника или код с надеждата да стане луд учен.

Още от Иън Бъкли

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате