Google Asistan'dan gelen komutlara yanıt olarak cihazınızda özel kod yürütmek için bu talimatları uygulayın.
Örneği çalıştır
Artık bir özellik tanımladığınıza ve modeli güncellediğinize göre, Google Asistan'ın uygun sorgu için bir Açık/Kapalı komutu gönderip göndermediğini kontrol edin.
googlesamples-assistant-pushtotalk
Enter tuşuna basın ve aşağıdaki sorguyu deneyin:
Açın.
Konsol çıkışında aşağıdaki ifadeleri görmeniz gerekir. Görmüyorsanız sorun giderme talimatlarına bakın.
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.
Bu ifadelerin nerede yazdırıldığını kaynak kodunda bulabilirsiniz.
Kaynak kodu alın
Artık kendi projenizi başlatmaya hazırsınız:
git clone https://github.com/googlesamples/assistant-sdk-python
Komut işleyicisini bulma
Örnek koddaki pushtotalk.py
dosyası, Google Asistan'dan istek göndermek ve yanıt almak için SDK'yı kullanır.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Şu işleyici tanımını arayın:
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()
içindeki kod action.devices.commands.OnOff
komutunu işler. Bu komut, OnOff özellik şemasının bir parçasıdır.
onoff()
tanımı, şu an için konsola çıkış sunmaktadır. JSON yanıtını ayrıştırmak ve kullanım kolaylığı için komut parametrelerini değişkenlerde depolamak için device_helpers.py
içindeki yardımcı işlevleri kullanır. Bu kodu, projenizde istediğiniz işlemi
yapacak şekilde değiştirebilirsiniz.
LED kitiniz varsa Açık Kapalı komutuna yanıt olarak LED'i nasıl yakacağınızı öğrenmek için okumaya devam edin. Aksi takdirde daha fazla özellik ve işleyici eklemeyi öğrenmek için sonraki bölüme geçin.
Sonraki adımlar - Rabsberry Pi
Gelen komutu nasıl işleyeceğinizi öğrendiğinize göre, örnek kodu LED ışığı yakacak şekilde değiştirebilirsiniz. Ahududu Pi'yi kullanıyorsanız bu işlem için ek donanım gerekir.
GPIO paketini içe aktarma
RAPberry Pi'deki Genel Amaçlı Giriş/Çıkış (GPIO) PIN'lerine yazılım erişimini basitleştirmek için RPi.GPIO paketini sanal ortama yükleyin.
pip install RPi.GPIO
Örneği değiştir
pushtotalk.py
dosyasını açın.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py
Pi'deki GPIO pinlerini kontrol etmek için pushtotalk.py
dosyasında RPi.GPIO modülünü içe aktarın. Aşağıdaki ifadeyi diğer import
ifadelerinin yanına yerleştirin:
import RPi.GPIO as GPIO
Çıkış PIN'ini başlangıçta düşük mantık durumuna ayarlamak için kodu değiştirin. On komutu alındığında PIN'i yüksek mantık durumuna ayarlayın. Kapalı komutu alındığında PIN'i düşük mantık durumuna ayarlayın.
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)
Değişikliklerinizi kaydedin ve dosyayı kapatın.
Örneği çalıştır
Değiştirilen örnek kodu çalıştırın.
python pushtotalk.py
Önceki sorguyu kullanın. LED yanmalıdır.
Bu daha başlangıç. Daha fazla özellik ve işleyici eklemeyi öğrenin.