Πίνακας περιεχομένων:

Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast): 13 βήματα
Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast): 13 βήματα

Βίντεο: Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast): 13 βήματα

Βίντεο: Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast): 13 βήματα
Βίντεο: Πώς Μπλοκάρω Διαφημίσεις ΠΑΝΤΟΥ Χωρίς Adblock 2024, Νοέμβριος
Anonim
Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast)
Αποκτήστε μια οθόνη για το Google Home σας χρησιμοποιώντας το Raspberry Pi και το Dialogflow (εναλλακτική λύση Chromecast)

Από τότε που αγόρασα το σπίτι μου στο Google, ήθελα να ελέγξω τις συσκευές μου στο σπίτι χρησιμοποιώντας φωνητικές εντολές. Λειτουργεί καταπληκτικά από κάθε άποψη, αλλά ένιωσα άσχημα για τη λειτουργία του βίντεο. Μπορούμε να παρακολουθήσουμε το Youtube και το Netflix μόνο εάν διαθέτουμε συσκευή Chromecast ή τηλεόραση με ενσωματωμένη λειτουργία Chromecast. Έχω ένα Raspberry Pi μαζί μου, οπότε σκέφτηκα να το χρησιμοποιήσω για να παίξω τα αγαπημένα μου βίντεο και ταινίες με φωνητικές εντολές.

Βήμα 1:

Image
Image

Για αυτό, έκανα την ακόλουθη ρύθμιση

Google Home -> Dialogflow -> Rpi διεύθυνση IP στο Dataplicity -> Nodejs Server -> Κωδικός για το άνοιγμα διευθύνσεων URL

Το Dialogflow είναι μια τεχνολογία αλληλεπίδρασης ανθρώπου-υπολογιστή της Google που βασίζεται σε φυσικές γλώσσες. Με τη βοήθεια αυτού, μπορούμε να αναπτύξουμε τις δικές μας συνομιλίες ή εργασίες που θα δώσουμε ως είσοδο στο Google home. Αυτό λειτουργεί ως εξής

Πρόθεση [Εισαγωγή, ερώτηση, συνομιλία, εντολή….] -> Google Home -> ενέργεια [απάντηση]

Εδώ, η απάντηση μπορεί είτε να είναι μια απλή συνομιλία είτε αλλιώς δεδομένα που λαμβάνονται από ένα webhook, το οποίο πρόκειται να κάνουμε χρησιμοποιώντας τον διακομιστή Rpi. Έτσι, μεταβείτε στον ιστότοπο Dialogflow και δημιουργήστε έναν λογαριασμό και έναν νέο πράκτορα.

Στη συνέχεια, δημιουργήστε μια νέα πρόθεση….

Βήμα 2:

Εικόνα
Εικόνα

Στη συνέχεια, εισαγάγετε τις φράσεις εκπαίδευσης. Αυτές είναι οι εντολές που μιλούν οι χρήστες όταν προσπαθούν να αποκτήσουν πρόσβαση σε μια συγκεκριμένη εργασία από το Google Home.

Βήμα 3:

Εδώ, η λέξη «ιστότοπος» μπορεί να αλλάξει σε οτιδήποτε όπως το youtube, το Netflix, το amazon prime κλπ … Έτσι, αυτή η λέξη λειτουργεί ως μεταβλητή και όταν επιλέγετε τη λέξη ιστότοπος [χρησιμοποιώντας ποντίκι] λαμβάνετε τα ακόλουθα

Βήμα 4:

Εικόνα
Εικόνα

Από, το αναπτυσσόμενο μενού, επιλέξτε ‘@sys.any’ και πατήστε enter.

Βήμα 5:

Εικόνα
Εικόνα

Στη συνέχεια, εισαγάγετε το ίδιο όνομα παραμέτρου στην ενότητα ενεργειών. Οι τιμές που αναφέρονται σε αυτήν την ενότητα αποστέλλονται στο webhook ως αρχείο JSON, το οποίο πρέπει να ανακτήσουμε στον διακομιστή για να γνωρίζουμε ποιον ιστότοπο έχει επικαλεστεί ο χρήστης.

Η τιμή μιας μεταβλητής ανακτάται χρησιμοποιώντας το '$ variable_name'

Βήμα 6:

Εικόνα
Εικόνα

Προσθέστε την απάντηση που πρέπει να ακούσουμε αφού πούμε την εντολή στο Google Home. Στη συνέχεια, αποθηκεύστε την πρόθεση. Αν χρειαστεί ορίστε αυτήν την πρόθεση ως το τέλος της συνομιλίας.

Βήμα 7:

Τώρα θα δημιουργήσουμε την υπηρεσία back-end για να πάρουμε αυτά τα ερωτήματα να ανοίγουν βίντεο και ιστότοπους στο raspberry pi μας.

Η υπόλοιπη ρύθμιση

