Превърнете Raspberry Pi в домашен домашен Google

източник

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

В тази статия ще се научите да превръщате Raspberry Pi в домашно устройство на Google Home, което е,

  • Осъществено от Google Assistant.
  • Гласът е активиран. Няма нужда да натискате който и да е бутон, просто кажете „Ok Google“ или „Hey Google“ и задайте въпроса си.
  • Ще има светодиоден индикатор, който ще се включва винаги, когато разговорът между потребителя и Google Assistant го върви.
  • Той може да се инициализира при стартиране, така че няма нужда да влизате и да стартирате скрипта от терминала след рестартиране.

Така че, нека започнем

Какви неща ще ви трябват?

  • Raspberry Pi модел 2 или 3.
  • MicroSD карта с Raspbian на нея (препоръчва се минимум 8GB).
  • Захранване за захранване на вашия малинов пи. (Всяко USB мобилно зарядно устройство с минимален изход 5V, 2A ще работи.)
  • USB микрофон (Тъй като Raspberry Pi няма вграден микрофон. Използвах MI-305).
  • Говорител.
  • Светодиод.
  • Няколко проводника за свързване на LED.

След като имате всички тези неща, влезте в Raspbian десктоп и отидете на следващите стъпки една по една.

Стъпка -1: Настройка на USB микрофон.

  • Raspberry Pi няма вградени микрофони. Ако искате да записвате аудио, трябва да прикачите USB микрофон.
  • Включете USB микрофона в някой от USB слотовете на вашия Raspberry Pi.
  • Отидете до терминала и въведете следната команда.
  • Тази команда ще изброява всички налични устройства за аудио запис. Трябва да получите под продукцията.

Както можете да видите, вашето USB устройство е свързано с карта 1, а идентификаторът на устройството е 0. Raspberry Pi разпознава карта 0 като вътрешна звукова карта (която е bcm2835), а други външни звукови карти като външни звукови карти.

  • Сега, нека да променим аудио конфигурациите. Въведете командата по-долу, за да редактирате файла asound.conf.
  • Добавете по-долу редове във файла. След това натиснете Ctrl + X и след това Y, за да запазите файла.

Това ще настрои външния ви микрофон (вижте pcm.mic) като устройство за улавяне на аудио (вижте в pcm! .Default) и вградената ви звукова карта (карта 0) като устройство за високоговорители.

  • Създайте нов файл с име.

Стъпка -2: Настройка на вашия високоговорител.

  • Свържете високоговорителя си към 3,5 мм жак за слушалки на Raspberry Pi.
  • Изпълнете командата отдолу, за да отворите екрана за конфигурация на малинов пи.
  • Отидете на Разширени опции> Аудио и изберете желаното устройство за изход.

Стъпка -3: Тествайте микрофона и високоговорителите.

  • За да тествате високоговорителя, изпълнете командата под командата в терминала. Това ще възпроизведе тестов звук. Натиснете Ctrl + C, когато сте готови. Ако не можете да чуете тестовия звук, проверете връзката на високоговорителя.
  • За да тествате микрофона, следвайте командата. Това ще запише кратък аудио клип. Ако получите някаква грешка, проверете стъпка 1 отново.
  • Възпроизведете записаното аудио и потвърдете, че всичко работи правилно, като издадете следната команда.

Добре. Нашият хардуер е настроен.

Стъпка -4: Изтеглете необходимите пакети и конфигурирайте Python среда:

  • Първо, актуализирайте вашата операционна система.
  • Изпълнете командата по-долу една по една в терминала.

Това ще създаде Python 3 среда (тъй като библиотеката на Google Assistant работи само на Python 3.x) във вашия малинов пи и ще инсталирате необходимите зависимости.

  • Активирайте средата на python.
  • Сега инсталирайте пакета SDK за Google Assistant, който съдържа целия код, необходим за стартиране на Google Assistant на Raspberry Pi. Тя трябва да изтегли библиотеката на Google Assistant и демонстрацията.

