如何用樹莓皮打造diy谷歌家庭助理

想建立自己的語音控制智慧家居樞紐?下面是如何使用樹莓皮谷歌助手!...

語音控制助理很快就變得司空見慣了。許多家庭都有一個Alexa或googlehome來控制從燈光到媒體的一切,甚至計時。

diy-home-assistant-raspi

這些設備運行的技術,至少在一定程度上是可以提供給每個人的。Google的助手SDK允許您在自己的設備上使用該服務。本教程介紹如何在樹莓Pi上設置Google助手,以及如何通過GPIO引腳激活LED。

raspberry pi家庭助理所需的硬件

Raspberry Pi Google Assistant Required Equipment

您需要:

  1. 在SD卡上安裝了一個新的樹莓皮。
  2. USB網絡攝像頭或麥克風。
  3. 外部揚聲器。
  4. Pi LED教程中的電路(可選)
  5. 一個瀏覽器登錄到你的谷歌帳戶。

注意:本教程的設備可能會有所不同。我只用了一個備用的USB攝像頭作為麥克風。任何兼容的網絡攝像頭或麥克風都應該可以,並且有大量的Pi兼容設備列表可以提供幫助。

另外,我使用3.5毫米的音頻輸出。HDMI和其他輸出源也可以工作,不過需要對下面的聲音設置進行修改。

**USB網絡攝像頭和揚聲器,如果正在使用,請設置LED電路。

設置聲音

本教程可以直接在Pi上進行,也可以通過SSH連接到Pi。

兩種方式都從終端開始,以檢查聲音設置。使用命令arecord-l和aplay-l列出可用的設備。

Check the Playback and Recording devices

上圖顯示USB網絡攝像頭為卡1和設備0。記下麥克風和揚聲器輸出的卡和設備編號。

現在,確保您位於/home/pi目錄下,創建一個新文件並在nano中打開它:

sudo nano .asoundrc

此目錄的內容將因您使用的卡和設備號而異。如果您願意,您可以選擇支持HDMI輸出,而不是3.5毫米。

asoundrec config file for microphone and speaker

輸入上述代碼的版本後,按Ctrl+X保存並退出。

通過錄制和播放短片段測試設置:

Make a test recording to check your setup

可選步驟:如果要更改麥克風的輸入音量,請打開alsamixer並按F6在設備之間循環。

就這樣!聲音設置完畢。

創建google項目

打開Pi的瀏覽器,或者,如果通過SSH連接,則在本地打開瀏覽器。導航到Google操作控制檯並單擊newproject。

Create a new Google Project

這可能需要一些時間。完成後,讓窗口保持活動狀態並打開一個新的選項卡——我們馬上就要開始了。

啟用google助手api

您需要進行一些在線調整才能繼續。導航到GoogleAssistant API網站,然後單擊Enable。

Enable the Google Assistant API

項目還需要活動權限。請轉到“活動控制面板”,並確保以下活動已打開:

  • Web和應用程序活動(包括Chrome歷史複選框)
  • 設備信息
  • 語音和音頻活動

Changing Google Activity settings

現在您可以繼續註冊設備了。

註冊你的樹莓皮

回到操作控制檯,從左側面板中選擇設備註冊。在“產品”下,為您的設備創建一個易於記憶的名稱。**商名稱不重要(但必須存在),請選擇“自動”作為設備類型。

Register your Pi as a Model

單擊Register Model,然後在下一個屏幕上單擊Download OAuth 2.0 Credentials。這會將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/

用pi的ip地址替換“raspberry pi ip address”,不要忘記路徑前面的冒號。如果您將JSON文件下載到另一個位置,請修改本地路徑以反映這一點。在提示時輸入密碼,文件將複製到Pi的主目錄。

Copy the Secret Cient ID to the PI

切換回SSH終端,並導航到/home/pi。輸入ls-l列出目錄中的文件。您應該看到傳輸的客戶機機密JSON文件。

安裝sdk

Google建議在Python虛擬環境中工作。創建一個名為env的新虛擬環境。

如果您以前從未這樣做過,本教程將幫助您學習如何使用Python虛擬環境。

安裝最新版本的Pip、Setuptools和Wheel並激活您的虛擬環境:

env/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activate

googleassistant有一些依賴項,您現在應該將這些依賴項安裝到虛擬環境中。

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

最後,安裝Google助手SDK、示例和OAuth工具。

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

這是一切需要啟動和運行。如果任何安裝失敗,請徹底檢查拼寫和間距。

鑑定樹莓皮

使用google auth oauthlib[tool]和前面下載的憑證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

您需要用下載的文件替換\u CLIENT\u SECRET\u ID,因此首先複製文件名是值得的。此客戶端ID必須正確。不要更改文件名!

你應該得到一個帶有鏈接的消息,要求你粘貼一個授權碼。

Generating the Authorization link from the command line.

單擊鏈接將打開瀏覽器。系統將提示您在Google帳戶上啟用該設備。複製下面的授權碼,並將其粘貼回終端窗口。

您應該會收到一個確認閱讀憑證保存:/home/pi…,這意味著pi已被成功授權與您的谷歌帳戶。

測試一下

現在一切都準備好了,是時候測試一下你的pigoogle助手了。使用以下命令運行助手:

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

您需要用項目ID替換my dev項目(在操作控制檯的設置齒輪下找到)。您的設備型號id列在操作控制檯的設備註冊部分下。

試試看!說“好的谷歌”然後問一個問題。當您聽到響應時,可以在終端中看到程序輸出:

Terminal output for Google Assistant

