Wie erstelle ich eine Android-App für Ihr Smart Home-System in Android Studio?
Dieser Artikel ist Teil zwei eines anderen Artikels Wie mache ich eine Smart Home-Automatisierung mit dem ESP32-Modul? in dem eine Methode zur Herstellung eines Smart Home-Systems bereitgestellt wurde. In diesem Artikel zeigen wir Ihnen Schritt für Schritt, wie Sie eine Android-Anwendung entwickeln und mit der Firebase-Datenbank verbinden. Dann wird diese mobile Anwendung verwendet, um die Elektrogeräte im Haushalt zu schalten.
Smart Home-Systeme, die bereits auf dem Markt erhältlich sind, sind sehr kostspielig. Wenn Sie über die erforderlichen Komponenten und ein Android-Gerät verfügen, können Sie zu Hause ein Hausautomationssystem erstellen, das gleichermaßen effizient, aber sehr kostengünstig ist. Lesen Sie diese beiden Artikel durch, um Ihr eigenes Hausautomationssystem zu Hause zu erstellen.
Wie entwickle ich eine Android-Anwendung für die Heimautomation?
Wir werden eine Android-App entwickeln, die als Fernbedienung zur Steuerung der elektrischen Haushaltsgeräte verwendet wird, die im anderen Artikel an das ESP32-Modul angeschlossen wurden. zum anderen Artikel gehen, Klicken Sie hier.
Schritt 1: Benötigte Software
Da wir eine Android-Anwendung entwickeln werden, benötigen wir nur eine Software. Um diese Software auszuführen, müssen wir zuerst eine andere Software installieren. Sie können sie über die folgenden Links herunterladen.
Schritt 2: Grundlegendes zur Funktionsweise
Wir werden eine Anwendung erstellen, die sowohl Front-End- als auch Back-End-Codierung enthält. Auf dem Hauptbildschirm enthält es einige Schaltflächen, mit denen das Umschalten der an die ESP32-Mikrocontroller-Karte angeschlossenen Elektrogeräte gesteuert wird. In der Back-End-Codierung senden wir eine "1", wenn der Schalter eingeschaltet ist, und eine "0", wenn der Schalter ausgeschaltet ist.
Wir werden eine Firebase-Datenbank erstellen. Diese Datenbank enthält 2 Entitäten mit den Namen Light und AC. Das Licht enthält den Wert für das Schalten des Lichts und AC enthält einen Wert für das Schalten des Lüfters. Dieser Wert wird dann an den Mikrocontroller gesendet, und der Mikrocontroller sendet entsprechend ein Steuersignal an das Relaismodul.
Schritt 3: Einrichten von Android Studio
Vor der Installation von Android Studio installieren wir zuerst JAVA JDK. Um dies zu installieren, klicken Sie auf exe Datei dass Sie von dem obigen Link heruntergeladen haben, und klicken Sie auf Weiter, bis es erfolgreich installiert wurde. Führen Sie nun die folgenden Schritte aus, damit Ihre Eingabeaufforderung Java als externen oder internen Befehl erkennt.
- Öffnen Schalttafel und klicken Sie auf System und Sicherheit.
- Klicke auf System.
- Klicke auf Erweiterte Systemeinstellung und dann klick auf Umgebungsvariablen.
- Klicken Sie im Abschnitt Systemvariable auf den Pfad und dann auf Bearbeiten. Eine neue Umgebungsvariable bearbeitenDas Feld wird angezeigt.
- Jetzt geh zu C: \ Programme \ Java in Ihrem PC. Öffnen Sie den JDK-Ordner, klicken Sie auf den Ordner bin und kopieren Sie den Pfad dieses Ordners.
- 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 sie.
- Um zu bestätigen, ob es vollständig installiert ist, öffnen Sie die Eingabeaufforderung und geben Sie 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 4: Erstellen des Layouts
Wir werden ein Layout erstellen, das einige Schaltflächen enthält, die den Befehl 0 oder 1 an die Firebase-Datenbank senden. Dies ist ein einfaches Layout, das einige Schaltflächen enthält. In meiner App werde ich nur zwei Tasten enthalten, die die Lichter und den Lüfter steuern. Wenn Sie mehr Schaltflächen für mehr Haushaltsgeräte einfügen möchten, kopieren Sie denselben Codeabschnitt in das Hauptprogramm und erstellen Sie eine neue Variable in der Datenbank. Lassen Sie uns ohne Zeitverlust zu den Schritten eines einfachen Layouts für unsere App übergehen.
1. Gehen Sie zunächst zu Datei> Neu> Neues Projekt.Ein Menü wird angezeigt. Wählen Leeres Projekt.
2. Benennen Sie nun das Projekt und legen Sie es fest KOTLINals Ihre Programmiersprache.
3. Klicken Sie nun in der linken Ecke auf app> res> layout> activity_main.xml.
4. Fügen Sie hier den folgenden Code unter dem Code hinzu, der bereits in Ihrem Android Studio bereitgestellt wird. Wir erstellen ein Einschränkungslayout. Der folgende Code fügt oben eine Überschrift der Raumautomatisierung hinzu. Es fügt dann 3 Schalter hinzu. Mit einem Schalter können Sie auswählen, ob Sie die Haushaltsgeräte manuell bedienen möchten oder nicht. Die anderen beiden Schalter betätigen den Lüfter bzw. die Lichter.
5. Das Layout Ihrer App sieht wie im Bild unten aus.
Schritt 5: Back-End-Codierung
Der Back-End-Code ist der wichtigste Teil jeder Anwendung. Es ist die Hauptbrücke zwischen dem Front-End-Layout und der Datenbank des Projekts. In unserer Anwendung möchten wir nur eine "1" in der Datenbank senden, wenn der Schalter eingeschaltet ist, und eine "0" in der Datenbank, wenn der Schalter ausgeschaltet ist. Führen Sie die folgenden Schritte aus, um den Code in Ihre Anwendung einzufügen
1. Klicken Sie in der linken Ecke auf app> java> com.example.my applicationmyapplication> main_activity.
2. Kopieren Sie nun auf diesem Bildschirm den folgenden Code in Ihre Klasse.
Klassenautomatisierung: AppCompatActivity () {var database = FirebaseDatabase.getInstance () var myRef = database.reference internes lateinit var btnSwitch: Internes lateinit wechseln var btnSwitch1: Internes lateinit var btnSwitch2 wechseln: Override fun onCreate wechseln (savedInstanceState: Bundle?) { .onCreate (savedInstanceState) setContentView (R.layout.activity_automation) myRef.child ("Toggle / switch"). addValueEventListener (Objekt: ValueEventListener {Spaß überschreiben onCancelled (p0: DatabaseError) {} Spaß überschreiben onDataChange (p0: Data) .visibility = View.VISIBLE if (p0.value.toString (). equals ("1")) {switch1.isChecked = true; toggleButton2.visibility = View.VISIBLE toggleButton3.visibility = View.VISIBLE myRef.child ("automation /AC").addValueEventListener(Objekt: ValueEventListener {Spaß überschreiben onCancelled (p0: DatabaseError) {} Spaß überschreiben onDataChange (p0: DataSnapshot) {if (p0.value.toString (). Equals ("1")) {toggleButton2. isChecked = true} else toggleButton2.isChecked = false}}) myRef.child ("automation / light"). addValueEventListener (Objekt: ValueEventListener {Spaß überschreiben onCancelled (p0: DatabaseError) {} Spaß überschreiben onDataChange (p0: DataSnapshot) {if (p0.value.toString () .equals ("1")) {toggleButton3.isChecked = true} else toggleButton3.isChecked = false}})} else {switch1.isChecked = false toggleButton2.visibility = View.GONE toggleButton3.visibility = View.GONE} // Log .d ("ahsan", p0.value.toString ())}}) button3.setOnClickListener {val intent = Intent (dies, MainActivity :: class.java) startActivity (intent)} btnSwitch = findViewById(R.id.switch1) als Switch btnSwitch1 = findViewById (R.id.toggleButton2) als Switch btnSwitch2 = findViewById (R.id.toggleButton3) als Switch btnSwitch.setOnClickListener {if (btnSwitch.isChecked) {myRef.child ("Toggle / switch"). SetValue ("1") btnSwitch1.setOnClickListener {if (btnSwitch1.ishe. child ("automation / AC"). setValue ("1")} else {myRef.child ("automation / AC"). setValue ("0")}} btnSwitch2.setOnClickListener {if (btnSwitch2.isChecked) {myRef. child ("automation / light"). setValue ("1")} else {myRef.child ("automation / light"). setValue ("0")}}} else {myRef.child ("Toggle / switch") .setValue ("0")}}}}
Im Moment kann der Code an einigen Stellen einige Fehler enthalten, da er derzeit nicht mit der Firebase-Datenbank verbunden ist. Wir werden eine Firebase-Datenbank erstellen und diese mit der Anwendung verbinden.
Schritt 6: Verbinden der App mit der Firebase-Datenbank
Das Verbinden der Firebase-Datenbank mit der Android-App ist fast der letzte Schritt. Wir werden eine Datenbank auf Firebase erstellen. Firebase ist eine Phase zur Verbesserung von Mobil- und Webanwendungen, in der Designer mit zahlreichen Geräten und Administrationen ausgestattet werden, um erstklassige Anwendungen zu erweitern, ihren Kundenstamm zu erweitern und weitere Vorteile zu erzielen. Firebase bietet uns zwei Dienste an: Real-Time Database und Firestore.
Wir werden eine Echtzeitdatenbank erstellen, in der alle Werte in Echtzeit mit einer Verzögerung von einigen Sekunden aktualisiert werden. Führen Sie die folgenden Schritte aus, um eine Echtzeitdatenbank auf Firebase zu erstellen. Android Studio bietet eine sehr einfache Methode, um diese Verbindung herzustellen. Führen Sie die folgenden Schritte aus, um diese Verbindung herzustellen.
1. Klicken Sie auf n Werkzeuge.Ein Dropdown-Menü wird angezeigt, aus dem Sie auswählen können Feuerbasis.
2. Auf der rechten Seite des Bildschirms wird ein großes Menü angezeigt, das das Menü für fast alle von Firebase bereitgestellten Dienste enthält. Im Moment liegt unser Hauptaugenmerk jedoch auf der Echtzeitdatenbank. Klicken Sie also auf Echtzeitdatenbank. Ein Link zu “Daten speichern und abrufen" wird auftauchen. Klicken Sie auf diesen Link.
3. Verbinden Sie sich mit Stellen Sie eine Verbindung zu Firebase herTaste. Sie gelangen zum Standard-Webbrowser. Zunächst werden Sie aufgefordert, sich bei Ihrem Google Mail-Konto anzumelden.
4. Klicken Sie nun auf Fügen Sie Ihrer App die Echtzeitdatenbank hinzu Schaltfläche aus dem im Bild oben gezeigten Menü. In einem Feld werden Sie aufgefordert, einige Änderungen vorzunehmen. Klicke auf AcÄnderungen akzeptieren. Sie werden sehen, dass die Anwendung mit der Synchronisierung beginnt, um eine Verbindung zu unserer Echtzeitdatenbank herzustellen.
5. Gehen Sie jetzt zur Firebase-Konsole. Dort sehen Sie ein bereits erstelltes Projekt. Das Android-Logo auf dem Symbol dieses Projekts bedeutet, dass es bereits zu einer Android-Anwendung gehört.
6. Aus dem Entwickeln Menü, das auf der linken Seite des Bildschirms erscheint, wählen Sie Datenbank. Ein Knopf von Datenbank erstellen wird rechts angezeigt. Klicken Sie auf diese Schaltfläche.
7. In einem Menü werden Sie aufgefordert, den Modus Ihrer Datenbank festzulegen. Klicke auf Testmodusund dann klicken Aktivieren.
8. Nun ist es ein wirklich wichtiger Schritt, sich daran zu erinnern, das zu ändern Cloud Firestore zu Echtzeitdatenbank.Klicken Sie dazu auf die im Bild unten gezeigte Schaltfläche und ändern Sie die gewünschte Option.
9. Klicken Sie nun auf Regeln Registerkarte und ändern Sie die Konfigurationen in Wahr. Wenn alles erledigt ist, klicken Sie auf Veröffentlichen.
10. Eine andere Sache, die Sie tun müssen, als die Firebase zu verbinden, ist das Aktualisieren der Datenbankversion. Klicken Sie dazu auf gehe zu docs. Klicken Sie nun auf Führerund wählen Sie Android-Anleitungenaus der Liste, die auf dem Bildschirm angezeigt wird. Scrollen Sie nach unten, bis eine Tabelle angezeigt wird. Suchen Sie in dieser Tabelle nach einer Echtzeitdatenbank und suchen Sie deren Version. in meinem Fall ist es 19.1.0
11. Klicken Sie auf Gradle-Skripte,ein Menü auf der linken Seite des Bildschirms. Dann wählen Sie gebaut. gradle (Modul: App). Suchen Sie nun im Code nach der Version der Echtzeitdatenbank und ersetzen Sie sie durch die neue.
Jetzt ist unsere Firebase-Verbindung mit unserer Android-App vollständig hergestellt. Wir können jetzt mit dem Testteil unseres Projekts fortfahren.
Schritt 7: Testen
Der Testteil ist sehr einfach. Sie müssen nur zu Ihrem Android-Gerät gehen und das aktivieren Entwickleroptionenvon der Einstellung. Dann müssen Sie das aktivieren USB-Debugging.Schließen Sie danach Ihr Android-Gerät an Ihren Computer an und führen Sie das Android-Projekt in Android Studio aus. Dadurch wird die App auf Ihrem Android-Gerät erstellt.
Klicken Sie nun auf die Schaltflächen auf Ihrem Bildschirm, um die Entitäten in Ihrer Firebase-Datenbank automatisch zu erstellen. Sie werden sehen, dass einige Werte in der entsprechenden Entität aktualisiert werden, wenn Sie die Tasten drücken.