請按照下列操作說明,在裝置上執行自訂程式碼: 回覆 Google 助理的指令。
執行範例
您已定義特徵並更新模型,接著請檢查 確認 Google 助理會視情境傳回「開啟/關閉」指令 。
googlesamples-assistant-pushtotalk
按下 Enter 鍵並嘗試下列查詢:
啟用。
您應該會在主控台輸出內容中看到下列陳述式。如果沒有,請參閱 疑難排解操作說明。
INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.
您可以看到這些陳述式在原始碼中的位置。
取得原始碼
您現在可以開始建立自己的專案:
git clone https://github.com/googlesamples/assistant-sdk-python
尋找指令處理常式
程式碼範例中的 pushtotalk.py
檔案會使用 SDK 傳送要求,並
接收 Google 助理的回覆。
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
搜尋下列處理常式定義:
device_handler = device_helpers.DeviceRequestHandler(device_id)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
else:
logging.info('Turning device off')
onoff()
中的程式碼會處理 action.devices.commands.OnOff
指令。這個
指令屬於 OnOff
特徵重要性
目前,onoff()
定義會輸出至控制台。使用輔助程式
device_helpers.py
中的函式,用於剖析回應 JSON 並儲存指令
參數中的參數,以便使用您可以修改這個程式碼
您要的專案擁有狀態
如果使用 LED 燈組,請繼續閱讀下文,瞭解如何讓 LED 燈亮起來回應 拖曳到 OnOff 指令如果沒有,請跳至下一節瞭解如何 新增更多特徵和處理常式。
後續步驟 - Raspberry Pi
現在您已瞭解如何處理傳入的指令,請修改程式碼範例 啟動 LED 燈。如果您使用 覆盆子 Pi。
匯入 GPIO 套件
簡化軟體存取方式,以便使用一般用途輸入/輸出 (GPIO) 接腳 安裝 Raspberry Pi,安裝 RPi.GPIO 安裝於虛擬環境中
pip install RPi.GPIO
修改範例
開啟 pushtotalk.py
檔案。
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
在 pushtotalk.py
檔案中,匯入 RPi.GPIO
模組,控制 Pi 上的 GPIO 接腳。請將以下聲明放在
其他 import
陳述式:
import RPi.GPIO as GPIO
修改程式碼,將輸出針腳一開始設為低邏輯狀態。當 ,請將接腳設為高邏輯狀態。當 則將接腳設為低邏輯狀態。
device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)
@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
if on:
logging.info('Turning device on')
GPIO.output(25, 1)
else:
logging.info('Turning device off')
GPIO.output(25, 0)
儲存變更並關閉檔案。
執行範例
執行修改後的程式碼範例。
python pushtotalk.py
請使用與先前相同的查詢。LED 燈應該會開啟。
不過,真正的重頭戲還在後面。瞭解如何新增更多特徵和處理常式。