Hoe meertalige domotica te maken met Google Assistant en Raspberry Pi?
Het domoticasysteem schakelt al uw elektrische apparaten in Wifi. Een enkele component, zoals een relaismodule, wordt gebruikt om verschillende elektronische parameters van een huis te besturen, bijvoorbeeld het schakelen van huishoudelijke apparaten, bewaking van beveiligingsalarmen, automatisering van garagedeuren, enz. De belangrijkste hindernis bij het ontwerpen van het automatiseringssysteem met Google Assistant is Taal. De nieuwste automatiseringssystemen ondersteunen slechts een paar talen, waaronder meestal Engels. Daarom zullen we in dit project een meertalig domoticasysteem ontwerpen dat meerdere talen ondersteunt, zoals Hindi, Urdu, Bengaals, enz. Na voltooiing van dit domoticasysteem zouden we de elektrische apparaten kunnen bedienen met behulp van de spraakopdrachten dat zou in verschillende talen worden gegeven. De belangrijkste ruggengraat achter dit project is Google Assistent dat zou worden gebruikt om huishoudelijke apparaten te bedienen. We hebben de voorkeur gegeven aan Google Assistant omdat deze bijna elke taal ondersteunt en bovendien een Android-applicatiezou zijn ontworpen voor het besturen van de apparaten.
Hoe Raspberry Pi en andere randapparatuur in te stellen bij het ontwerpen van het systeem?
Omdat we weten wat we willen doen in dit project, laten we nu verder gaan en wat meer informatie verzamelen over de hardwarecomponenten om onmiddellijk aan dit project te beginnen.
Stap 1: Benodigde componenten (hardware)
De beste benadering om een project te starten, is door een lijst met componenten te maken en deze componenten kort te bestuderen, omdat niemand midden in een project wil blijven staan alleen omdat er een component ontbreekt.
Stap 2: het Raspberry Pi-model selecteren
De selectie van Raspberry Pi is een zeer technische taak en het moet zorgvuldig worden gedaan, zodat u in de toekomst niet lijdt. De Raspberry Pi Zero heeft niet de voorkeur omdat dit het oudste model is dat op de markt verkrijgbaar is met een beperkt aantal specificaties en het opzetten van een netwerk daarop een zeer vermoeiende klus is. De nieuwste modellen zoals 3A +, 3B + kunnen worden gekocht. De Raspberry Pi 3 is de snelste en meest dominante gadget die de Raspberry Pi Foundation tot nu toe heeft uitgebracht. Dus in dit project zullen we de Raspberry Pi 3B + gebruiken.
Stap 3: Raspberry Pi instellen
Er zijn twee opties om Raspberry Pi in te stellen. Ten eerste, een is om je Pi met LCD te verbinden en alle benodigde randapparatuur aan te sluiten en te beginnen met werken. De tweede is om Pi met de laptop in te stellen en op afstand toegang te krijgen. Het hangt af van de beschikbaarheid van LCD, als je het thuis hebt, kun je je Pi instellen met behulp van een LCD. Sluit het LCD-scherm aan op de HDMI-poort van de Raspberry door middel van een HDMI-naar-VGA-adapter. Als je op afstand toegang wilt tot je Pi, volg dan mijn artikel genaamd "Hoe toegang te krijgen tot de grafische gebruikersinterface (GUI) van Raspberry Pi met behulp van SSH en VNC Viewer?".
Stap 4: Apache-server instellen op Raspberry Pi
Na het opzetten van Raspberry Pi zouden we het Apache server erop. Voor het instellen typen we de volgende opdracht in het Terminal-venster:
sudo apt-get install apache2 -y
We kunnen de installatie van de server verifiëren door het IP-adres van Pi in Web Server te typen. We openen de Apache-pagina in de webbrowser en gebruiken dan onze Apache-server om te verwerken PHP Bestanden, hiervoor heb je de meest recente versie van de PHP-module voor Apache nodig. Voer nu de volgende opdracht uit om de nieuwste versie van de apache-server uit te voeren.
sudo apt-get install php libapache2-mod-php-y
We moeten de input-output voor algemene doeleinden beheren (GPIO) pinnen van Raspberry Pi na het opzetten van de Apache-server. Om dat te controleren, moeten we een PHP-bestand maken. Ten eerste zouden we naar de HTML-map navigeren en vervolgens zouden we een PHP-bestand maken door de volgende opdracht te typen:
sudo nano appliancesoff.php
Vervolgens zullen we de volgende code in dat bestand schrijven voordat we het opslaan:
Druk na het schrijven van de code in het editorbestand op Ctrl + X om de code op te slaan en vervolgens af te sluiten. We hebben een PHP-bestand gemaakt om te draaien UITde apparaten, nu zullen we een PHP-bestand maken om te draaien AANde toestellen. De procedure is hetzelfde als hierboven, met een kleine wijziging in de Code. Maak een PHP-bestand om te draaien AANde apparaten door het onderstaande commando te typen:
sudo nano applianceson.php
Plak nu in het editorbestand de onderstaande code:
Stap 5: De Google Assistent voorbereiden
Omdat ons automatiseringssysteem zou worden bediend met behulp van onze spraakopdrachten, zouden we daarom enkele wijzigingen in de taalinstellingen aanbrengen.
U moet de taal kiezen waarin u uw besturingssysteem wilt laten werken. Ga naar de "Routines" optie en in het menu van de Routines knop vind je een plus icoon. We zullen onze spraakopdracht maken en daarom de opdracht uitspreken die zou worden gebruikt om de apparaten te bedienen. Stel dat als u de LED-lamp wilt bedienen, u een geschikt commando voor het draaien instelt AANen draaien UITDe gloeilamp.
Stap 6: een mobiele applicatie ontwikkelen
Laten we nu beginnen met het ontwikkelen van een mobiele applicatie die zal worden gebruikt om de elektrische apparaten die op ons systeem zijn aangesloten te bedienen. Omdat we een applicatie gaan ontwikkelen voor onze Android-gestuurde mobiele telefoon, hebben we een platform nodig waarmee we dat kunnen doen. Daarvoor hebben we de volgende twee software nodig:
Stap 7: Android Studio instellen
Voordat we de Android-studio eerst op onze computers installeren, moet er nog iets worden geïnstalleerd met de naam JAVA JDK. Om dit te installeren, klikt u op het exe bestand dat u heeft gedownload via de bovenstaande link. Blijf op de volgende knop klikken totdat deze is geïnstalleerd. Nu moet JAVA door uw computer worden herkend als een externe of interne opdracht. Doorloop hiervoor de volgende stappen.
- Open Controlepaneel en klik op Systeem en veiligheid.
- Klik op Systeem.
- Klik op Geavanceerde systeeminstellingen en klik vervolgens op Omgevingsvariabelen.
- Klik in het gedeelte Systeemvariabele op het pad en klik vervolgens op bewerken. een nieuwe Bewerk omgevingsvariabelevak zal verschijnen.
- Ga nu naar C: \ Program Files \ Java op uw pc. Open de JDK-map, klik op de bin-map en kopieer vervolgens het pad van die map.
- Ga nu naar het vak Wijzig omgevingsvariabele en klik op nieuw om een nieuwe variabele te maken. Plak het pad dat u in de bovenstaande stap hebt gekopieerd in de nieuwe variabele en sla het op.
- Om te bevestigen of het volledig is geïnstalleerd, opent u de opdrachtprompt en typt u java –versie.
Nu u met succes Java JDK op uw computer hebt geïnstalleerd. Laten we nu Android Studio op uw computer installeren. Het installeren van deze software is heel eenvoudig. U moet het gedownloade bestand openen en op Volgende klikken totdat uw software volledig is geïnstalleerd.
Stap 8: De lay-out maken
Nu zullen we hier een lay-out maken voor onze applicatie die door de gebruiker zal worden gebruikt om verschillende commando's naar de Raspberry Pi te sturen. Om een eenvoudige lay-out te maken, doorloop je de volgende stappen.
1. Ga allereerst naar Bestand> Nieuw> Nieuw project. Er verschijnt een menu. Selecteer Leeg project.
2. Noem het project nu als Spraakbesturing En instellen JAVAals uw programmeertaal.
3. Omdat we het internet gaan gebruiken om de pinnen van de Raspberry Pi te bedienen. We zullen toestemming in onze app instellen om toegang te krijgen tot lokale wifi. Ga hiervoor naar app > manifesten > AndroidManifest.xml en voeg de volgende opdracht toe.
-
4. Ga nu naar app> res> layout> activity_main.xml. hier gaan we een layout ontwerpen. Kopieer de onderstaande code om een tekstweergave te maken.
5. Klik nu met de rechtermuisknop op res en maak een nieuw Directory. Noem deze directory een menu.
6. Klik nu met de rechtermuisknop op menudirectory en maak een nieuw Android-bronbestand.
7. Open nu de namen van deze bronbestanden als menu en kopieer de volgende code erin.
8. Ga nu naar app > java > com.voorbeeld.spraakbediening > Hoofdactiviteit. Hier maken we een webweergave en enkele stringvariabelen. Kopieer hiervoor de volgende code in onze Hoofdactiviteit. Zorg ervoor dat u het IP-adres in de code vervangt door het IP-adres van uw Raspberry Pi.
pakket com.example.voicecontrol; android.support.annotation.NonNull importeren; importeer android.support.design.widget.BottomNavigationView; importeer android.support.design.widget.NavigationView; importeer android.support.v7.app.AppCompatActivity; importeer android.os.Bundle; importeer android.view.MenuItem; importeer android.webkit.WebChromeClient; importeer android.webkit.WebSettings; android.webkit.WebView importeren; importeer android.webkit.WebViewClient; importeer android.widget.TextView; openbare klasse MainActivity breidt AppCompatActivity uit {private TextView mTextMessage; WebView wv; String url = "http://192.168.43.168"; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = nieuw BottomNavigationView.OnNavigationItemSelectedListener () {@Override public boolean onNavigationItemSelected (@NonNull MenuItem item) {switch (item.extTlightle_start_start) ); wv.loadUrl ("https://192.168.43.168/lightson.php"); terugkeer waar; geval R.id.lightoff1: mTextMessage.setText (R.string.title_homeof); wv.loadUrl ("https://192.168.43.168/lightsoff.php"); terugkeer waar; geval R.id.fanon1: mTextMessage.setText (R.string.title_dashboard); wv.loadUrl ("https://192.168.43.168/fanon.php"); terugkeer waar; geval R.id.fanoff1: mTextMessage.setText (R.string.title_dashboardof); wv.loadUrl ("https://192.168.43.168/fanff.php"); terugkeer waar; } return false; } }; @Override beschermde ongeldig onCreate (bundel opgeslagenInstanceState) {super.onCreate (opgeslagenInstanceState); setContentView (R.layout.activity_main); mTextMessage = (TextView) findViewById (R.id.message); BottomNavigationView navigation = (BottomNavigationView) findViewById (R.id.navigation); navigation.setOnNavigationItemSelectedListener (mOnNavigationItemSelectedListener); wv = (WebView) findViewById (R.id.webview); WebSettings-instellingen = wv.getSettings (); wv. setWebViewClient (nieuwe WebViewClient ()); wv.getSettings (). setJavaScriptEnabled (true); wv.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); wv.getSettings (). setAppCacheEnabled (true); wv.getSettings (). setBuiltInZoomControls (true); settings.setDomStorageEnabled (true); settings.setUseWideViewPort (true); settings.setSaveFormData (true); wv.setWebChromeClient (nieuwe WebChromeClient ()); wv.loadUrl (url); }}
Uw lay-out ziet eruit als op de onderstaande afbeelding:
Stap 9: De hardware monteren en de laatste hand leggen
Nu hebben we het softwaregedeelte van dit project met succes afgerond. We gaan de hardware af en toe monteren en dan testen.
- Connecties maken: We zullen zoeken naar GPIO 13 en 15 pinnen van de Raspberry Pi in de datasheet. Nadat u ze hebt gevonden, sluit u de GPIO aan 13 pin op de IN 1 pin van de relaismodule. Sluit de GPIO aan 15 pin op de IN 2pin van de relaismodule.
- Testen: Aangezien we alle verbindingen hebben gemaakt, zullen we controleren of onze hardware naar behoren werkt of niet. Beurt AAN de Raspberry Pi en spreek "Hey Google", en we spreken een van de opdrachten uit die we hebben ingesteld in de taalinstellingen. We zeggen bijvoorbeeld 'Hey Google Turn On The Light' als we de voorkeurstaal hebben ingesteld op Engels en het licht wordt gedraaid AAN. De apparaten kunnen ook worden bediend via onze Android Studio-applicatie. Als iemand de apparaten via de applicatie wil bedienen, moet hij / zij de applicatie openen en op de pictogrammen in de applicatie drukken om de apparaten te bedienen.
Dat is alles voor vandaag. We hebben het meertalige project voor domoticasystemen met succes afgerond en nu kunnen we onze elektrische apparaten gemakkelijk via onze mobiele telefoon bedienen.