Dalam Tutorial ini, MatGyver akan menerangkan bagaimana Raspberry Pi berkomunikasi dengan Firebase dengan kaedah SEND/RECEIVE data.
SEBELUM MEMULAKAN
Jika anda belum membuat Databse di Firebase, anda ikuti tutorial di bawah ini:
Tutorial Mencipta Database di Firebase.Google
LIBRARY FIREBASE – PYTHON RASPBERRY PI
Step #1, install kan Library/Module Python-Firebase dalam Rasp Pi Terminal menggunakan pip install.
$ sudo pip install requests==1.1.0
$ sudo pip install python-firebase
JIKA GUNAKAN PYTHON 3+ DAN ADA MASALAH COMPILE (Firebase not found)
Masalah compilation ini berlaku jika menggunakan Python 3+.
STEP #1 : Navigasi ke folder Module Firebase di Install
Python37 > site-packages > firebase
STEP #2 : Cari File bernama async_compatible.py
dan ubahkan/rename ke yang baru asyncn_compatible.py
STEP #3 : Buka file firebase.py dan ubah line berikut
from .async_compatible import process_pool
kepada
from .asyncn_compatible import process_pool
STEP #4 : Laksanakan perkara yang sama pada file-file berikut:
__init__.py dan juga file decorators.py
JIKA ADA MASALAH COMPILE (Python_jwt Not Found)
Anda cuma perlu installkan module tersebut dengan code di bawah dalam terminal.
pip install python_jwt
MENGHANTAR DATA KE FIREBASE
Buka dan bina satu File Python samada dari Rasp Pi Terminal atau terbaiknya dari Python App.
Bagi menghantar data ke Firebase, sytanx codingnya adalah seperti berikut, dan “data” nombor plate akan dihantar ke database Firebase.
Pastikan URL Database anda dimasukkan dalam bahagian
firebase.FirebaseApplication(‘URL Anda’, None)
#import module-module berkenaan from firebase import firebase firebase = firebase.FirebaseApplication('https://alamat-database-anda.firebaseio.com/', None) data = 'WXA 4577' firebase.put('/SetBaru/NomborPlate','2', data)
firebase.put(‘alamat_data’ , ‘ID_data’ , data )
Ini adalah syntax yang menghantar data ke Firebase.
firebase.put('/SetBaru/NomborPlate','2', data)
Perhatikan bagaimana DATA diSUSUN mengikut coding yang diberikan.
/SetBaru/NomborPlate merujuk pada folder dan sub-folder
‘2’ merujuk pada ID data tersebut
SETIAP DATA perlu disusun menggunakan ID yang berlainan.

MEMANGGIL/MENERIMA DATA DARI FIREBASE
Sebelum MEMANGGIL DATA dari Firebase, anda perlu lihat dulu, STRUKTUR DATA dalam database, supaya ALAMAT PANGGILAN betul.

Bagi memanggil/menerima data NomborPlate dengan ID “1” dari Contoh Database di atas, sytanx codingnya adalah seperti berikut:
firebase.get(‘alamat_data’ , ‘ID_data’)
#import module-module berkenaan from firebase import firebase firebase = firebase.FirebaseApplication('https://platenumber-1123.firebaseio.com/', None) nomborPlate = firebase.get('/SetBaru/NomborPlate', '1') print(nomborPlate)
PENTING!:
Pastikan ALAMAT/PATH pada data tersebut adalah betul.
SEARCH/MENCARI DATA YANG MATCHING DENGAN FIREBASE
Bab ini penting. Dalam kebanyakan Project Database, adalah penting untuk tahu KAEDAH yang betul untuk mencari data yang matching dengan Firebase.
Sebagai Contoh, DATABASE untuk Plate Nombor Kereta.

Perhatikan dalam Database di atas, terdapat satu FOLDER KHAS yang akan menyimpan JUMLAH BILANGAN data.
Maklumat JUMLAH BILANGAN data ini penting untuk digunakan oleh Coding SEARCH kita di bawah.
Dalam contoh di bawah, kita akan TEST, mencari data plate nombor kereta “ADT 3356”, samada wujud atau tidak dalam Database.
CODING PENUH UNTUK MEMBUAT PENCARIAN SEARCH
#import module-module berkenaan from firebase import firebase import time #initiate connection dengan database firebase = firebase.FirebaseApplication('https://platenumber-1123.firebaseio.com/', None) #Coding bermula di sini #Define data yang ingin dicari SearchTarget = 'ADT 3356' #Define satu variable untuk simpan condition seach #Initial value adalah False MatchFound = False #Dapatkan maklumat jumlah data dahulu NumberOfData = firebase.get('/NumberOfPlate', None) #Check samada bilangan data yang diterima betul print(NumberOfData) #Bina FOR loop untuk SCAN data dalam firebase for x in range(NumberOfData + 1): #Dapatkan maklumat jumlah data dahulu PlateNumber = firebase.get('/plate', x) #Check Result Search print(PlateNumber) #Compare Result Search dan Target if PlateNumber == SearchTarget: #Kalau benar, print kan notification print('Plate Number Found!') #Simpankan maklumat ID data tersebut IDPlate = x print('Data ID Number is :',IDPlate) #Ubah Variable pada True untuk kegunaan kemudian MatchFound = True #Hentikan/Break exit For Loop apabila match break #If statement selepas SEARCH FOR LOOp jika tiada matching result if MatchFound == False: print('Sorry. No Matching Results.')
Semoga Project Database Firebase anda GEMPAK!
Jika anda menyukai artikel-artikel keluaran MatGyver.my, kami mohon jasa baik tuan/cikpuan untuk sumbangkan like pada page FaceBook kami,
dan juga Subscribe ke YouTube Channel kami !
end