Wie mache ich eine mehrsprachige Hausautomation mit Google Assistant und Raspberry Pi?

Das Hausautomationssystem schaltet alle Ihre Elektrogeräte auf Wifi. Eine einzelne Komponente wie ein Relaismodul wird verwendet, um verschiedene elektronische Parameter eines Hauses zu steuern, z. B. das Schalten von Haushaltsgeräten, das Überwachen von Sicherheitsalarmen, die Automatisierung von Garagentoren usw. Die größte Hürde beim Entwerfen des Automatisierungssystems mit Google Assistant ist Sprache. Die neuesten Automatisierungssysteme unterstützen nur wenige Sprachen, die hauptsächlich Englisch enthalten. Daher werden wir in diesem Projekt ein mehrsprachiges Hausautomationssystem entwerfen, das mehrere Sprachen wie Hindi, Urdu, Bengali usw. unterstützt. Nach Abschluss dieses Hausautomationssystems können wir die Elektrogeräte mithilfe der Sprachbefehle steuern das würde in verschiedenen Sprachen gegeben werden. Das wichtigste Rückgrat hinter diesem Projekt ist Google Assistant, mit dem Haushaltsgeräte gesteuert werden. Wir haben Google Assistant bevorzugt, da es fast jede Sprache unterstützt und außerdem eine Android-Anwendung zur Steuerung der Appliances entwickelt wurde.

Mehrsprachiges Automatisierungssystem

Wie richte ich Raspberry Pi und andere Peripheriegeräte beim Entwerfen des Systems ein?

Da wir wissen, was wir in diesem Projekt tun möchten, lassen Sie uns nun fortfahren und weitere Informationen zu den Hardwarekomponenten sammeln, um sofort mit der Arbeit an diesem Projekt zu beginnen.

Schritt 1: Erforderliche Komponenten (Hardware)

Der beste Ansatz, um ein Projekt zu starten, besteht darin, eine Liste der Komponenten zu erstellen und eine kurze Untersuchung dieser Komponenten durchzuführen, da niemand nur wegen einer fehlenden Komponente in der Mitte eines Projekts bleiben möchte.

Schritt 2: Auswahl des Raspberry Pi-Modells

Die Auswahl von Raspberry Pi ist eine sehr technische Aufgabe und sollte sorgfältig durchgeführt werden, damit Sie in Zukunft nicht leiden. Der Raspberry Pi Zero wird nicht bevorzugt, da er das älteste auf dem Markt erhältliche Modell mit einer begrenzten Anzahl von Spezifikationen ist und das Einrichten eines Netzwerks eine sehr anstrengende Aufgabe ist. Die neuesten Modelle wie 3A +, 3B + können erworben werden. Der Raspberry Pi 3 ist das schnellste und dominanteste Gerät, das die Raspberry Pi Foundation bisher veröffentlicht hat. In diesem Projekt werden wir also den Raspberry Pi 3B + verwenden.

Himbeer Pi 3B +

Schritt 3: Raspberry Pi einrichten

Es gibt zwei Möglichkeiten, um Raspberry Pi einzurichten. Zunächst müssen Sie Ihren Pi mit dem LCD verbinden, alle erforderlichen Peripheriegeräte anschließen und mit der Arbeit beginnen. Die zweite Möglichkeit besteht darin, Pi mit dem Laptop einzurichten und remote darauf zuzugreifen. Dies hängt von der Verfügbarkeit des LCD ab. Wenn Sie es zu Hause haben, können Sie Ihren Pi mithilfe eines LCD einrichten. Schließen Sie das LCD mithilfe des HDMI-zu-VGA-Adapters an den HDMI-Anschluss des Raspberry an. Wenn Sie remote auf Ihren Pi zugreifen möchten, folgen Sie meinem Artikel mit dem Titel „Zugriff auf die grafische Benutzeroberfläche (GUI) von Raspberry Pi mit SSH und VNC Viewer?“.

Schritt 4: Einrichten des Apache-Servers auf Raspberry Pi

Nach dem Einrichten von Raspberry Pi haben wir den Apache-Server darauf eingerichtet. Zum Einrichten geben wir den folgenden Befehl in das Terminalfenster ein:

sudo apt-get install apache2 -y

Wir können die Installation des Servers überprüfen, indem wir die IP-Adresse von Pi in Web Server eingeben. Wir öffnen die Apache-Seite im Webbrowser und verwenden dann unseren Apache-Server zur Verarbeitung von PHP-Dateien. Dazu benötigen Sie die neueste Version des PHP-Moduls für Apache. Führen Sie nun den folgenden Befehl aus, um die neueste Version des Apache-Servers auszuführen.

sudo apt-get installiere php libapache2-mod-php-y

Nach dem Einrichten des Apache-Servers müssen die GPIO-Pins (General Purpose Input Output) von Raspberry Pi gesteuert werden. Um dies zu steuern, müssen wir eine PHP-Datei erstellen. Zuerst würden wir zum HTML-Verzeichnis navigieren und dann eine PHP-Datei erstellen, indem wir den folgenden Befehl eingeben:

