Lệnh xử lý

Làm theo các hướng dẫn sau để thực thi mã tuỳ chỉnh trên thiết bị của bạn theo lệnh của Trợ lý Google.

Chạy mẫu

Bây giờ, bạn đã xác định được một đặc điểm và cập nhật mô hình, hãy kiểm tra để đảm bảo Trợ lý Google đang gửi lại lệnh Bật/Tắt cho truy vấn thích hợp.

googlesamples-assistant-pushtotalk

Nhấn phím Enter và thử truy vấn sau:

Bật.

Bạn sẽ thấy các câu lệnh sau trong đầu ra của bảng điều khiển. Nếu không, hãy xem phần hướng dẫn khắc phục sự cố.

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.

Bạn sẽ tìm thấy nơi các câu lệnh này được in trong mã nguồn.

Lấy mã nguồn

Giờ thì bạn đã sẵn sàng bắt đầu dự án của riêng mình:

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

Tìm trình xử lý lệnh

Tệp pushtotalk.py trong mã mẫu sử dụng SDK để gửi yêu cầu và nhận phản hồi từ Trợ lý Google.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

Tìm định nghĩa trình xử lý sau:

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

Mã trong onoff() sẽ xử lý lệnh action.devices.commands.OnOff. Lệnh này là một phần của giản đồ đặc điểm OnOff.

Hiện tại, định nghĩa onoff() sẽ ghi lại kết quả đầu ra vào bảng điều khiển. Phương thức này sử dụng các hàm trợ giúp trong device_helpers.py để phân tích cú pháp JSON phản hồi và lưu trữ các tham số lệnh trong các biến để dễ sử dụng. Bạn có thể sửa đổi mã này để làm bất cứ điều gì bạn muốn trên dự án của mình.

Nếu bạn có một bộ đèn LED, hãy tiếp tục đọc để tìm hiểu cách chiếu sáng đèn LED theo lệnh OnOff. Nếu bạn không có, hãy bỏ qua phần tiếp theo để tìm hiểu cách thêm các đặc điểm và trình xử lý khác.

Các bước tiếp theo – Mâm xôi Pi

Bây giờ, bạn đã biết cách xử lý lệnh đến, hãy sửa đổi mã mẫu để bật đèn LED. Quá trình này sẽ yêu cầu thêm một số phần cứng nếu bạn đang sử dụng Raffberry Pi.

Nhập gói GPIO

Để đơn giản hoá quyền truy cập vào phần mềm vào các chân Nhập/Đầu ra cho mục đích chung (GPIO) trên Rspberry Pi, hãy cài đặt gói RPi.GPIO trong môi trường ảo.

pip install RPi.GPIO

Sửa đổi mẫu

Mở tệp pushtotalk.py.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

Trong tệp pushtotalk.py, hãy nhập mô-đun RPi.GPIO để điều khiển các chân GPIO trên Pi. Đặt câu lệnh sau gần các câu lệnh import khác:

import RPi.GPIO as GPIO

Sửa đổi mã để đặt pin đầu ra ban đầu ở trạng thái logic thấp. Khi nhận được lệnh bật, hãy đặt pin ở trạng thái logic cao. Khi nhận được lệnh tắt, hãy đặt pin ở trạng thái logic thấp.

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)

Lưu thay đổi rồi đóng tệp.

Chạy mẫu

Chạy mã mẫu đã sửa đổi.

python pushtotalk.py

Sử dụng cùng một truy vấn như trước đây. Đèn LED sẽ bật.

Đó mới chỉ là khởi đầu. Tìm hiểu cách thêm các đặc điểm và trình xử lý khác.