Kontrol Relay menggunakan App Android dan Firebase

Akun Tidak Aktif
4 min readFeb 4, 2020

Tutorial kali ini merupakan lanjutan tutorial yang saya tulis sebelumnya (cek disini). Sekarang kita akan membuat sebuah aplikasi android yang digunakan untuk mengaktifkan dan menonaktifkan relay. Software yang dibutuhkan pada tutorial kali ini ialah Android Studio.

Langkah pertama adalah membuat project baru di android studio. Pilih “Empty Activity” dan create project dengan nama “Latihan-Kontrol-Relay”.

Langkah selanjutnya ialah membuat layout program app seperti berikut :

Buat sebuah text dengan nama “Relay Control App”. Setelah itu buat 2 button dengan keterangan button 1 id “on” dan dan button 2 id “off”.

Setelah itu buat koneksi dengan firebase yang dulu pernah kita buat. Caranya klik tab Tools>Firebase maka akan muncul side layout pada sisi kanan dan pilih Realtime Database klik save dan retrive data seperti berikut :

Pada Side Layout sisi kanan akan muncul Save and retrieve data dan klik connect to Firebase :

Setelah itu akan muncul jendela connect to firebase. Pilih choose a existing Firebase or Google Project dan pilih database yang pernah dibuat (cek disini), saya menggunakan firebase-coba dan klik connect to firebase.

Setelah android studio telah terkoneksi dengan firebase, selanjutnya Add the Realtime Database to your app dan klik Accept Changes.

Selanjutnya tambahkan script berikut di MainActivity.java :

Pertama import library (package firebase):

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

Selanjutnya deklarasikan variabel Button on dan off didalam public class MainActivity extends AppCompatActivity{}:

Button on;
Button off;

Tambahkan findviewbyid untuk mencari id on dan off pada layar sebagai berikut :

on = (Button) findViewById(R.id.on);
off = (Button) findViewById(R.id.off);

Untuk menggunakan button on dan off menggunakan method setOnClickListener() jika button on di klik maka akan mengubah nilai Relay_STATUS pada firebase menjadi 1 sedangkan button off akan mengubah nilai Relay_STATUS pada firebase menjadi 0. Scriptnya seperti berikut:

on.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Relay_STATUS");

myRef.setValue(1);
}
});
off.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Relay_STATUS");

myRef.setValue(0);
}
});

Untuk full programnya sebagai berikut:

package com.example.relay_control_app;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class MainActivity extends AppCompatActivity {
Button on;
Button off;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

on = (Button) findViewById(R.id.on);
off = (Button) findViewById(R.id.off);

on.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Relay_STATUS");

myRef.setValue(1);
}
});
off.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
// Write a message to the database
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Relay_STATUS");

myRef.setValue(0);
}
});
}
}

Jika sudah pada android manifest tambahkan script berikut untuk memberi ijin agar terkoneksi dengan internet :

<uses-permission android:name="android.permission.INTERNET"/>

Selanjutnya build apk dan pindahkan ke android device masing-masing. Silahkan cek di firebase jika Relay_STATUS berganti nilainya saat tombol ditekan maka koneksi Relay Control App ke firebase bisa dikatakan berhasil.

Selanjutnya pada NodeMCU gunakan script berikut :

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>// Set these to run example.
#define FIREBASE_HOST "masukkan host database"
#define FIREBASE_AUTH "masukkan secret code"
#define WIFI_SSID "masukkan nama access point"
#define WIFI_PASSWORD "masukkan password access point"int relay = 16;void setup() {
Serial.begin(9600);// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());pinMode(relay, OUTPUT);

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.set("Relay_STATUS", 0);
}int n = 0;void loop() {
// set value
n = Firebase.getInt("Relay_STATUS");
// handle error
if (n == 1) {
Serial.print("Relay ON");
digitalWrite(relay, HIGH);
return;
delay(1000);
}
else{
Serial.print("\n Relay OFF");
digitalWrite(relay, LOW);
}
}

Silahkan dicoba semoga berhasil. Sekian tutorial kali ini :D.

--

--