Firebase是什麼
Firebase是一款Google提供的服務,可以串連iOS、android、Unity、Web APP,協助開發者在雲端快速建立後端服務,提供即時的雲端資料庫,開發者可以不用在開發後端的前提下,專心撰寫前端的程式,目前在一定使用額度下,提供免費服務
安裝Firebase library
- 在arduino IDE裡面要安裝Firebase的library,我們需要先到Github上下載檔案,直接Download ZIP就可以了
- 下載完畢之後,打開Arduino IDE>Sketch>Include Library>Add .ZIP Library,接著選擇剛剛下載下來的ZIP檔就完成Library的安裝了
建立Firebase專案
首先先進入Firebase>登入>新建專案>輸入專案名稱與地區之後建立專案
接著點選overview旁邊的設定>專案設定>服務帳戶>資料庫密鑰>顯示並複製密鑰
回到剛剛上一步的視窗,點選左側的Database>規則>將”.read”跟”.write”都更改為true並發布,這樣可以使資料庫無需權限的被讀取跟寫入
記錄Database的網址,如此範例就是https://nodemcu-94c0b.firebaseio.com/
arduino程式碼
將上一步記錄下來的網址與金鑰分別輸入firebaseURl、authCode,且更改ssid、password,並上傳程式碼即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include <ESP8266WiFi.h> #include <FirebaseArduino.h>
char ssid[] = "your SSID"; char pass[] = "your password";
#define firebaseURl "firebaseURl" #define authCode "authCode"
int led = D5;
void setupFirebase() { Firebase.begin(firebaseURl, authCode); }
void setupWifi() { WiFi.begin(ssid, pass); Serial.println("Hey i 'm connecting..."); while (WiFi.status() != WL_CONNECTED) { Serial.println("."); delay(500); } Serial.println(); Serial.println("I 'm connected and my IP address: "); Serial.println(WiFi.localIP()); }
void setup() { pinMode(led, OUTPUT); Serial.begin(115200); setupWifi(); setupFirebase(); }
void loop() { String path = "device/led"; FirebaseObject object = Firebase.get(path);
bool ledState = object.getBool("state");
Serial.println("ledState:"); Serial.println(ledState); digitalWrite(led, ledState); }
|
##實際測試
- 根據arduino的程式碼可以看到,我們要抓取led狀態的路徑是在device/led下的state,所以我們如下圖建立一個這樣的資料結構,記得先把值輸入false,預設是關閉的狀態
- 建立完畢之後,nodemcu抓到的資料就是false,如果我們把false改成true,led就會即時的被點亮了