使用 Google Firebase 和 ESP32 遠端控制設備——詳細教學
前言
你好!今天我要帶你從零開始學習如何使用 ESP32 與 Google Firebase 來遠端控制 LED。這意味著無論你身在何處,都能透過網路開啟或關閉 LED。
這篇教學適合完全沒有基礎的初學者,我會一步步帶你完成這個專案。讓我們開始吧!
你需要準備的材料
硬體:
- ESP32 開發板(或 ESP8266 亦可)
- LED x1
- 220Ω 或 100Ω 電阻 x1
- 麵包板
- 杜邦線
- USB 連接線(用來連接 ESP32 到電腦)
軟體與帳號:
- Arduino IDE(開發 ESP32 程式)
- Google Firebase 帳號(使用 Google 帳戶登入即可)
步驟 1:硬體連接
將 LED 與 ESP32 連接如下:
- LED 正極(長腳) → ESP32 D4(GPIO 4)
- LED 負極(短腳) → 電阻(220Ω / 100Ω) → ESP32 GND
你可以直接將元件插在麵包板上,使用杜邦線完成連接。
步驟 2:建立 Firebase 專案
Firebase 是 Google 提供的應用開發平台,其中的 Realtime Database 可以讓我們儲存數據並隨時讀取。現在我們來設定 Firebase:
- 進入 Firebase 官方網站:https://firebase.google.com/
- 登入 Google 帳號。
- 點擊「建立專案」,並命名為
ESP32_LED_Control
。 - 同意 Firebase 條款,然後點擊「繼續」。
- 關閉 Google Analytics(我們這次不需要)。
- 等待專案建立完成。
步驟 3:設定 Firebase Realtime Database
- 進入 Firebase 控制台,選擇剛剛建立的
ESP32_LED_Control
專案。 - 在左側選單點擊「Build」→「Realtime Database」。
- 點擊「建立資料庫」。
- 選擇「美國(us-central1)」作為位置,然後點擊「下一步」。
- 選擇「測試模式(Test mode)」,這樣我們就可以讀取和寫入數據。
- 建立一個資料節點:
- 按 「+」 新增節點
- 鍵(Key):
LED_State
- 值(Value):
0
(代表 LED 預設為關閉) - 數據類型:Number
這樣我們的數據庫就準備好了!
步驟 4:設定 Firebase Authentication(身份驗證)
為了安全性,我們需要讓 ESP32 使用電子郵件與密碼登入 Firebase。
- 在 Firebase 控制台左側選單點擊「Build」→「Authentication」。
- 選擇「電子郵件與密碼」登入方式。
- 啟用電子郵件/密碼登入,然後點擊「儲存」。
- 新增使用者:
- Email:
esp32@yourproject.com
(你可以隨意取) - Password:
yourpassword
- Email:
這樣 ESP32 就可以透過這個帳號存取 Firebase!
步驟 5:在 Arduino IDE 撰寫 ESP32 程式
1. 安裝 Firebase ESP Client 函式庫
- 打開 Arduino IDE。
- 點擊「工具」→「管理函式庫」。
- 搜尋「Firebase ESP Client」並安裝。
2. 程式碼
#include <WiFi.h>
#include <FirebaseESP32.h>
// WiFi 設定
#define WIFI_SSID "你的 WiFi 名稱"
#define WIFI_PASSWORD "你的 WiFi 密碼"
// Firebase 設定
#define API_KEY "你的 Firebase API 金鑰"
#define DATABASE_URL "你的 Firebase 資料庫 URL"
#define USER_EMAIL "esp32@yourproject.com"
#define USER_PASSWORD "yourpassword"
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
int LED_PIN = 4;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
// 連接 WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("WiFi 已連接");
// 設定 Firebase
config.api_key = API_KEY;
config.database_url = DATABASE_URL;
auth.user.email = USER_EMAIL;
auth.user.password = USER_PASSWORD;
Firebase.begin(&config, &auth);
}
void loop() {
if (Firebase.RTDB.getInt(&fbdo, "/LED_State")) {
int ledState = fbdo.intData();
digitalWrite(LED_PIN, ledState);
Serial.println(ledState == 1 ? "LED 開啟" : "LED 關閉");
}
delay(1000);
}
步驟 6:上傳程式並測試
- 選擇 ESP32 開發板(「工具」→「開發板」→「ESP32 Dev Module」)。
- 將 ESP32 連接到電腦。
- 點擊「上傳」按鈕。
- 開啟序列監視器(115200 baud),查看 WiFi 是否成功連接。
- 進入 Firebase,修改
LED_State
的值:- 設為
1
(LED 亮起) - 設為
0
(LED 熄滅)
- 設為
結論
現在你已經學會如何使用 Firebase 遠端控制 ESP32 的 LED!你可以進一步擴展這個專案,例如:
- 控制多個設備(燈泡、風扇等)。
- 使用手機 App 控制。
- 加入感測器,回傳數據到 Firebase。
希望這篇教學對你有幫助!如果有任何問題,歡迎留言討論 😊。
沒有留言:
張貼留言