คําสั่งสําหรับจัดการ

ทําตามวิธีการต่อไปนี้เพื่อเรียกใช้โค้ดที่กําหนดเองในอุปกรณ์ใน การตอบสนองต่อคำสั่งจาก Google Assistant

เรียกใช้ตัวอย่าง

ตอนนี้คุณกำหนดลักษณะและอัปเดตโมเดลแล้ว อย่าลืมตรวจสอบว่า ตรวจสอบว่า Google Assistant กำลังส่งคำสั่งเปิด/ปิดกลับมาเพื่อให้ คำถาม

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 Assistant

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 การดำเนินการนี้ต้องการฮาร์ดแวร์เพิ่มเติมหากคุณใช้ Raspberry Pi

นำเข้าแพ็กเกจ GPIO

เพื่อให้ซอฟต์แวร์เข้าถึง PIN สำหรับอินพุต/เอาต์พุตทั่วไป (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 ในการควบคุมพิน GPIO บน Pi วางข้อความต่อไปนี้ไว้ใกล้กับ คำชี้แจงอื่นๆ ของ import:

import RPi.GPIO as GPIO

แก้ไขโค้ดเพื่อตั้งค่า PIN เอาต์พุตเป็นสถานะตรรกะต่ำในตอนแรก เมื่อ เมื่อได้รับคำสั่งแล้ว ให้ตั้งค่า PIN เป็นสถานะ High Logic เมื่อ ได้รับคำสั่ง off แล้ว ให้กำหนด PIN เป็นสถานะ Low Logic

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 ควรสว่างขึ้น

ข้อมูลข้างต้นเป็นเพียงแค่ส่วนหนึ่งเท่านั้น ดูวิธีเพิ่มลักษณะและเครื่องจัดการเพิ่มเติม