Dataplicity -> διακομιστής Nodejs -> κώδικας

Γιατί χρειαζόμαστε τη δημοτικότητα δεδομένων; επειδή το Google Home συνδέεται με webhooks που είναι προσβάσιμα μέσω Διαδικτύου. Παρόλο που το GHome μας είναι συνδεδεμένο στο τοπικό δίκτυο, τα ερωτήματα προέρχονται από την υπηρεσία cloud Google και ως εκ τούτου, υπάρχει ανάγκη μεταφοράς του διακομιστή μας στο διαδίκτυο. Αντί για αυτόν τον πονοκέφαλο, μπορούμε να χρησιμοποιήσουμε υπηρεσίες δεδομένων για να τοποθετήσουμε το raspberry pi στο διαδίκτυο με ευκολία.

Πρώτα, συνδεθείτε με το raspberry pi [απευθείας με HDMI ή ακόμα και με SSh] Λάβετε τον τελευταίο χρόνο λειτουργίας nodejs από την ακόλουθη εντολή στο τερματικό.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Στη συνέχεια, εγκαταστήστε το χρησιμοποιώντας

sudo apt -get install -y nodejs

Στη συνέχεια, δημιουργήστε ένα νέο αρχείο

nano webserver.js

Βήμα 8:

Στη συνέχεια, εισαγάγετε τον παρακάτω κώδικα στο αρχείο

Εδώ, για επίδειξη, χρησιμοποιώ μόνο δύο ιστότοπους (google, youtube). Κάποιος μπορεί να επεξεργαστεί τον κώδικα και να αλλάξει ανάλογα.

bodyParser = απαιτεί («body-parser») · var exec = απαιτεί («child_process»). exec? var express = απαιτώ (‘express’); var app = express (); app.use (bodyParser.json ()); app.post ('/', λειτουργία (req, res) {let variable = req.body.queryResult.parameters.website; exec ("midori www."+μεταβλητή+". com", λειτουργία (σφάλμα, stdout, stderr) {console.log ("stdout:" + stdout); console.log ("stderr:" + stderr); if (error! == null) {console.log ("Errror Err:" + error);}}); επιστροφή res.end ();}); app.listen (80);

Βήμα 9:

Εικόνα
Εικόνα

Ο παραπάνω κώδικας γράφτηκε μόνο για να εξηγήσει την έννοια. Χρησιμοποίησα το πρόγραμμα περιήγησης Midori στον κώδικα καθώς το chromium δεν λειτουργεί με απομακρυσμένες εντολές. Μπορούμε επίσης να χρησιμοποιήσουμε τον Firefox. [Πρέπει να εγκαταστήσουμε ενότητες body-parser, express modules με τη βοήθεια npm πριν γράψουμε τον κώδικα]

Θυμηθείτε ότι πρέπει να ακούμε μόνο στη θύρα 80, καθώς η απαρτιότητα δεδομένων μπορεί να προωθήσει μόνο τη θύρα 80 του raspberry pi.

Τώρα πρέπει να ρυθμίσουμε το Dataplicity

Μεταβείτε στον ιστότοπο Dataplicity και δημιουργήστε τον λογαριασμό σας και ακολουθήστε τις οδηγίες για να προσθέσετε το raspberry pi στον πίνακα ελέγχου.

Βήμα 10:

Εικόνα
Εικόνα

Μετά από αυτό, ανοίξτε το raspberry pi από τη λίστα συσκευών και επιλέξτε wormhole για να λάβετε μια μοναδική διεύθυνση IP για το raspberry pi στην οποία μπορούμε να αναπτύξουμε τον διακομιστή κόμβου μας.

Αντιγράψτε τη διεύθυνση IP στο πρόχειρο.

Βήμα 11:

Εικόνα
Εικόνα

Τώρα εκτελέστε τον κώδικα από το τερματικό raspberry pi

sudo κόμβος webserver.js

Εάν εμφανίζει οποιοδήποτε σφάλμα σχετικά με την εμφάνιση ή σχετικά με τα πρωτόκολλα…. εκτέλεση

sudo xhost +

Τώρα επιστρέψτε στη ροή διαλόγου και κάντε κλικ στην ενότητα εκπλήρωσης

Βήμα 12:

Εικόνα
Εικόνα

Εισαγάγετε τη διεύθυνση IP ή τη διεύθυνση URL από τη μορφή δεδομένων στο παραπάνω διάστημα.

Βήμα 13:

Εικόνα
Εικόνα

Τέλος, μεταβείτε στην ενότητα προθέσεις και ενεργοποιήστε την κλήση webhook από την καρτέλα εκπλήρωσης.

Αυτό είναι! Επιστρέψτε τώρα στο σπίτι σας στο Google και ελέγξτε πώς λειτουργεί!

Μέχρι την επόμενη φορά, Happy Hacking:)

Συνιστάται: