Untuk melakukan push data ke firebase realtime database melalui REST, maka firmware NodeMCU yang akan digunakan perlu di kustomisasi dengan menambahkan module HTTP dan SSL support, TLS 1.1 with 4 cipher suites.
Gambar 1. Kustomisasi Module fireware NodeMCU
Langkah-langkah:
1. Aktifkan ke console Firebase
2. Buatlah project anda
Gambar 2. Membuat Project Firebase
3. Klik pada Project Setting
Gambar 3. Mengatur Project setting
Gambar 4. Tab Service Accounts
5. Duplikasi Database Secrets anda yang akan digunakan untuk authentication ketika proses POST, PUT maupun GET data melalui REST.
Gambar 5. Duplikasi Database Secrets
6. Aktifkan ke Database dan duplikasi url akses database yang nantinya akan dilewatkan ke server untuk mengakses sumber daya database.
Gambar 6. Alamat akses Database
7. Lakukan koding berikut ini:
database = "https://nodemculua-677a8.firebaseio.com/"
node = "sensor1.json"
dbSecret = "xjTm2qhygBgVNqQauJC2n1JyQB4NCXbc********"
url = database .. node .. "?auth=" .. dbSecret
print(url)
payload = "{\"time\":\"2016-11-13\",\"temperature\":25,\"humidity\":45}"
print(payload)
http.request(url,
"POST",
"Content-Type: application/json\r\n",
payload,
function(code, data)
if (code ~= 200) then
print("Failed : HTTP error code : " .. code)
else
print("Succeed : " .. code, data)
end
end)
Pada koding diatas, kita akan melakukan push data yang terdiri dari tiga atribut, yaitu time, temperatur, dan humidity ke node sensor1 yang terdapat pada database https://nodemculua-677a8.firebaseio.com/.
8. Jika berhasil di Run akan muncuk response sebagai berikut:
dofile('app.lua')
https://nodemculua-677a8.firebaseio.com/sensor1.json?auth=xjTm2qhygBgVNqQauJC2n1JyQB4NCXbcC******
> Succeed : 200 {"name":"-KWQDQVFJHSIdmrVyyQ1"}
9. Jika mendapatkan pesan seperti ini:
https://nodemculua-677a8.firebaseio.com/sensor1.json?auth=xjTm2qhygBgVNqQauJC2n1JyQB4NCXbcC******
Failed : HTTP error code : 400{
"error" : "Could not parse auth token."
}
Maka pastikan database secret adalah telah benar, untuk memastikan, coba duplikasi url diatas ke web browser, dan jika berhasil harusnya mendapat respons:
Gambar 7. URL benar dan Authentication sukses
Jika terdapat kegagalan pada token, maka akan muncul pesan
Gambar 3. Firebase server gagal melakukan authentication
dan jika hasil run dengan pesan Failed : HTTP error code : -1, walaupun sudah dipastikan koding, url datatabase maupun database secret adalah telah benar, maka perlu dipastikan bahwa firmware anda mendukung module tambahan SSL
support, TLS 1.1 with 4
cipher suites.
Jika koding diatas adalah menggunakan perintah http.request, maka dapat juga menggunakan perintah http.post.
Petunjuk tambahan terkait dengan pemanfaatan REST pada firebird dapat dibaca di https://firebase.google.com/docs/reference/rest/database/database = "https://nodemculua-677a8.firebaseio.com/"
node = "sensor1.json"
secret = "xjTm2qhygBgVNqQauJC2n1JyQB4NCXbcCQ******"
url = database .. node .. "?auth=" .. secret
payload = "{\"time\":\"2016-11-13\",\"temperature\":25,\"humidity\":45}"
print(url)
http.post(url,
"Content-Type: application/json\r\n",
payload,
function(code, data)
if (code ~= 200) then
print("Failed : HTTP error code : " .. code)
else
print("Succeed : " .. code, data)
end
end)
Tidak ada komentar:
Posting Komentar