Стъпка -5: Активиране на облачния проект на Google Assistant.

  • Отворете облачната конзола на Google и създайте нов проект. (Можете да го наречете каквото искате.) Профилът, с който влизате, ще бъде използван за изпращане на заявки до Google Assistant и получаване на вашият персонализиран отговор.
  • Преминете към мениджъра на API и активирайте API на Google Assistant.
  • - Уверете се, че сте активирали активността в мрежата и приложенията, информацията за устройството и гласовата и аудио активност в контролите за активност за профила.
  • - Отидете на „Поверителни данни“ и настройте екрана за съдържание на OAuth.
  • Отидете в раздела „Поверителни данни“ и създайте нов идентификационен номер на клиента на OAuth.
  • Изберете типа на приложението като „Друго“ и посочете името на ключа.
  • Изтеглете файла JSON, който съхранява основната информация за OAuth и го запазете.

Стъпка -6: Удостоверяване на Raspberry Pi

  • Инсталирайте инструмента за упълномощаване, като стартирате под командата.
  • Стартирайте инструмента, като изпълните следната команда. Уверете се, че сте посочили правилния път за файла JSON, който сте изтеглили в стъпка 5.
  • Тя трябва да се показва, както е показано по-долу. Копирайте URL адреса и го поставете в браузър (това може да направите на вашите програмисти

Ако вместо това, той показва: InvalidGrantError, тогава е въведен невалиден код. Опитай пак.

Стъпка -7: Настройка на LED индикатора.

  • Свържете вашия LED между GPIO щифт 25 и земята.
  • Идеята тук е проста. Ще настроим GPIO пин 25 като изходен щифт. SDK на Google Assistant предоставя обратното извикване EventType.ON_CONVERSATION_TURN_STARTED, когато започне преобразуването с Google Assistant. В този момент ще настроим GPIO 25 да свети светодиода. Винаги, когато разговорът приключи, ще бъде получено събитието.ON_CONVERSATION_TURN_FINISHED. В този момент ще нулираме GPIO 25, за да изключим светодиода.

Стъпка -8: Инициализацията при зареждане завършена:

  • Всеки път, когато вашият Raspberry Pi завърши процеса на зареждане, ще стартираме python скрипт, който ще удостоверява и инициализира Google Assistant при стартиране.
  • Първо добавете RPi.GPIO пакет, за да добавите GPIO поддръжка, като използвате следната команда.
  • Отидете в потребителската директория. Създайте нов файл python main.py.
  • Напишете следния скрипт и запазете файла.
  • Сега създайте един скрипт на черупката, който ще инициализира и стартира Google Assistant.
  • Поставете под редовете във файла и го запазете.
  • Дайте разрешение за изпълнение.

Можете да стартирате google-assistant-init.sh, за да стартирате Google Assistant по всяко време.

Нека да видим как можете да стартирате Google Assistant по време на зареждане.

  • За да активирате Google Assistant при зареждане, има два начина. Нека видим всеки от тях.

1. Автоматично стартиране с пикселен работен плот при зареждане:

  • Това ще стартира Google Assistant веднага след стартиране на работния плот на Pixel. Уверете се, че сте избрали „Desktop“ зареждане в Raspberry Pi конфигурации.
  • Въведете командата по-долу.
  • Добавете следното след @xscreensaver -no-splash
  • Запазете и излезте, като натиснете „Ctrl + X“ и след това „Y“.

2. Автоматично стартиране с CLI на Boot:

  • Това ще стартира Google Assistant, ако сте задали CLI зареждане. Уверете се, че сте избрали "CLI" зареждане в Raspberry Pi конфигурации.
  • Въведете командата по-долу.
  • Добавете долния ред в края на файла.
  • Запазете и излезте, като натиснете „Ctrl + X“ и след това „Y“.
Това е всичко!!! Вие „Домашен дом в Google“ вече е готов. Рестартирайте устройството и задайте първия си въпрос на вашия Google Assistant.

Заключение:

Можете да правите много неща ежедневно с дома си в Google. Ако искате да изпълнявате собствените си задачи като изключване на светлината, отваряне на вратата, можете да го направите, като интегрирате Google Actions във вашия Google Assistant. Ако имате проблеми със стартирането на Google Assistant, оставете коментар по-долу. Ще се опитам да ги разреша.

~ Ако статията ви е харесала, щракнете върху по-долу, така че повече хора да я видят! Също така, можете да ме следите в Medium или в My Blog, така че да получавате актуализации относно моите бъдещи статии !! ~