Raspberry Pi – Send/Receive/Search Data ke Firebase

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 !

Dapatkan Tips-tips DIY dan Arduino dari FB Page Kami.
Konten Video Tips DIY Hobby MatGyver Official Channel.

end

Published by Mat Gyver

Peneraju Komuniti Digital Maker Malaysia. Pembangunan Komuniti diUtamakan.

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 )

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.

%d bloggers like this: