Cihazınızda özel kodu çalıştırmak için aşağıdaki talimatları uygulayın: Google Asistan'dan komutlara yanıt verme.
Örneği çalıştırma
Artık bir özellik tanımladığınıza ve modeli güncellediğinize göre, Google Asistan'ın uygun içerik için bir Açma/Kapatma komutu gönderdiğinden emin olun emin olun.
googlesamples-assistant-hotword --device-model-id my-model
Şu sorguyu deneyin:
Ok Google, etkinleştir.
Konsol çıkışında aşağıdaki ifadeleri görürsünüz. Belgeyi görmüyorsanız sorun giderme talimatlarını inceleyin.
ON_RECOGNIZING_SPEECH_FINISHED:
{'text': 'turn on'}
ON_DEVICE_ACTION:
{'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}
Bu ifadelerin kaynak kodunda yazdırıldığı yeri bulabilirsiniz.
Kaynak kodunu alma
Artık kendi projenizi başlatmaya hazırsınız:
git clone https://github.com/googlesamples/assistant-sdk-python
Komut işleyiciyi bulma
Örnek koddaki hotword.py
dosyası, istekleri göndermek ve
Google Asistan'dan yanıt alabilir.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
Aşağıdaki işleyici tanımını arayın:
def process_event(event):
Şu anda bu işlev her Cihaz İşlemi etkinlik adını ve parametresini şu satırla değiştirin:
print('Do command', command, 'with params', str(params))
Bu kod, action.devices.commands.OnOff
komutunu işler. Bu
komutu OnOff öğesinin bir parçasıdır
özellik şeması. Şu anda bu kod yalnızca çıktıyı konsola yazdırır. Şunları yapabilirsiniz:
bu kodu doğrudan hesabınızda istediğiniz işlemi yapacak şekilde
belirler. Aşağıdaki bloğu process_event()
komutundaki print
komutunun altına ekleyin.
print('Do command', command, 'with params', str(params)) # Add the following: if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') else: print('Turning the LED off.')
Sonucu görmek için değiştirilmiş kaynak kodunuzu doğrudan çalıştırın.
python hotword.py --device-model-id my-model
Önceki sorguyu tekrar kullanın:
Ok Google, etkinleştir.
Bir LED'i bağladıysanız görebilirsiniz, aksi takdirde LED'in nasıl yanacağını öğrenmek için okumaya devam edin. açma/kapatma komutuna dokunun. Henüz yapmadıysanız sonraki bölüme geçerek Daha fazla özellik ve işleyici ekleyin.
Sonraki adımlar - Raspberry Pi
Gelen komutu nasıl işleyeceğinizi artık bildiğinize göre örnek kodu değiştirin yakıyor. Raspberry Pi.
GPIO paketini içe aktarma
Yazılımın Genel Amaçlı Giriş/Çıkış (GPIO) pimlerine erişimini basitleştirmek için RPi.GPIO'yu yükleyin ve sanal ortamdaki pakettir.
pip install RPi.GPIO
Örneği değiştirme
hotword.py
dosyasını açın.
nano hotword.py
hotword.py
dosyasına RPi.GPIO'yu içe aktarın.
modülünü kullanabilirsiniz. Aşağıdaki ifadeyi
diğer import
ifadeleri:
import RPi.GPIO as GPIO
Çıkış PIN'ini başlangıçta düşük mantık durumuna ayarlamak için kodu değiştirin. Bunu yap
main()
işlevinde, etkinlikleri işlemeden önce:
with Assistant(credentials, device_model_id) as assistant: events = assistant.start() device_id = assistant.device_id print('device_model_id:', device_model_id) print('device_id:', device_id + '\n') GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) ....
process_event()
ürününde eklediğiniz kodu değiştirin. on komutu alındığında
PIN'i yüksek mantık durumuna ayarlayın. Kapalı komutu alındığında
düşük mantık durumuna sabitleyin.
if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') GPIO.output(25, 1) else: print('Turning the LED off.') GPIO.output(25, 0)
Değişikliklerinizi kaydedin ve dosyayı kapatın.
Örneği çalıştırma
Değiştirilen örnek kodu çalıştırın.
python hotword.py --device-model-id my-model
Önceki sorguyu kullanın. LED yanacaktır.
Bu daha başlangıç. Nasıl daha fazla özellik ve işleyici ekleyeceğinizi öğrenin.