Hoe maak je een Android-app voor je Smart Home-systeem op Android Studio?
Dit artikel is deel twee van een ander artikel Hoe maak je slimme huisautomatisering met behulp van de ESP32-module? waarin een methode werd geboden om een Smart Home-systeem te maken. In dit artikel gaan we de stapsgewijze procedure demonstreren voor het ontwikkelen van een Android-applicatie en deze verbinden met de Firebase-database. Vervolgens wordt deze mobiele applicatie gebruikt om de elektrische apparaten in huis te schakelen.
Smart Home-systemen die al op de markt verkrijgbaar zijn, zijn erg kostbaar. Als je over de nodige componenten en een Android-apparaat beschikt, kun je thuis een domoticasysteem maken dat even efficiënt is, maar erg goedkoop zal zijn. Doorloop deze twee artikelen om thuis uw eigen domoticasysteem te maken.
Hoe een Android-applicatie voor domotica te ontwikkelen?
We gaan een Android-app ontwikkelen die zal worden gebruikt als afstandsbediening om de elektrische huishoudelijke apparaten te bedienen die in het andere artikel op de ESP32-module waren aangesloten. om naar het andere artikel te gaan, Klik hier.
Stap 1: Software nodig
Omdat we een Android-applicatie gaan ontwikkelen, hebben we slechts één software nodig. Maar om die software te kunnen gebruiken, moeten we eerst een andere software installeren. U kunt ze downloaden via de volgende links.
Stap 2: De belangrijkste werking begrijpen
We gaan een applicatie maken die zowel front-end als back-end codering zal hebben. Op het hoofdscherm bevat het enkele knoppen die het schakelen regelen van de elektrische apparaten die zijn aangesloten op het ESP32-microcontrollerbord. In de back-end codering sturen we een "1" als de schakelaar is ingeschakeld en een "0" als de schakelaar is uitgeschakeld.
We gaan een Firebase-database maken. Deze database bevat 2 entiteiten genaamd Light en AC. Het licht zal de waarde voor het schakelen van lichten bevatten en AC zal een waarde bevatten voor het schakelen van de ventilator. Deze waarde wordt vervolgens naar de microcontroller gestuurd en vervolgens stuurt de microcontroller een stuursignaal naar de relaismodule.
Stap 3: Android Studio instellen
Voordat we Android Studio installeren, zullen we eerst JAVA JDK installeren. Om dit te installeren, klikt u op het exe het dossier die u via de bovenstaande link hebt gedownload, en klik op Volgende totdat het met succes is geïnstalleerd. Doorloop nu de volgende stappen zodat uw opdrachtprompt java herkent als een externe of interne opdracht.
- 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 Omgevingsvariabele bewerkenbox zal verschijnen.
- Ga nu naar C: \ Program Files \ Java op uw pc. Open de JDK-map, klik op de bin-map en kopieer 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 4: De lay-out maken
We zullen een lay-out maken met enkele knoppen die het commando 0 of 1 naar de firebase-database sturen. Dit wordt een eenvoudige lay-out die enkele knoppen zal bevatten. In mijn app zal ik slechts twee knoppen toevoegen die de lichten en de ventilator regelen. Als je meer knoppen voor meer huishoudelijke apparaten wilt toevoegen, kopieer dan hetzelfde stuk code in het hoofdprogramma en maak een nieuwe variabele in de database. Laten we, zonder tijd te verspillen, naar de stappen gaan om een eenvoudige lay-out voor onze app te maken.
1. Ga allereerst naar Bestand> Nieuw> Nieuw project.Er verschijnt een menu. Selecteer Leeg project.
2. Geef nu het project een naam en stel het in KOTLINals uw programmeertaal.
3. Klik nu in de linkerhoek op app> res> layout> activity_main.xml.
4. Voeg hier de volgende code toe onder de code die al in uw Android-studio beschikbaar is. We maken een constraint-layout. De volgende code voegt bovenaan een kopje Room Automation toe. Het voegt dan 3 schakelaars toe. Met één schakelaar kunt u selecteren of u de huishoudelijke apparaten al dan niet handmatig wilt bedienen. De andere twee schakelaars bedienen respectievelijk de ventilator en de lichten.
5. De lay-out van uw app ziet eruit als in de onderstaande afbeelding.
Stap 5: Back-endcodering
De back-endcode is het belangrijkste onderdeel van elke toepassing. Het is de belangrijkste brug tussen de front-end layout en de database van het project. In onze applicatie willen we alleen een "1" in de database sturen als de schakelaar aan staat en een "0" in de database als de schakelaar uit staat. Doorloop de volgende stappen om de code in uw applicatie toe te voegen
1. Klik in de linkerhoek op app> java> com.voorbeeld.mijn applicatiemijnapplicatie> hoofdactiviteit.
2. Kopieer nu op dit scherm de volgende code in je klas.
class automation: AppCompatActivity () {var database = FirebaseDatabase.getInstance () var myRef = database.reference internal lateinit var btnSwitch: Switch internal lateinit var btnSwitch1: Switch internal lateinit var btnSwitch2: Switch override fun onCreate (saved BundleInstanceState?) {super: .onCreate (savedInstanceState) setContentView (R.layout.activity_automation) myRef.child ("Toggle / switch"). addValueEventListener (object: ValueEventListener {override fun onCancelled (p0: DatabaseError) {} override fun onDataChange1 (p0): DataSnap1 .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 {overschrijven fun onCancelled (p0: DatabaseError) {} overschrijven fun onDataChange (p0: DataSnapshot) {if (p0.value.toString (). Equals ("1")) {toggleButton2. isChecked = true} anders toggleButton2.isChecked = false}}) myRef.child ("automation / light"). addValueEventListener (object: ValueEventListener {override fun onCancelled (p0: DatabaseError) {} override fun onDataChange (p0: DataSnapshot) {if (p0.value.toString () .equals ("1")) {toggleButton3.isChecked = true} else toggleButton3.isChecked = false}})} anders {switch1.isChecked = false toggleButton2.visibility = View.GONE toggleButton3.visibility = View.GONE} // Logboek .d ("ahsan", p0.value.toString ())}}) button3.setOnClickListener {val intent = Intent (dit, MainActivity :: class.java) startActivity (intent)} btnSwitch = findViewById(R.id.switch1) als Switch btnSwitch1 = findViewById (R.id.toggleButton2) als schakelaar btnSwitch2 = findViewById (R.id.toggleButton3) as Switch btnSwitch.setOnClickListener{ if(btnSwitch.isChecked) { myRef.child("Toggle/switch").setValue("1") btnSwitch1.setOnClickListener{ if(btnSwitch1.isChecked) { myRef. 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")}}}}
Op dit moment kan de code op sommige punten fouten geven omdat deze op dit moment niet is verbonden met de firebase-database. We maken een firebase-database en verbinden deze met de applicatie.
Stap 6: De app verbinden met de Firebase-database
Het verbinden van de firebase-database met de Android-app is bijna de laatste stap. We gaan een database maken op Firebase. Firebase is een verbeteringsfase voor mobiele en webapplicaties die ontwerpers voorziet van tal van apparaten en administraties om hen in staat te stellen eersteklas applicaties te laten groeien, hun klantenbestand te ontwikkelen en meer voordelen te verwerven. Firebase biedt ons twee services: Real-Time Database en Firestore.
We zullen een Real-Time Database maken waarop alle waarden in real-time worden bijgewerkt met een vertraging van enkele seconden. Doorloop de volgende stappen om een realtime database op firebase te maken. Android Studio biedt een zeer eenvoudige methode om deze verbinding tot stand te brengen. Doorloop de volgende stappen om deze verbinding tot stand te brengen.
1. Klik op n Hulpmiddelen.Er verschijnt een vervolgkeuzemenu waaruit u kunt selecteren Firebase.
2. Er verschijnt een groot menu aan de rechterkant van het scherm met het menu van bijna elke service die Firebase biedt. Maar op dit moment ligt onze belangrijkste focus op Real-Time Database. Dus klik op Real-Time Database. Een link naar "Gegevens opslaan en ophalen" zal verschijnen. Klik op die link.
3. Maak verbinding Maak verbinding met Firebaseknop. Het brengt u naar de standaardwebbrowser. Eerst wordt u gevraagd om in te loggen op uw Gmail-account.
4. Klik nu op Voeg de Realtime Database toe aan uw app knop uit het menu getoond in de afbeelding hierboven. Er verschijnt een vak waarin u wordt gevraagd enkele wijzigingen aan te brengen. Klik op Acbehalve veranderingen. U zult zien dat de applicatie begint te synchroniseren om verbinding te maken met onze Real-Time Database.
5. Ga nu naar Firebase Console. Daar zie je een reeds gemaakt project. Het Android-logo op het pictogram van dat project betekent dat het al bij een Android-applicatie hoort.
6. Vanaf de Ontwikkelen menu dat aan de linkerkant van het scherm verschijnt, selecteert u Database. Een knop van Maak een database verschijnt aan de rechterkant. Klik op die knop.
7. Er verschijnt een menu waarin u wordt gevraagd de modus van uw database in te stellen. Klik op testmodusen klik vervolgens op Inschakelen.
8. Een heel belangrijke stap om te onthouden is het wijzigen van de Cloud Firestore naar Realtime database.Klik hiervoor op de knop in de onderstaande afbeelding en verander de gewenste optie.
9. Klik nu op het Reglement tabblad en wijzig de configuraties in Klopt. Als alles klaar is, klikt u op Publiceren.
10. Een ding dat u moet doen, behalve het aansluiten van de firebase, is de databaseversie bijwerken. Klik daarvoor op ga naar documenten. Klik nu op gidsenen selecteer Android-gidsenuit de lijst die op het scherm verschijnt. Scroll naar beneden tot een tabel verschijnt. Zoek naar Real-Time Database in die tabel en vind de versie ervan. in mijn geval is dat zo 19.1.0
11. Klik op Gradle-scripts,een menu aan de linkerkant van het scherm. Selecteer vervolgens gebouwd. gradle (Module: app). Zoek nu in de code naar de versie van de Real-Time-database en vervang deze door de nieuwe.
Nu is onze Firebase-verbinding met onze Android-app volledig tot stand gebracht. We kunnen nu doorgaan naar het testgedeelte van ons project.
Stap 7: testen
Het testgedeelte is heel eenvoudig. U hoeft alleen maar naar uw Android-apparaat te gaan en het Opties voor ontwikkelaarsvan de instelling. Dan moet u het USB debugging.Nadat u dit allemaal hebt gedaan, verbindt u uw Android-apparaat met uw computer en voert u het Android-project uit in Android Studio. Hiermee wordt de app op je Android-apparaat gebouwd.
Klik nu op de knoppen op uw scherm en het zal automatisch de entiteiten in uw firebase-database maken. U zult zien dat sommige waarden in hun overeenkomstige entiteit worden bijgewerkt als u op de knoppen drukt.