Arduino Send/Receive Data ke Firebase

Dalam Tutorial ini, MatGyver akan menerangkan bagaimana Arduino berkomunikasi dengan Firebase dengan kaedah SEND/RECEIVE data.

Pelbagai data dapat di Send atau di Receive oleh Arduino samada:

  • Integer : Nombor dari -32,000 hingga +32,000
  • Float : Nombor yang mempunyai titik perpuluhan
  • String : Struktur ayat atau perkataan

Anda perlu peka terhadap jenis-jenis data ini ketika proses SEND/RECEIVE.

CONNECTION WIFI DAN INTERNET

Disebabkan Firebase adalah Cloud Data Base System di internet, Arduino perlu mempunyai WiFi connection yang mempunyai connection Internet:

  • HotSpot SmartPhon
  • WiFi Router Kediaman

Oleh itu, kami sarankan penggunaan NodeMCU sebagai Microcontroller kerana ia mempunyai Built-In WiFi module yang stabil berbanding module ESP8266.

Jika korang tidak pernah menggunakan NodeMCU, kami sarankan tutorial di bawah ini dahulu sebelum meneruskan dengan Tutorial Firebase ini.

Pertama Kali Denga NodeMCU

Jika korang dah pernah menggunakan NodeMCU, teruskan membaca tutorial ini.

LIBRARY FIREBASE ESP8266

Download Library Firebase ESP8266 dari Arduino IDE.
Dalam Arduino IDE, Navigasi ke:

Sketch > Include Libraries > Manage Libraries

Dalam ruangan Search, searchkan “Firebase”,
kemudian Install Library “Firebase ESP8266 Client by Mobizt”

DEFINING AREA

Berikut adalah coding wajib di bahagian defining untuk library.
Pastikan anda mendapatkan URL Host untuk Firebase dan Authtoken dari Firebase untuk dimasukkan ke dalam coding berikut.

//FirebaseESP8266.h must be included before ESP8266WiFi.h
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>

//Define Firbase Host, Auth Token dan WiFi SSID
#define FIREBASE_HOST "YOUR_FIREBASE_PROJECT.firebaseio.com"
#define FIREBASE_AUTH "YOUR_FIREBASE_DATABASE_SECRET"
#define WIFI_SSID "YOUR_WIFI_AP"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD"

//Define FirebaseESP8266 data objects
FirebaseData firebaseData1;

VOID SETUP AREA

void setup(){
  Serial.begin(9600);                    //mulakan Serial Monitor

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);  //connect ke WIFI
  Serial.print("Connecting to Wi-Fi");
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(300);
  }
  Serial.println();
  Serial.print("Connected with IP: ");   //Notifikasi WiFi Connection
  Serial.println(WiFi.localIP());
  Serial.println();

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); //Connect ke Firebase
  Firebase.reconnectWiFi(true);

  if (!Firebase.beginStream(firebaseData1, path))  //Error jika gagal connect ke Firebase
  {
    Serial.println("------------------------------------");
    Serial.println("Can't begin stream connection...");
    Serial.println("REASON: " + firebaseData1.errorReason());
    Serial.println("------------------------------------");
    Serial.println();
  }
}//END OF VOID SETUP

VOID LOOP AREA

Apabila Defining Area dan Void Setup sudah complete, Main-Code dalam Void Loop sudah ready untuk menerima dan menghantardata ke atau dari Firebase.

Seterusnya, kita akan belajar bagaimana memanggil atau menghantar data dari/ke Firebase.

MENGHANTAR DATA KE FIREBASE
(setString, setInt, setFloat)

Bagi menghantar data ke Firebase, sytanx codingnya adalah seperti berikut, dan String Data” akan dihantar ke database Firebase.

Firebase.setString(firebaseData, "/NamaTag", "Data");

Ataupun, jika terdapat banyak “Child” dalam Firebase, syntax nya akan berupa di bawah, dan String Data” akan dihantar ke database Firebase.

Firebase.setString(firebaseData, "/ChildPertama/ChildKedua/NamaTag", "Data");

Lain-lain format data yang bernombor seperti Integer atau Float, menggunakan syntax di bawah:

Firebase.setInt,  Firebase.setFloat,  Firebase.setDouble,  Firebase.setBool,  Firebase.setString,  Firebase.setJSON,  Firebase.setBlob dan  Firebase.setFile

Bagi mendapatkan guide penuh mengenai syntax-syntax ini, anda boleh refer GitHub mengenai detail Library Firebase ini.

GitHub Firebase ESP8266 Detail

MEMANGGIL/MENERIMA DATA DARI FIREBASE
(getString, getInt, getFloat)

Bagi memanggil/menerima data DARI Firebase, sytanx codingnya adalah seperti berikut:

Firebase.getString(firebaseData, "/NamaTag");
DataBaru = firebaseData.stringData();

Data akan dipanggil dari Firebase dengan memanggil “TAG NAME” dari Firebase.

Sejurus selepas memanggil “TAG NAME” NodeMCU akan menerima data dari Firebase dalam syntax “firebaseData.stringData()”

Kemudian korang boleh store value tersebut dalam satu global variable korang sendiri.

Atau, jika value tersebut terdapat banyak “Child”, syntax codingnnya adalah seperti berikut.

Firebase.getString(firebaseData, "/Child1/Child2/NamaTag");
DataBaru = firebaseData.stringData();

To be continued…

Tinggalkan Jawapan

Masukkan butiran anda dibawah atau klik ikon untuk log masuk akaun:

WordPress.com Logo

Anda sedang menulis komen melalui akaun WordPress.com anda. Log Out /  Tukar )

Google photo

Anda sedang menulis komen melalui akaun Google anda. Log Out /  Tukar )

Twitter picture

Anda sedang menulis komen melalui akaun Twitter anda. Log Out /  Tukar )

Facebook photo

Anda sedang menulis komen melalui akaun Facebook anda. Log Out /  Tukar )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.