Sådan oprettes en Android-app til dit Smart Home-system i Android Studio?

Denne artikel er del to af en anden artikel Hvordan laver man smart hjemmeautomatisering ved hjælp af ESP32-modul? hvor der blev leveret en metode til at fremstille et Smart Home-system. I denne artikel vil vi demonstrere trin for trin procedure for, hvordan man udvikler en Android-applikation og forbinder den til firebase-databasen. Derefter vil denne mobile applikation blive brugt til at skifte de elektriske apparater i hjemmet.



Android-appudvikling

Smart Home-systemer, der allerede er tilgængelige på markedet, er meget dyre. Hvis du har de nødvendige komponenter og en Android-enhed, kan du lave et hjemmeautomatiseringssystem derhjemme, som vil være lige så effektivt, men som vil koste meget lave omkostninger. Gå gennem disse to artikler for at lave dit eget Home Automation System derhjemme.



Hvordan udvikler jeg en Android-applikation til hjemmeautomatisering?

Vi skal udvikle en android-app, der vil blive brugt som en fjernbetjening til at styre de elektriske husholdningsapparater, der var forbundet til ESP32-modulet i den anden artikel. at gå til den anden artikel, Klik her .



Trin 1: Nødvendig software

Da vi skal udvikle en Android-applikation, har vi kun brug for en software. Men for at køre denne software skal vi først installere en anden software. Du kan downloade dem fra følgende links.



  • Android Studio.
  • JAVA JDK.

Trin 2: Forstå hovedarbejdet

Vi skal lave en applikation, der vil have både front-end og back-end-kodning. På hovedskærmen vil den indeholde nogle knapper, der styrer omskiftningen af ​​de elektriske apparater, der er tilsluttet ESP32-mikrokontrolkortet. I backend-kodningen sender vi en '1', hvis kontakten er tændt, og en '0', hvis kontakten er slukket.

Vi skal oprette en Firebase-database. Denne database vil indeholde 2 enheder navngivet som Light og AC. Lyset indeholder værdien for skift af lys, og AC vil indeholde en værdi for skift af blæser. Denne værdi sendes derefter til mikrokontrolleren, og derefter sender mikrokontrolleren et styresignal til relæmodulet i overensstemmelse hermed.

Trin 3: Opsætning af Android Studio

Før vi installerer Android Studio, installerer vi JAVA JDK først. For at installere dette skal du klikke på exe fil som du downloadede fra ovenstående link, og klik på næste, indtil den er installeret. Gå nu gennem følgende trin, så din kommandoprompt genkender java som en ekstern eller intern kommando.



  1. Åben Kontrolpanel og klik på System og sikkerhed .
  2. Klik på System .

    System

  3. Klik på Avanceret systemindstilling og klik derefter på Miljøvariabler .

    Avanceret systemindstilling

  4. I sektionen Systemvariabel skal du klikke på stien og derefter klikke på rediger. Et nyt Rediger miljøvariabel feltet vises.

    Rediger sti

  5. Gå nu til C: Program Files Java på din pc. Åbn JDK-mappen, klik på bin-mappen og kopier derefter stien til den pågældende mappe.

    Stien til papirkurven

  6. Gå nu til boksen Rediger miljøvariabel og klik på ny for at oprette en ny variabel. Indsæt den sti, du kopierede i ovenstående trin i den nye variabel, og gem den.
  7. Nu for at bekræfte, hvis det er fuldt installeret, skal du åbne kommandoprompt og skrive java –version .

    JAVA-version

Nu som du har installeret Java JDK på din computer. Lad os nu installere Android Studio på din computer. Installation af denne software er meget let. Du skal åbne den downloadede fil og klikke på næste, indtil din software er fuldt installeret.

Trin 4: Lav layoutet

Vi laver et layout, der indeholder nogle knapper, der sender kommandoen 0 eller 1 til firebase-databasen. Dette vil være et simpelt layout, der indeholder nogle knapper. I min app inkluderer jeg bare to knapper, der styrer lysene og blæseren. Hvis du vil medtage flere knapper til flere husholdningsapparater, skal du kopiere det samme stykke kode i hovedprogrammet og oprette en ny variabel i databasen. Uden at spilde noget tid, lad os bevæge os i retning af trinene til at lave et simpelt layout til vores app.

1. Gå først til Fil> Nyt> Nyt projekt. En menu vises. Vælg Tomt projekt.

2. Navngiv nu projektet, og indstil det KOTLIN som dit programmeringssprog.

3. Klik på i venstre hjørne app> res> layout> activity_main.xml.

aktivitetshoved

4. Her skal du tilføje følgende kode under den kode, der allerede er angivet i dit Android-studie. Vi laver et begrænsningslayout. Den følgende kode tilføjer en overskrift til Room Automation øverst. Derefter tilføjes 3 kontakter. en kontakt giver dig mulighed for at vælge f du vil betjene husholdningsapparaterne manuelt eller ej. De to andre tændte betjener henholdsvis blæseren og lysene.

 

5. Layoutet på din app vil se ud som billedet nedenfor.

Layout

Trin 5: Back-End-kodning

Backend-koden er den vigtigste del af enhver applikation. Det er hovedbroen mellem frontend-layoutet og projektets database. I vores applikation vil vi bare sende et '1' i databasen, når kontakten er tændt, og et '0' i databasen, når kontakten er slukket. Gå gennem følgende trin for at tilføje koden i din applikation

1. I venstre hjørne skal du klikke på app> java> com.example.my applicationmyapplication> main_activity.

2. Nu på denne skærm skal du kopiere følgende kode i din klasse.

klasse automatisering: AppCompatActivity () {var database = FirebaseDatabase.getInstance () var myRef = database.reference intern lateinit var btnSwitch: Skift intern lateinit var btnSwitch1: Skift intern lateinit var btnSwitch2: Switch override fun onCreate (savedInstanceState: Bundle? Bund? .onCreate (savedInstanceState) setContentView (R.layout.activity_automation) myRef.child ('Toggle / switch'). addValueEventListener (object: ValueEventListener {override fun onCancelled (p0: DatabaseError) {} tilsidesætte fun onDataChange (p0: DataSwitch) .visibility = View.VISIBLE if (p0.value.toString (). equals ('1')) {switch1.isChecked = true; toggleButton2.visibility = View.VISIBLE toggleButton3.visibility = View.VISIBLE myRef.child ('automatisering /AC').addValueEventListener(object: ValueEventListener {tilsidesætte fun onCancelled (p0: DatabaseError) {} tilsidesætte fun onDataChange (p0: DataSnapshot) {if (p0.value.toString (). Er lig med ('1')) {toggleButton2. isChecked = true} ellers toggleButton2.isChecked = fals e}}) myRef.child ('automatisering / lys'). addValueEventListener (objekt: ValueEventListener {tilsidesætter fun onCancelled (p0: DatabaseError) {} tilsidesætter fun onDataChange (p0: DataSnapshot) {if (p0.value.toString (). er lig med ('1')) {toggleButton3.isChecked = true} ellers toggleButton3.isChecked = false}}}} andet {switch1.isChecked = false toggleButton2.visibility = View.GONE toggleButton3.visibility = View.GONE} // Log. d ('ahsan