sudo nano appliancesoff.php

Dann schreiben wir den folgenden Code in diese Datei, bevor wir sie speichern:

Drücken Sie nach dem Schreiben des Codes in die Editordatei Strg + X, um den Code zu speichern, und beenden Sie ihn. Wir haben eine PHP-Datei zum Ausschalten der Appliances erstellt. Jetzt erstellen wir eine PHP-Datei zum Einschalten der Appliances. Die Vorgehensweise ist die gleiche wie oben, mit ein wenig Änderung im Code. Erstellen Sie eine PHP-Datei zum Einschalten der Appliances, indem Sie den folgenden Befehl eingeben:

sudo nano applianceson.php

Fügen Sie nun in die Editor-Datei den folgenden Code ein:

Schritt 5: Vorbereiten des Google-Assistenten

Da unser Automatisierungssystem mit unseren Sprachbefehlen betrieben wird, würden wir einige Änderungen an den Spracheinstellungen vornehmen.

die Einstellungen

Sie müssen die Sprache auswählen, in der Ihr Betriebssystem betrieben werden soll. Gehen Sie zur Option “Routinen” und im Menü der Schaltfläche “Routinen” finden Sie ein Pluszeichen. Wir werden unseren Sprachbefehl erstellen und daher den Befehl sprechen, der zur Steuerung der Geräte verwendet wird. Angenommen, Sie möchten die LED-Lampe steuern und einen geeigneten Befehl zum Ein- und Ausschalten der Lampe festlegen.

Google Assistant-Einstellungen

Schritt 6: Entwickeln einer mobilen Anwendung

Lassen Sie uns nun eine mobile Anwendung entwickeln, mit der die an unser System angeschlossenen Elektrogeräte gesteuert werden. Da wir eine Anwendung für unser Android-Handy entwickeln werden, benötigen wir eine Plattform, die uns dies ermöglicht. Zu diesem Zweck benötigen wir die folgenden zwei Software:

Schritt 7: Einrichten von Android Studio

Bevor Sie das Android Studio zuerst auf unseren Computern installieren, müssen Sie eine andere Sache namens JAVA JDK installieren. Um dies zu installieren, klicken Sie auf die exe-Datei, die Sie über den obigen Link heruntergeladen haben. Klicken Sie weiter auf die Schaltfläche Weiter, bis sie installiert ist. Jetzt muss JAVA von Ihrem Computer als externer oder interner Befehl erkannt werden. Führen Sie dazu die folgenden Schritte aus.

  1. Öffnen Sie die Systemsteuerung und klicken Sie auf System und Sicherheit.
  2. Klicken Sie auf System.System
  3. Klicken Sie auf Erweiterte Systemeinstellungen und dann auf Umgebungsvariablen.Erweiterte Systemeinstellung
  4. Klicken Sie im Abschnitt Systemvariable auf den Pfad und dann auf Bearbeiten. Ein neues Feld Bearbeitungsvariable bearbeiten wird angezeigt.Pfad bearbeiten
  5. Gehen Sie nun auf Ihrem PC zu C: Programme Java. Öffnen Sie den JDK-Ordner, klicken Sie auf den Ordner bin und kopieren Sie den Pfad dieses Ordners.Pfad des bin-Ordners
  6. Gehen Sie nun zum Feld Umgebungsvariable bearbeiten und klicken Sie auf Neu, um eine neue Variable zu erstellen. Fügen Sie den Pfad, den Sie im obigen Schritt kopiert haben, in die neue Variable ein und speichern Sie ihn.
  7. Um zu bestätigen, ob es vollständig installiert ist, öffnen Sie die Eingabeaufforderung und geben Sie java –version ein.JAVA-Version

Jetzt, da Sie Java JDK erfolgreich auf Ihrem Computer installiert haben. Lassen Sie uns jetzt Android Studio auf Ihrem Computer installieren. Die Installation dieser Software ist sehr einfach. Sie müssen die heruntergeladene Datei öffnen und auf Weiter klicken, bis Ihre Software vollständig installiert ist.

Schritt 8: Erstellen des Layouts

Jetzt erstellen wir hier ein Layout für unsere Anwendung, das vom Benutzer verwendet wird, um verschiedene Befehle an den Himbeer-Pi zu senden. Führen Sie die folgenden Schritte aus, um ein einfaches Layout zu erstellen.

1. Gehen Sie zunächst zu Datei> Neu> Neues Projekt. Ein Menü wird angezeigt. Wählen Sie Leeres Projekt.

Neues Projekt

2. Benennen Sie das Projekt nun als Sprachsteuerung und legen Sie JAVA als Programmiersprache fest.

Initialisieren

3. Da wir das Internet nutzen werden, um die Stifte des Himbeer-Pi zu steuern. Wir werden in unserer App die Erlaubnis festlegen, auf lokales WLAN zuzugreifen. Gehen Sie dazu zu App> Manifeste> AndroidManifest.xml und fügen Sie den folgenden Befehl hinzu.