就這樣!谷歌助手現在正在你的樹莓皮上運行。注意,如果輸出音量有點低,你可以通過說“嘿,谷歌,把你的音量調高到80%”來改變它

獎勵:語音激活gpio

可以用Arduino和Siri控制燈光,但有一種更簡單的方法。如果你設置了一個LED,你可以使用谷歌助手來控制你的聲音。

設置googleassistant以使用GPIO引腳相對簡單,但需要一些額外的步驟。前往谷歌操作控制檯,在設備註冊下找到你的設備。單擊它,然後打開traits菜單:

Activating the OnOff Assistant trait

打開OnOff特性,然後單擊Save。

現在確保您在env虛擬環境中,使用git將SDK的一個版本克隆到Pi:

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

因為這是一個虛擬環境,所以您需要安裝RPi.GPIO文件在前進之前。

pip install rpi.gpio

現在,導航到包含熱詞.py腳本。

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

修改腳本

你需要在表格上加幾行字熱詞.py腳本,所以在nano編輯器中打開它:

nano hotword.py

在import語句下,添加您自己的RPi.GPIO文件.

import RPi.GPIO as GPIO

查找process\u event方法。在第66行,刪除或註釋掉print語句,並添加if語句來控制LED。

#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)

這個邏輯控制LED,但到目前為止還沒有配置為輸出。在調用process\u event方法之前,在main()函數中設置它。

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

現在GPIO引腳被設置為輸出並在低狀態下初始化。保存並退出。您可以運行修改後的腳本,將模型id號(在操作控制檯中找到)作為參數傳遞。

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

終端輸出與之前相同,助手將按標準工作。然而,現在當你說“好的,谷歌,打開”你會看到一個新的輸出:

Terminal Message showing "LED turning on" print statement

注意:上面的圖像已經被裁剪,只顯示助理正在聽取請求,並且print語句被添加到腳本中。

你應該看到你的LED燈也亮了!

Voice activated LED.

你自己的diy樹莓皮谷歌家居助理

這個項目很好地介紹瞭如何使用googleapi服務。現在你有了一個Google助手設備,可以嘗試一些最好的googlehome命令了——我們已經看了一些很棒的googlehome小遊戲。

  • 發表於 2021-03-22 22:23
  • 閱讀 ( 52 )
  • 分類:DIY

你可能感興趣的文章

10+禮物的想法誰擁有一個樹莓皮

... 如果你不熟悉這個裝置,我們已經回答了關於樹莓皮最常見的問題。你最需要知道的是,如果你愛的人有一個圓周率,他們會想修補它。 ...

  • 發佈於 2021-03-12 08:25
  • 閲讀 ( 52 )

18個有趣的diy樹莓皮案例創意

...有人都有舊的套件,有缺陷或只是太過時了,現在沒有任何用處。為什麼不創造一個完美的復古外殼? ...

  • 發佈於 2021-03-13 15:17
  • 閲讀 ( 49 )

為什麼你什麼都不用樹莓皮

想**一個網路連線的doodad,它會閃爍LED嗎?你可以用樹莓皮!畢竟,當你的工具箱裡只有一把錘子的時候,你很容易把一切都看成釘子。但你不應該,這就是原因。 ...

  • 發佈於 2021-03-14 14:25
  • 閲讀 ( 70 )

皮:最後的邊疆(是關於星星和其他東西的,明白嗎?)

...切,甚至更多。在下面分享你的結果,讓我們知道你是如何用你的樹莓圓周率來拍攝夜空的! ...

  • 發佈於 2021-03-15 04:27
  • 閲讀 ( 40 )

如何用高畫質電視買到便宜的智慧電視

現在是2016年,我們還是不建議買智慧電視。事實上,如果你有一箇舊的高畫質晰度電視工作得很好,你應該堅持它。你可以很容易地把它變成智慧電視——不,比智慧電視好。 ...

  • 發佈於 2021-03-16 22:50
  • 閲讀 ( 49 )

如何處理舊電腦顯示器:5個有用的想法

...。你可以買一個官方的DAKboard,但**商自己已經展示瞭如何用覆盆子皮**你自己的牆式展示。當你可以用更少的錢和一點古怪的樂趣來建造一個時,選擇是顯而易見的。 ...

  • 發佈於 2021-03-17 04:23
  • 閲讀 ( 60 )

如何用樹莓皮打造自己的android平板電腦

想自己**四核平板電腦嗎?發現商業選擇過於昂貴而無法考慮?只需一個樹莓皮,一些3D列印外殼,一個可充電電池,和一個觸控式螢幕顯示器,你就可以——這裡是方法。 ...

  • 發佈於 2021-03-18 17:31
  • 閲讀 ( 66 )

如何用樹莓皮製作android電視盒

想**一個基於Raspberry Pi的media center,但發現基本的Kodi安裝沒有提供足夠的功能?別擔心,有一個經過考驗的替代品:Android電視! ...

  • 發佈於 2021-03-18 23:14
  • 閲讀 ( 61 )

6個diy筆記本套件和專案,打造你自己的膝上型電腦

... 有那麼多樹莓皮膝上型電腦專案包,但哪一個是最好的?我們認為這是Pi-top,一款帶有可伸縮鍵盤面板的模組化膝上型電腦。在這裡,你把你的樹莓圓周率,連線到圓周率頂部的連...

  • 發佈於 2021-03-19 19:07
  • 閲讀 ( 46 )

如何用樹莓圓周率直播youtube

透過新增一個攝像頭模組到你的樹莓皮,你基本上得到一個行動式,輕便,易於持有或安裝網際網路連線的相機。 ...

  • 發佈於 2021-03-20 15:31
  • 閲讀 ( 49 )