Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Sinds ik mijn Google Home heb gekocht, wil ik mijn apparaten thuis bedienen met spraakopdrachten. Het werkt in alle opzichten geweldig, maar ik voelde me slecht voor de videofunctie. We kunnen YouTube en Netflix alleen bekijken als we een Chromecast-apparaat of tv met ingebouwde Chromecast-functie hebben. Ik heb een Raspberry Pi bij me, dus ik dacht erover om die te gebruiken om mijn favoriete video's en films af te spelen met spraakopdrachten.
Stap 1:
Hiervoor heb ik de volgende setup gemaakt:
Google Home -> Dialogflow -> Rpi IP-adres op Dataplicity -> Nodejs Server -> Code om URL's te openen
Dialogflow is de mens-computer-interactietechnologie van Google op basis van natuurlijke taalconversaties. Met behulp hiervan kunnen we onze eigen gesprekken of taken ontwikkelen om als input te geven aan Google home. Dit werkt als volgt:
Intentie [Invoer, vraag, gesprek, opdracht….] -> Google Home -> actie [antwoord]
Hier kan het antwoord een eenvoudig gesprek zijn of anders gegevens die zijn opgehaald van een webhook, die we gaan maken met behulp van de Rpi-server. Ga dus naar de Dialogflow-website en maak een account en een nieuwe agent aan.
Maak dan een nieuwe intentie….
Stap 2:
Voer vervolgens de trainingszinnen in. Dit zijn de opdrachten die gebruikers uitspreken wanneer ze proberen toegang te krijgen tot een specifieke taak vanuit Google Home.
Stap 3:
Hier kan het woord 'website' worden gewijzigd in alles zoals youtube, Netflix, amazon prime enz … Dit woord fungeert dus als een variabele en wanneer u het woord website [met muis] selecteert, krijgt u het volgende
Stap 4:
Selecteer in het vervolgkeuzemenu '@sys.any' en druk op enter.
Stap 5:
Voer vervolgens dezelfde parameternaam in het gedeelte Acties in. De waarden die in deze sectie worden genoemd, worden naar de webhook verzonden als een JSON-bestand, dat we in de server moeten ophalen om te weten welke website de gebruiker heeft aangeroepen.
De waarde van een variabele wordt opgehaald met '$variable_name'
Stap 6:
Voeg het antwoord toe dat we moeten horen nadat we het commando hebben gegeven aan Google Home. Sla vervolgens de intentie op. Stel deze intentie indien nodig in als het einde van het gesprek.
Stap 7:
Nu zullen we onze back-endservice opzetten om die vragen te krijgen om video's en websites op onze raspberry pi te openen.
De overige instellingen
Datapliciteit -> Nodejs-server -> code
Waarom hebben we datapliciteit nodig? omdat Google Home verbinding maakt met webhooks die via internet toegankelijk zijn. Hoewel onze GHome is verbonden met het lokale netwerk, komen de vragen van de Google-cloudservice en daarom is het nodig om onze server naar internet te porteren. In plaats van die hoofdpijn, kunnen we dataplicity-services gebruiken om onze Raspberry Pi gemakkelijk op internet te plaatsen.
Maak eerst verbinding met de raspberry pi [direct met HDMI of zelfs met SSh] Haal de nieuwste nodejs-runtime op met de volgende opdracht in de terminal.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Installeer het dan met
sudo apt-get install -y nodejs
Maak dan een nieuw bestand aan
nano webserver.js
Stap 8:
Voeg vervolgens de onderstaande code in het bestand in:
Hier, voor demonstratie, gebruik ik slechts twee websites (google, youtube). Men kan de code bewerken en dienovereenkomstig wijzigen.
bodyParser = vereisen(‘body-parser’);var exec = vereisen(‘child_process’).exec; var express = vereisen('express'); var app = express(); app.use(bodyParser.json()); app.post('/', function(req, res){ let variable =req.body.queryResult.parameters.website; exec(“midori www.”+variable+”.com”, function(error, stdout, stderr) { console.log ("stdout: " + stdout); console.log ("stderr: " + stderr); if (fout ! == null) { console.log ("exec-fout: " + fout); } }); retourneer res.end(); }); app.luisteren(80);
Stap 9:
De bovenstaande code is alleen geschreven om het concept uit te leggen. Ik heb de Midori-browser in de code gebruikt, omdat chroom niet werkt met externe opdrachten. We kunnen ook Firefox gebruiken. [We moeten body-parser, express-modules installeren met behulp van npm voordat we de code schrijven]
Onthoud dat we alleen op poort 80 moeten luisteren, omdat datapliciteit alleen poort 80 van de raspberry pi kan doorsturen.
Nu moeten we Dataplicity instellen
Ga naar de Dataplicity-website en maak uw account aan en volg de instructies om de raspberry pi aan het dashboard toe te voegen.
Stap 10:
Open daarna raspberry pi uit de lijst met apparaten en selecteer wormgat om een uniek IP-adres voor de raspberry pi te krijgen waarop we onze node-server kunnen implementeren.
Kopieer het IP-adres naar het klembord.
Stap 11:
Voer nu de code uit vanaf de Raspberry Pi-terminal
sudo node webserver.js
Als er een fout wordt weergegeven over de weergave of over protocollen… uitvoeren
sudo xhost +
Ga nu terug naar de dialoogstroom en klik op de uitvoeringssectie
Stap 12:
Voer het IP-adres of de URL van datapliciteit in de bovenstaande ruimte in.
Stap 13:
Ga ten slotte naar het gedeelte intenties en schakel de webhook-oproep in op het tabblad 'fulfilment'.
Dat is het! Ga nu terug naar je Google Home en kijk hoe het werkt!
Tot de volgende keer, Happy Hacking:)
Aanbevolen:
I2C / IIC LCD-scherm - Gebruik een SPI LCD op het I2C LCD-scherm met behulp van SPI naar IIC-module met Arduino - Ajarnpa
I2C / IIC LCD-scherm | Gebruik een SPI LCD op het I2C LCD-scherm met behulp van SPI naar IIC-module met Arduino: Hallo, aangezien een normale SPI LCD 1602 te veel draden heeft om aan te sluiten, dus het is erg moeilijk om het met Arduino te verbinden, maar er is één module op de markt beschikbaar die kan converteer SPI-display naar IIC-display, dus dan hoeft u slechts 4 draden aan te sluiten
Toegang krijgen tot een extern rootbestandssysteem met behulp van DB410 als een Ethernet-dongle: 6 stappen
Toegang krijgen tot het externe rootbestandssysteem met behulp van DB410 als een Ethernet-dongle: Doelstellingen: Installeer de toolchain en hercompileer de kernel om ondersteuning voor USB Ethernet CDC-gadgets in te voegen; Maak boot.img opnieuw van Linaro om USB Ethernet CDC op te starten; Maak een NFS-server om het rootbestandssysteem te hosten; IP-configuratie in DEVICE en HOST
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!!
Hoe muziek te krijgen van BIJNA ELKE (Haha) website (zolang je het kunt horen, kun je het krijgen … Ok prima als het in Flash is ingesloten, kun je dat misschien niet) BEWERKT !!!!! Toegevoegde info: als je ooit naar een website gaat en een nummer speelt dat je leuk vindt en wilt, dan is hier de instructie voor jou, niet mijn schuld als je iets verknoeit (de enige manier waarop het zal gebeuren is als je dingen begint te verwijderen zonder reden )ik heb muziek kunnen krijgen voor
Hoe u de hexadecimale code voor elke kleur op uw scherm kunt krijgen: 7 stappen
Hoe u de hexadecimale code voor elke kleur op uw scherm kunt krijgen: ik zal u laten zien hoe u de hexadecimale code kunt krijgen voor elke kleur die uw computerscherm u laat zien, zodat u ze kunt gebruiken in HTML-documenten en andere chique computerdingen. Verrassend genoeg gebruikt het legale software
Een geweldig telefoonnummer voor alle tekst krijgen met Google Voice - Ajarnpa
Een geweldig telefoonnummer voor alle tekst krijgen met Google Voice: Google Voice is een gratis service waarmee u al uw telefoons met één nummer kunt beheren, voicemails naar tekst kunt transcriberen en gratis sms'jes kunt sturen. Wanneer u zich aanmeldt voor Google Voice, krijgt u om een nummer te kiezen uit de ongeveer een miljoen nummers die Google heeft gereserveerd