– –Erlaubnis zum Internet

4. Gehen Sie nun zu app> res> layout> activity_main.xml. Hier entwerfen wir ein Layout. Kopieren Sie den unten angegebenen Code, um eine Textansicht zu erstellen.


<android.support.constraint.ConstraintLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif-black"
    android:text="Lights On"
    android:textColor="#000"
    android:textSize="36sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<android.support.design.widget.NavigationView
    android.id="@+id/navigation"
    android:layout_width="395dp"
    android:layout_height="50dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

</android.support.constraint.ConstraintLayout>

5. Klicken Sie nun mit der rechten Maustaste auf res und erstellen Sie ein neues Verzeichnis. Benennen Sie dieses Verzeichnis als Menü.

Neues Verzeichnis

6. Klicken Sie nun mit der rechten Maustaste auf das Menüverzeichnis und erstellen Sie eine neue Android-Ressourcendatei.

Android-Ressourcendatei

7. Öffnen Sie nun die Namen dieser Ressourcendateien als Menü und kopieren Sie den folgenden Code hinein.

<item
    android:id="@+id/lighton1"
    android:title="Light On" />
<item
    android:id="@+id/lightoff1"
    android:title="Light Off" />
<item
    android:id="@+id/fanon1"
    android:title="Fan On" />
<item
    android:id="@+id/fanoff1"
    android:title="Fan Off" />

8. Gehen Sie nun zu app> java> com.example.voicecontrol> MainActivity. Hier erstellen wir eine Webansicht und einige Zeichenfolgenvariablen. Kopieren Sie dazu den folgenden Code in unsere Hauptaktivität. Stellen Sie sicher, dass Sie die IP im Code durch die IP Ihres Raspberry Pi ersetzen.

Paket com.example.voicecontrol; import android.support.annotation.NonNull; android.support.design.widget.BottomNavigationView importieren; android.support.design.widget.NavigationView importieren; android.support.v7.app.AppCompatActivity importieren; import android.os.Bundle; import android.view.MenuItem; android.webkit.WebChromeClient importieren; android.webkit.WebSettings importieren; import android.webkit.WebView; android.webkit.WebViewClient importieren; android.widget.TextView importieren; öffentliche Klasse MainActivity erweitert AppCompatActivity {private TextView mTextMessage; WebView wv; String url = “http://192.168.43.168”; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener () {@Override public boolean onNavigationItemSelected (@NonNull MenuItem ); wv.loadUrl (“https://192.168.43.168/lightson.php”); return true; case R.id.lightoff1: mTextMessage.setText (R.string.title_homeof); wv.loadUrl (“https://192.168.43.168/lightsoff.php”); return true; case R.id.fanon1: mTextMessage.setText (R.string.title_dashboard); wv.loadUrl (“https://192.168.43.168/fanon.php”); return true; case R.id.fanoff1: mTextMessage.setText (R.string.title_dashboardof); wv.loadUrl (“https://192.168.43.168/fanff.php”); return true; } falsch zurückgeben; }}; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); 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 settings = wv.getSettings (); wv. setWebViewClient (neuer 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 (neuer WebChromeClient ()); wv.loadUrl (url); }}

Ihr Layout sieht wie folgt aus:

Speisekarte

Schritt 9: Zusammenbau der Hardware und endgültige Berührungen

Jetzt haben wir den Softwareteil dieses Projekts erfolgreich abgeschlossen. Wir werden die Hardware ab und zu zusammenbauen und dann testen.

  1. Herstellen von Verbindungen: Wir werden im Datenblatt nach GPIO 13- und 15-Pins des Raspberry Pi suchen. Nachdem Sie sie gefunden haben, verbinden Sie den GPIO 13-Pin mit dem IN1-Pin des Relaismoduls. Verbinden Sie den GPIO 15-Pin mit dem IN2-Pin des Relaismoduls.Verbindungsschema
  2. Testen: Da wir alle Verbindungen hergestellt haben, werden wir prüfen, ob unsere Hardware ordnungsgemäß funktioniert oder nicht. Schalten Sie den Raspberry Pi ein und sprechen Sie “Hey Google”. Wir werden einen der Befehle sprechen, die wir in den Spracheinstellungen festgelegt haben. Zum Beispiel sagen wir “Hey Google, mach das Licht an”, wenn wir die bevorzugte Sprache auf Englisch eingestellt haben und das Licht eingeschaltet wird. Die Appliances können auch über unsere Android Studio-Anwendung gesteuert werden. Wenn jemand die Appliances über die Anwendung steuern möchte, sollte er die Anwendung öffnen und auf die in der Anwendung vorhandenen Symbole drücken, um die Appliances zu steuern.

Das ist alles für heute. Wir haben das mehrsprachige Projekt für Hausautomationssysteme erfolgreich abgeschlossen und können jetzt unsere Elektrogeräte einfach über unser Mobiltelefon steuern.

Similar Posts

Leave a Reply

Your email address will not be published.